滤波的数学基础是卷积。对于有限脉冲响应(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)对应于某的脉冲响应系数n阶滤波器。
请注意
过滤系数指数从1到(n+ 1)而不是从0到n.这反映了MATLAB向量使用的标准索引方案。
FIR滤波器也被称为全零、非递归或移动平均(MA)滤波器。
对于无限脉冲响应(IIR)滤波器,传递函数不是多项式,而是有理函数。输入和输出信号的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 =过滤器(b, a, x);
过滤器
输出样本的数量与输入样本的数量相同,也就是y
和的长度一样吗x
.的第一个元素一个不是1吗过滤器
把系数除以一个(1)在执行差分方程之前。