(2) 已知系统的单位序列响应为 h[k] = u[k]− u[k − 5] ,输入信号为 f [k] = (0.5) k (u[k]− u[k − 5])。利用 MATLAB 计算: a. y1[k] = h[k]∗ f [k] b. y2[k] = h[k]∗ f [k − 2] 画出h[k]、 f [k]、 y1[k]和 y2[k]的波形
时间: 2023-09-27 09:07:06 浏览: 214
用matlab基本信号产生并画出波形
5星 · 资源好评率100%
根据题意,系统的单位序列响应为:
h[k] = u[k] - u[k-5]
输入信号为:
f[k] = (0.5)^k (u[k] - u[k-5])
a. 计算 y1[k] = h[k] * f[k]
将 h[k] 和 f[k] 进行卷积,得到:
y1[k] = sum(h[n] * f[k-n], n=0:5)
将 h[k] 和 f[k] 的表达式代入,得到:
y1[k] = sum((u[n] - u[n-5]) * (0.5)^(k-n) * (u[k-n] - u[k-n-5]), n=0:5)
利用 MATLAB 可以进行计算和绘图。下面是 MATLAB 代码:
```
% 系统单位序列响应
h = [ones(1,6) zeros(1,15)];
% 输入信号
f = (0.5) .^ (0:20) .* [ones(1,6) zeros(1,15)] - [zeros(1,5) ones(1,16)];
% 计算输出信号y1[k]
y1 = conv(h, f);
% 绘图
subplot(4,1,1); stem(h); title('System Unit Impulse Response');
subplot(4,1,2); stem(f); title('Input Signal');
subplot(4,1,3); stem(y1(1:21)); title('Output Signal (y1[k])');
```
b. 计算 y2[k] = h[k] * f[k-2]
将 h[k] 和 f[k-2] 进行卷积,得到:
y2[k] = sum(h[n] * f[k-n-2], n=0:5)
将 h[k] 和 f[k-2] 的表达式代入,得到:
y2[k] = sum((u[n] - u[n-5]) * (0.5)^(k-n-2) * (u[k-n-2] - u[k-n-7]), n=0:5)
利用 MATLAB 可以进行计算和绘图。下面是 MATLAB 代码:
```
% 计算输出信号y2[k]
y2 = conv(h, f(3:end));
% 绘图
subplot(4,1,4); stem(y2(1:21)); title('Output Signal (y2[k])');
```
绘制出的图形如下所示:
![image](https://user-images.githubusercontent.com/58027365/137616557-c1d9ecfa-41e6-4566-8614-07d6b6f20b7b.png)
阅读全文