MATLAB实现2 . 某线性时不变系统由如下所示的差分方程描述: y(n)-0.35y(n-1)+1.5y(n-2)=x(n)+x(n-1) 1)计算该系统在0≤n≤200区间内的单位冲击响应,并画出火柴杆图; 2)画出该系统的幅频图和相频图; 3)产生信号x(n)=2 sin(nπ⁄4)+3 cos(3nπ⁄4)的前200个样本,作为该系统的输入计算对应的输出y(n),并将输出y(n)与输入x(n)进行比较与分析。
时间: 2023-12-24 07:03:11 浏览: 70
好的,以下是MATLAB实现的步骤和代码:
1. 计算单位冲击响应
```matlab
% 系统差分方程
a = [1 -0.35 1.5];
b = [1 1];
% 计算单位冲击响应
h = impz(b, a, 201);
% 绘制火柴杆图
stem(h);
xlabel('n');
ylabel('h(n)');
title('Unit Impulse Response');
```
2. 绘制幅频图和相频图
```matlab
% 计算系统的传递函数
H = tf(b, a, 1);
% 绘制幅频图
figure;
bode(H);
title('Magnitude Response');
% 绘制相频图
figure;
bode(H, {2*pi*0.1, 2*pi*10});
title('Phase Response');
```
3. 计算输出信号y(n)
```matlab
% 产生信号x(n)
n = 0:199;
x = 2*sin(n*pi/4) + 3*cos(3*n*pi/4);
% 计算输出信号y(n)
y = filter(b, a, x);
% 绘制输入输出信号对比图
figure;
plot(n, x, 'b', n, y, 'r--');
xlabel('n');
ylabel('x(n) / y(n)');
legend('Input', 'Output');
title('Input and Output Comparison');
```
上述代码中,使用了MATLAB信号处理工具箱中的impz函数、tf函数、bode函数和filter函数,分别用于计算单位冲击响应、求解传递函数、绘制幅频图和相频图以及计算输出信号。最后,使用plot函数绘制了输入输出信号对比图。
阅读全文