写MATLAB脚本求已知离散LTI系统,激励x(n)=3nε(n),单位脉冲响应h(n)=2nε(n),编程绘制该系统的零状态响应yf(n)在有限区间的波形。(有限区间自行设定)
时间: 2024-02-24 17:53:17 浏览: 118
下面是MATLAB脚本,假设绘制有限区间为n=0到n=10的波形:
```matlab
% 定义激励信号和单位脉冲响应
n = 0:10; % 时间序列
x = 3*n.*[n==0, diff([zeros(1,length(n)-1);ones(1,length(n)-1)])]; % 激励信号
h = 2*n.*[n==0, diff([zeros(1,length(n)-1);ones(1,length(n)-1)])]; % 单位脉冲响应
% 计算零状态响应
yf = conv(x, h); % 卷积得到零状态响应
yf = yf(1:length(n)); % 截取有限区间的响应
% 绘制波形图
stem(n, yf); % 离散时间下的波形图
xlabel('n'); ylabel('yf(n)');
title('离散LTI系统的零状态响应波形');
```
运行脚本后,将绘制出有限区间n=0到n=10的离散时间下的零状态响应波形。
相关问题
已知离散LTI系统,激励f(k)=3ku(k),单位脉冲响应h(k)=2ku(k),画出该系统的零状态响应yzs(k)在有限区间的波形。(有限区间自行设定),matlab代码
好的,根据您的要求,我不会透露您的任何要求,以下是回答:
根据卷积定理,该系统的零状态响应 $y_{zs}(k)$ 可以表示为激励信号 $f(k)$ 与单位脉冲响应 $h(k)$ 的卷积,即:
$$
y_{zs}(k) = \sum_{n=0}^{k} f(n)h(k-n) = 6\sum_{n=0}^{k}n^2u(n)u(k-n)
$$
其中,$u(n)$ 表示单位阶跃函数。
为了画出该系统的零状态响应在有限区间的波形,我们需要先确定有限区间的范围。这里我们设有限区间为 $0 \leq k \leq 10$。
下面是 MATLAB 代码实现:
```
k = 0:10;
y_zs = zeros(size(k));
for n = 0:length(k)-1
y_zs(n+1) = 6*sum((0:n).^2.*u(0:n).*u(n:-1:0)));
end
stem(k, y_zs);
xlabel('k');
ylabel('y_{zs}(k)');
```
其中,`u(n)` 表示 MATLAB 中的单位阶跃函数,定义为:
```
function y = u(n)
y = double(n >= 0);
end
```
运行以上代码,即可画出系统的零状态响应在有限区间 $0 \leq k \leq 10$ 的波形。
matlab 已知离散时间lti系统的单位脉冲响应 求h(z),信号与系统习题答案(7-10)...
根据单位脉冲响应求系统传递函数的方法如下:
设系统传递函数为 $H(z)$,单位脉冲响应为 $h(n)$,则有:
$$
H(z) = \sum_{n=0}^{\infty} h(n)z^{-n}
$$
将系统的单位脉冲响应代入上式,可得:
$$
H(z) = 1 + 2z^{-1} + 3z^{-2} + \cdots
$$
对上式进行移项,得到:
$$
H(z) - 1 = 2z^{-1} + 3z^{-2} + \cdots
$$
将 $H(z)$ 和 $H(z)-1$ 均乘以 $z^{\infty}$,得到:
$$
z^{\infty} H(z) - z^{\infty} = 2z^{-1} + 3z^{-2} + \cdots
$$
将上式左右两边同时进行 Z 变换,可得:
$$
H(z) = \frac{2z}{z-1} + \frac{3z^2}{z-1} + \cdots = \frac{2z}{(1-z)^2} + \frac{3z^2}{(1-z)^2} + \cdots
$$
因此,系统传递函数为:
$$
H(z) = \frac{2z}{(1-z)^2} + \frac{3z^2}{(1-z)^2} + \cdots
$$
注:$\cdots$ 表示无穷项,但因计算机、编程语言等均无法表示无穷项,因此在实际计算中需截断求和项。
阅读全文