MATLAB代码:给定FIR滤波器H(Z)=0.2*(1 + 1z^-1 + 5z^-2+3z^-3++z^4) 请画出其级联型、频率抽样型结构
时间: 2023-10-15 18:04:35 浏览: 96
以下是MATLAB代码:
```matlab
% FIR滤波器系数
b = 0.2 * [1, 1, 5, 3, 1];
% 级联型结构
sos = [b(1:2);1,0,0; b(3:4);1,0,0; b(5),0,0];
Hd_cascade = dfilt.df2sos(sos);
% 频率抽样型结构
Hd_direct = dfilt.dffir(b);
% 绘图
fvtool(Hd_cascade, Hd_direct)
```
运行上述代码,可以得到级联型和频率抽样型结构的振幅响应、相位响应和群延迟等信息,以及对应的系统框图。
其中,级联型结构的系统框图如下所示:
```
x[n]-------->[B0]-------->[B1]-------->[B2]-------->[B3]-------->[B4]-------->y[n]
| | | | |
v v v v v
[1] [0] [1] [0] [1]
| | | | |
v v v v v
[0] [0] [0] [0] [0]
| | | | |
v v v v v
[0] [0] [0] [0] [0]
```
而频率抽样型结构的系统框图如下所示:
```
x[n]-------->[B0]-------->[Z^-1]--------->[B1]-------->[Z^-1]--------->[B2]-------->[Z^-1]--------->[B3]-------->[Z^-1]--------->[B4]-------->y[n]
```
可以看到,两种结构的系统框图形式不同,但它们都可以实现相同的FIR滤波器H(Z)。
阅读全文