首页 理论教育 创建个性化滤波器算法

创建个性化滤波器算法

时间:2023-06-23 理论教育 版权反馈
【摘要】:在下面的Matlab的例子中,我们尝试实现一个1阶IIR陷波滤波器。我们希望这个滤波器具有z=1的零点和z=0.9的极点。和零极点图相联系的传递函数为它的差分方程为y[n]=0.9y[n-1]+x[n]-x[n-1]使用单位脉冲作为系统的输入。使用差分方程手动地求解其中的一些项可以帮助理解这个过程。下面的Matlab程序列只是帮助你计算y[1]项。这个代码更接近于实时过程需要显示的代码。程序清单4.1:采样的Matlab IIR滤波器的例子正如手动计算那样,你需要找到数值为-0.1的输出。

创建个性化滤波器算法

在下面的Matlab的例子中,我们尝试实现一个1阶IIR陷波滤波器(不是winDSK6中实现的陷波滤波器)。我们希望这个滤波器具有z=1的零点z=0.9的极点。和零极点图相联系的传递函数

它的差分方程为

y[n]=0.9y[n-1]+x[n]-x[n-1]

使用单位脉冲作为系统的输入。如果我们计算有限数目的输出,就可以得到这个系统的单位脉冲响应。使用差分方程手动地求解其中的一些项可以帮助理解这个过程。

(1)标出如下各列:

ny[n] y[n-1] x[n] x[n-1]

(2)填充n=0的行的信息:

ny[n] y[n-1] x[n] x[n-1]

0 0 1 0

(3)计算y[0]的各项:

ny[n] y[n-1] x[n] x[n-1]

0 1 0 1 0

(4)填充n=1行信息,注意到“存储数值下降移到最右”的规则:(www.xing528.com)

ny[n] y[n-1] x[n] x[n-1]

0 1 0 1 0

1 1 0 1

(5)计算y[1]项:

ny[n]y[n-1]x[n]x[n-1]

0 1 0 1 0

0 -0.1 1 0 1

(6)按照上面的步骤计算你所需要的剩余各项。

下面的Matlab程序列只是帮助你计算y[1]项。这个代码更接近于实时过程需要显示的代码。它看起来只计算其中的一项,但是你要知道这是一个点到点的采样处理过程。

程序清单4.1:采样的Matlab IIR滤波器的例子

正如手动计算那样,你需要找到数值为-0.1的输出。综上所述,输入(接收)ISR的数据提供了新的采样算法,算法计算新的输出值,这个算法为下一个采样的到来做准备,最后算法给出输出(发射)ISR的输出数值。所以它可以转换回模拟的数值。这里注意到低阶滤波器,输出数值的计算实际上只有一行的代码。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈