用MATLAB编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用filter函数或conv函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。
时间: 2023-12-03 17:45:28 浏览: 122
下面是一个简单的例子,说明如何用MATLAB编写程序来产生输入信号、单位脉冲响应序列的子程序,用filter函数或conv函数求解系统输出响应的主程序,并绘制信号波形。
```matlab
% 产生输入信号
t = 0:0.01:1; % 时间序列
x = sin(2*pi*5*t) + sin(2*pi*10*t); % 输入信号
% 产生单位脉冲响应序列
h = [1 2 3 4 5 4 3 2 1]; % 单位脉冲响应序列
% 用filter函数求解系统输出响应
y1 = filter(h, 1, x);
% 用conv函数求解系统输出响应
y2 = conv(x, h, 'same');
% 绘制信号波形
subplot(3,1,1);
plot(t,x);
title('输入信号');
subplot(3,1,2);
stem(h);
title('单位脉冲响应序列');
subplot(3,1,3);
plot(t,y1,'b',t,y2,'r');
title('系统输出响应');
legend('filter函数求解','conv函数求解');
```
在这个例子中,我们首先使用sin函数产生一个包含两个正弦波的输入信号x,然后定义一个长度为9的单位脉冲响应序列h。接着,我们分别使用filter和conv函数计算系统的输出响应y1和y2。最后,我们使用subplot和plot函数绘制信号波形,其中第一幅图展示了输入信号的波形,第二幅图展示了单位脉冲响应序列的波形,第三幅图展示了系统输出响应的波形,并用legend函数加上了图例,方便对比两种求解方法的结果。