matlab求单位冲激响应并用四种方法画图
时间: 2023-08-22 11:24:54 浏览: 464
假设你要求一个线性时不变系统的单位冲激响应,可以使用以下的四种方法:
1. 解微分方程
假设你知道系统的微分方程,可以通过输入一个单位冲激函数 $\delta(t)$,求解微分方程得到系统的单位冲激响应 $h(t)$。例如,对于一个一阶系统,微分方程为:
$$\frac{dh(t)}{dt}+a_1h(t)=\delta(t)$$
其中 $a_1$ 是常数。将 $\delta(t)$ 代入上式,可以得到:
$$\frac{dh(t)}{dt}+a_1h(t)=1$$
这是一个一阶常微分方程,可以通过求解得到:
$$h(t)=\frac{1}{a_1}e^{-a_1t}u(t)$$
其中 $u(t)$ 是单位阶跃函数。
2. 系统的频率响应
假设你知道系统的频率响应 $H(\omega)$,其中 $\omega$ 是角频率,可以通过傅里叶反变换得到系统的单位冲激响应 $h(t)$。具体地,有:
$$h(t)=\frac{1}{2\pi}\int_{-\infty}^{\infty}H(\omega)e^{j\omega t}d\omega$$
其中 $j$ 是虚数单位。
3. 卷积
假设你知道系统的单位阶跃响应 $g(t)$,可以通过输入一个单位冲激函数 $\delta(t)$,计算系统的单位冲激响应 $h(t)$。具体地,有:
$$h(t)=\delta(t)*g(t)$$
其中 $*$ 表示卷积运算。
4. 逆Z变换
假设你知道系统的Z变换 $H(z)$,可以通过逆Z变换得到系统的单位冲激响应 $h(n)$。具体地,有:
$$h(n)=\frac{1}{2\pi j}\oint H(z)z^{-n-1}dz$$
其中 $\oint$ 表示逆时针单位圆周积分。
画图的话,可以使用 Matlab 的 plot 函数。对于第一种方法,可以使用符号计算工具箱求解微分方程,并使用 ezplot 函数画图。对于第二种方法,可以使用 freqz 函数计算频率响应,并使用 plot 函数画图。对于第三种方法,可以使用 conv 函数计算卷积,并使用 plot 函数画图。对于第四种方法,可以使用 iztrans 函数计算逆Z变换,并使用 stem 函数画图。
下面是一个 Matlab 代码示例,其中假设系统的微分方程为 $\frac{dh(t)}{dt}+0.5h(t)=\delta(t)$:
```matlab
syms t s
H = 1/(s+0.5); % 求解频率响应
h1 = ilaplace(H); % 求解单位冲激响应
figure;ezplot(h1,[0,10]); % 用 ezplot 画图
t = 0:0.01:10;
h2 = filter(1,[1 0.5],[1 zeros(1,length(t)-1)]); % 求解单位阶跃响应
h3 = conv(h2,[1 zeros(1,length(t)-1)]); % 求解单位冲激响应
figure;plot(t,h3(1:length(t))); % 用 plot 画图
H4 = 1/(z+0.5); % 求解Z变换
h4 = iztrans(H4); % 求解逆Z变换
n = 0:20;
figure;stem(n,h4(1:length(n))); % 用 stem 画图
```
阅读全文