移动平均滤波器与FIR滤波器有什么不同?gydF4y2Ba
移动平均滤波器是常规FIR滤波器的一种特殊情况。两个滤波器都有有限的脉冲响应。移动平均滤波器使用一系列缩放的1作为系数,而FIR滤波器系数是根据滤波器规格设计的。它们通常不是1的序列。gydF4y2Ba
流数据的移动平均是用一个有限滑动窗口计算的:gydF4y2Ba
NgydF4y2Ba+ 1是过滤器的长度。该算法是正则FIR滤波器的一种特殊情况,其系数向量为[gydF4y2BabgydF4y2Ba0gydF4y2Ba,gydF4y2BabgydF4y2Ba1gydF4y2Ba、……gydF4y2BabgydF4y2BaNgydF4y2Ba]。gydF4y2Ba
为了计算输出,常规FIR滤波器将每个数据样本与[gydF4y2BabgydF4y2Ba0gydF4y2Ba,gydF4y2BabgydF4y2Ba1gydF4y2Ba、……gydF4y2BabgydF4y2BaNgydF4y2Ba向量并添加结果。移动平均过滤器不使用任何乘数。该算法将所有数据样本相加,并将结果与gydF4y2Ba1 /gydF4y2BafilterLengthgydF4y2Ba.gydF4y2Ba
移动平均滤波器和FIR滤波器的频率响应gydF4y2Ba
比较移动平均滤波器的频率响应与常规FIR滤波器的频率响应。将常规FIR滤波器的系数设置为按比例缩放的1的序列。缩放因子为1/|filterLength|。gydF4y2Ba
创建一个gydF4y2Badsp。F我RFilter
系统对象™,并设置其系数为1/40。要计算移动平均线,请创建一个gydF4y2Badsp。MovingAveragegydF4y2Ba
长度为40的滑动窗口的系统对象。两个滤波器都有相同的系数。输入为均值为0,标准差为1的高斯白噪声。gydF4y2Ba
Filter = dsp。FIRFilter (gydF4y2Ba“分子”gydF4y2Ba的(40)/ 40);mvgAvg = dsp.MovingAverage(40);Input = randn(1024,1);filterOutput = filter(input);mvgAvgOutput = mvgAvg(输入);gydF4y2Ba
使用fvtool可视化两个滤波器的频率响应。gydF4y2Ba
hfvt = fvtool(filterOutput,1,mvgAvgOutput,1);传奇(hfvtgydF4y2Ba数字滤波器的gydF4y2Ba,gydF4y2Ba“移动平均滤波器”gydF4y2Ba);gydF4y2Ba
频率响应完全匹配,证明了移动平均滤波器是FIR滤波器的一种特殊情况。gydF4y2Ba
为了便于比较,请查看无噪声滤波器的频率响应。gydF4y2Ba
fvtool(过滤器);gydF4y2Ba
将滤波器的频率响应与理想滤波器的频率响应进行比较。你可以看到通带中的主波瓣不是平坦的,而阻带中的波纹是没有约束的。移动平均滤波器的频率响应与理想滤波器的频率响应不匹配。gydF4y2Ba
为了实现一个理想的FIR滤波器,将滤波器系数改为一个不是按比例缩放的1序列的向量。滤波器的频率响应发生变化,趋向于向理想滤波器响应移动。gydF4y2Ba
根据预定义的滤波器规格设计滤波器系数。例如,设计一个等纹波FIR滤波器,其归一化截止频率为0.1,通带纹波为0.5,阻带衰减为40 dB。使用gydF4y2Bafdesign.lowpassgydF4y2Ba
来定义筛选器规范和gydF4y2Ba设计gydF4y2Ba
方法来设计滤波器。gydF4y2Ba
FIReq = fdesign.lowpass(gydF4y2Ba“N, Fc,美联社,Ast”gydF4y2Ba现年40岁的0.1,0.5,40);filterCoeff =设计(FIReq,gydF4y2Ba“equiripple”gydF4y2Ba,gydF4y2Ba“SystemObject”gydF4y2Ba,真正的);fvtool (filterCoeff)gydF4y2Ba
滤波器在通带中的响应几乎是平坦的(类似于理想响应),阻带具有约束的等波纹。gydF4y2Ba