滤波器分类图(滤波器分类及原理优缺点)

一. 数字滤波器分类

系统的传递函数可设定为:

其中常系数线性方程为:

根据该方程滤波器可分为两类滤波器,分别为FIR滤波器和IIR滤波器。其中FIR滤波器输出只跟以前的输入信号有关,其结构可写成:

IIR滤波器的输出不仅跟以前的输入信号有关,而且和以前的输出有关,其结构函数可以写成:

其中FIR滤波器相位是线性的,其相位延迟为,而IIR滤波器的幅频特性精度高,但是相位是非线性的。

二.IIR滤波器相位补偿原理

IIR滤波器相位补偿原理通过matlab的filtfilt函数。滤波器的变换,其时域的卷积为:

Z域的变换为:

的数据进行反转,则

并通过滤波器:

则其Z域变换为:

并对再次进行反转,则可以得到:

对其变换可得:

由于IIR滤波器理论上理解为理想滤波器,且相位 ,则认为其相位无延迟。

三.IIR滤波器实现

IIR滤波器通过matlab例程代码:

fs = 100;

t = 0:1/fs:1;

x = sin(2*pi*t*3)+.25*sin(2*pi*t*40);

[b,a] = butter(6,20/(fs/2));

y = filtfilt(b,a,x);

yy = filter(b,a,x);

plot(t,x,t,y,t,yy)

legend('Original','filtfilt','filter')

滤波器分类图(滤波器分类及原理优缺点)

for (i = 0; i < 3; i++)

{

x[1] = 0;

x[2] = 0;

y[1] = 0;

y[2] = 0;

}

for (i = 0; i < NUMSIZE; i = i + 1)

{

result = a[0] * pInput[i] + a[1] * x[1] + a[2] * x[2] – b[1] * y[1] – b[2] * y[2];

x[2] = x[1];

x[1] = pInput[i];

y[2] = y[1];

y[1] = result;

pOutput1[i] = result;

}

for (i = 0; i < NUMSIZE; i = i + 1)

{

pOutput2[NUMSIZE -1-i] = pOutput1[i];

}

for (i = 0; i < 3; i++)

{

x[1] = 0;

x[2] = 0;

y[1] = 0;

y[2] = 0;

}

for (i = 0; i < NUMSIZE; i = i + 1)

{

result = a[0] * pOutput2[i] + a[1] * x[1] + a[2] * x[2] – b[1] * y[1] – b[2] * y[2];

x[2] = x[1];

x[1] = pOutput2[i];

y[2] = y[1];

y[1] = result;

pOutput3[i] = result;

}

for (i = 0; i < NUMSIZE; i = i + 1)

{

pOutput4[NUMSIZE – 1 – i] = pOutput3[i];

}

并通过gunplot进行画图:

滤波器分类图(滤波器分类及原理优缺点)

?

?

创业项目群,学习操作 18个小项目,添加 微信:8070109525  备注:小项目

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 554234155@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.lebaoshun.com/459.html