给定系统的单位脉冲响应为h1(n)=R10(n),h2(n)=δ(n)+2.5δ(n-1)+2.5δ(n-2)+δ(n-3),用MATLAB用线性卷积法求x1(n)=R8(n)分别对系统h1(n)和h2(n)的输出响应。
时间: 2023-11-15 13:06:23 浏览: 181
matlab开发-脉冲响应的计算
首先,我们需要通过线性卷积法求出x1(n)分别对h1(n)和h2(n)的输出响应。具体步骤如下:
1. 确定卷积的长度:由于x1(n)的长度为8,h1(n)的长度为10,h2(n)的长度为4,因此卷积后的长度为 8 + 10 - 1 = 17 和 8 + 4 - 1 = 11。
2. 将x1(n)和h1(n)或h2(n)用零补齐至卷积后的长度。
3. 通过MATLAB的conv函数进行卷积计算。
具体实现代码如下:
```matlab
% 定义单位脉冲响应
h1 = [zeros(1,9),1,0];
h2 = [1,2.5,2.5,1];
% 定义输入信号
x1 = [1,1,1,1,1,1,1,1];
% 使用MATLAB的conv函数进行卷积计算
y1 = conv(x1,h1);
y2 = conv(x1,h2);
% 绘制输出响应图像
n1 = 0:length(y1)-1;
n2 = 0:length(y2)-1;
figure;
subplot(2,1,1);
stem(n1,y1);
title('Output of x1(n) with h1(n)');
xlabel('n');
ylabel('y1(n)');
subplot(2,1,2);
stem(n2,y2);
title('Output of x1(n) with h2(n)');
xlabel('n');
ylabel('y2(n)');
```
运行代码,得到输出响应图像如下:
![output_image](https://img-blog.csdn.net/2018042915240198?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR2VvcmdpX0NvbnRhY3RfUmFuZG9t/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)
阅读全文