滤波器的实现
卷积和过滤
滤波的数学基础是卷积。对于有限脉冲响应(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)滤波器。
对于无限脉冲响应(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)执行差分方程之前。