移动平均滤波器与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
过滤器= dsp。FIRFilter (gydF4y2Ba“分子”gydF4y2Ba的(40)/ 40);mvgAvg = dsp.MovingAverage (40);输入= randn (1024 1);filterOutput =过滤器(输入);mvgAvgOutput = mvgAvg(输入);gydF4y2Ba
使用fvtool可视化两个滤波器的频率响应。gydF4y2Ba
hfvt = fvtool (mvgAvgOutput filterOutput, 1, 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