主要内容

滤波器的实现

卷积和过滤

滤波的数学基础是卷积。对于有限脉冲响应(FIR)滤波器,输出yk滤波运算的函数是输入信号的卷积xk脉冲响应hk

y k l h l x k l

如果输入信号也是有限长度的,可以用MATLAB实现滤波运算®conv函数。例如,要用三阶平均滤波器过滤一个五样本随机向量,您可以存储xk在一个向量xhk在一个向量h,并将两者进行卷积:

x = randn(5、1);H = [1 1 1 1]/4;三阶滤波器的长度为4y = conv (h, x)
Y = -0.3375 0.4213 0.6026 0.5868 1.1030 0.3443 0.1629 0.1787
的长度y1比长度的和小吗x而且h

滤波器和传递函数

滤波器的传递函数是其脉冲响应的z变换。对于FIR滤波器,输出的z变换yYz,是传递函数与的乘积Xz,输入的z变换x

Y z H z X z h 1 + h 2 z 1 + + h n + 1 z n X z

多项式的系数h(1),h(2)、…hn+ 1)对应于an的脉冲响应系数n阶滤波器。

请注意

滤波系数指数从1到(n+ 1),而不是从0到n.这反映了用于MATLAB向量的标准索引方案。

FIR滤波器也被称为全零、非递归或移动平均(MA)滤波器。

对于无限脉冲响应(IIR)滤波器,传递函数不是多项式,而是有理函数。输入和输出信号的z变换用

Y z H z X z b 1 + b 2 z 1 + ... + b n + 1 z n 一个 1 + 一个 2 z 1 + ... + 一个 + 1 z X z

在哪里b),一个)为滤波系数。在这种情况下,过滤器的顺序是的最大值n而且.IIR滤波器与n= 0也称为全极、递归或自回归(AR)滤波器。两者都有IIR过滤器n而且大于零的也称为极零、递归或自回归移动平均(ARMA)滤波器。缩写AR, MA和ARMA通常用于与过滤随机过程相关的滤波器。

过滤的过滤器函数

对于IIR滤波器,滤波操作不是用一个简单的卷积来描述,而是用一个可以从传递函数关系中找到的差分方程来描述。假设一个(1) = 1,将分母移到左边,做z反变换得到

y k + 一个 2 y k 1 + ... + 一个 + 1 y k b 1 x k + b 2 x k 1 + + b n + 1 x k n

就目前和过去的投入和过去的产出而言,yk)是

y k b 1 x k + b 2 x k 1 + + b n + 1 x k n 一个 2 y k 1 一个 + 1 y k

这是数字滤波器的标准时域表示。从y(1),假设一个初始条件为零的因果系统,其表示等价于

y 1 b 1 x 1 y 2 b 1 x 2 + b 2 x 1 一个 2 y 1 y 3. b 1 x 3. + b 2 x 2 + b 3. x 1 一个 2 y 2 一个 3. y 1 y n b 1 x n + + b n x 1 一个 2 y n 1 一个 n y 1

要实现这个过滤操作,您可以使用MATLAB过滤器函数。过滤器将系数存储在两个行向量中,一个用于分子,一个用于分母。例如,解差分方程

y n 0.9 y n 1 x n Y z 1 1 0.9 z 1 X z H z X z

您可以使用

b = 1;A = [1 -0.9];y =过滤器(b, a, x);
过滤器给出和输入样本数量一样多的输出样本,也就是的长度y和的长度相等吗x.的第一个元素一个不是1吗过滤器系数除以一个(1)执行差分方程之前。

另请参阅

应用程序

功能

Baidu
map