MATLAB中的下采样 - 为什么缩放滤波器系数?

时间:2018-03-19 12:44:14

标签: matlab filter signal-processing

尝试取消对MATLAB重新取样的看法,查看toolbox/signal/resample.m

这是计算低通FIR滤波器系数的部分:

  fc = 1/2/pqmax;
  L = 2*N*pqmax + 1;
  h = firls( L-1, [0 2*fc 2*fc 1], [1 1 0 0]).*kaiser(L,bta)' ;
  h = p*h/sum(h);

(在这种情况下,pqmaxp都代表下采样率。)

不确定最后一行的目的是什么,所有滤波器系数都按下采样比率而不是系数总和p/sum(h)进行缩放?有谁知道背后的理论?

MATLAB firls
MATLAB kaiser
firls理论:Least Squared Error Design of FIR Filters

1 个答案:

答案 0 :(得分:1)

在大多数滤镜中,您希望输出幅度在滤波后保持相等,而不是按比例放大或缩小。

数学上这通常在滤波器方程中适当地完成,但是在离散数字中,这通常不适用。

如果将文件管理器除以其总和,则确保对于任何输入数据p,过滤器的总标度因子1始终为标准化。对于p=ones(1:1000,1),如果sum(h)不是1,则过滤后的结果将被缩放,即p_filtered的值不会是1