滤波的数学基础是卷积。对于有限脉冲响应(FIR)滤波器,输出y(k)滤波运算的关键是输入信号的卷积x(k)脉冲响应h(k):
如果输入信号也是有限长度的,可以使用MATLAB实现滤波操作®conv
函数。例如,要用三阶平均滤波器过滤一个五样本随机向量,您可以存储x(k)在向量中x
,h(k)在向量中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
y
1是否比的长度和小x
而且h
.
滤波器的传递函数是其脉冲响应的z变换。对于FIR滤波器,输出的z变换y,Y(z),为传递函数和的乘积X(z),即输入的z变换x:
多项式系数h(1),h(2)、…h(n+ 1)对应于an的脉冲响应系数n阶滤波器。
请注意
滤波系数指标取值范围为1 ~ (n+ 1),而不是从0到n.这反映了用于MATLAB向量的标准索引方案。
FIR滤波器也称为全零、非递归或移动平均(MA)滤波器。
对于无限脉冲响应滤波器,传递函数不是多项式,而是有理函数。输入和输出信号的z变换由
在哪里b(我),一个(我)为滤波系数。在这种情况下,过滤器的阶数为的最大值n而且米.带IIR滤波器n= 0也称为全极、递归或自回归(AR)滤波器。IIR滤波器与两者n而且米大于零的也称为极点零、递归或自回归移动平均(ARMA)滤波器。首字母缩写AR, MA和ARMA通常应用于与过滤后的随机过程相关的滤波器。
过滤器
函数对于IIR滤波器,滤波操作不是由一个简单的卷积描述的,而是由一个可以从传递函数关系中找到的差分方程描述的。假设一个(1) = 1,将分母移到左边,进行z反变换,得到
就当前和过去的投入,以及过去的产出而言,y(k)是
这是数字滤波器的标准时域表示。从y(1)并假设一个零初始条件的因果系统,则表示为
要实现这个过滤操作,可以使用MATLAB过滤器
函数。过滤器
将系数存储在两个行向量中,一个用于分子,一个用于分母。例如,解差分方程
你可以使用
B = 1;A = [1 -0.9];Y = filter(b,a,x);
过滤器
给出和输入样本一样多的输出样本,也就是的长度y
和的长度一样吗x
.的第一个元素一个不是1吗过滤器
将系数除以一个(1)在实现差分方程之前。