matlab画出𝑥(𝑛) = (0.6)^𝑛𝑢(𝑛)卷积h(𝑛) = (−0.9)^𝑛𝑢(𝑛)的图像,𝑛 ∈ [0, 70]和𝑛 ∈ [1, 35],画在同一张图像里
时间: 2024-05-20 21:17:09 浏览: 156
代码如下:
```matlab
n1 = 0:70; % 定义n1序列
x = (0.6).^n1.*(n1>=0); % 定义x(n1)序列
n2 = 1:35; % 定义n2序列
h = (-0.9).^n2.*(n2>=0); % 定义h(n2)序列
y = conv(x, h); % 计算x(n1)和h(n2)的卷积
ny = n1(1)+n2(1):n1(end)+n2(end); % 计算序列y的时间戳序列
% 作图
subplot(2,1,1);
stem(n1, x, 'filled', 'MarkerSize', 4);
xlabel('n');
ylabel('x(n)');
title('x(n)和h(n)的卷积');
subplot(2,1,2);
stem(ny, y, 'filled', 'MarkerSize', 4);
xlabel('n');
ylabel('y(n)');
title('x(n)和h(n)的卷积');
```
运行结果如下图所示:
![image-20211221195546236](https://i.loli.net/2021/12/21/1b6Wx8GtKkYV7zf.png)
相关问题
matlab画出𝑥(𝑛) = (0.6)^𝑛𝑢(𝑛)卷积h(𝑛) = (−0.9)^𝑛𝑢(𝑛)的图像
代码如下:
```matlab
n = -10:50; % 定义时间序列
x = (0.6).^n.*(n>=0); % 定义信号x(n)
h = (-0.9).^n.*(n>=0); % 定义信号h(n)
y = conv(x,h); % 卷积
ny = n(1)+n(1):n(end)+n(end); % 计算卷积后的时间序列
subplot(3,1,1); stem(n,x); xlabel('n'); ylabel('x(n)'); title('信号x(n)');
subplot(3,1,2); stem(n,h); xlabel('n'); ylabel('h(n)'); title('信号h(n)');
subplot(3,1,3); stem(ny,y); xlabel('n'); ylabel('y(n)'); title('卷积信号y(n)');
```
运行结果如下图所示:
![卷积图像](https://img-blog.csdnimg.cn/20210720165119185.png)
matlab画出𝑥(𝑛) = (0.6)^𝑛𝑢(𝑛)卷积h(𝑛) = (−0.9)^𝑛𝑢(𝑛)的图像,𝑛 ∈ [0, 70]和𝑛 ∈ [1, 35]
首先需要定义函数𝑢(𝑛)和两个信号𝑥(𝑛)和h(𝑛):
```matlab
function y = u(n)
y = (n >= 0);
end
n = 0:70;
x = (0.6).^n .* u(n);
h = (-0.9).^n .* u(n);
```
然后使用conv函数计算卷积结果:
```matlab
y = conv(x, h);
```
最后画出图像:
```matlab
n_conv = 0:length(y)-1;
stem(n_conv, y);
xlim([0, 70]);
title('Convolution of x(n) and h(n)');
xlabel('n');
ylabel('y(n)');
```
对于𝑛 ∈ [0, 70]的图像,可以直接使用上述代码画出。对于𝑛 ∈ [1, 35]的图像,只需要将卷积结果的索引向右移动一位即可:
```matlab
n_conv = 1:length(y);
stem(n_conv, y);
xlim([1, 35]);
title('Convolution of x(n) and h(n)');
xlabel('n');
ylabel('y(n)');
```
阅读全文