尝试取消对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);
(在这种情况下,pqmax
和p
都代表下采样率。)
不确定最后一行的目的是什么,所有滤波器系数都按下采样比率而不是系数总和,p/sum(h)
进行缩放?有谁知道背后的理论?
MATLAB firls
MATLAB kaiser
firls
理论:Least Squared Error Design of FIR Filters
答案 0 :(得分:1)
在大多数滤镜中,您希望输出幅度在滤波后保持相等,而不是按比例放大或缩小。
数学上这通常在滤波器方程中适当地完成,但是在离散数字中,这通常不适用。
如果将文件管理器除以其总和,则确保对于任何输入数据p,过滤器的总标度因子1
始终为标准化。对于p=ones(1:1000,1)
,如果sum(h)
不是1
,则过滤后的结果将被缩放,即p_filtered
的值不会是1
。