试图理解和理解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都表示下采样率。)
不确定最后一行的目的是什么,在最后一行中,所有的滤波器系数都是通过降采样比与coeffs和,p/sum(h)进行缩放的?有人知道背后的理论吗?
MATLAB 冷杉
MATLAB 凯泽
firls理论:FIR滤波器的最小二乘误差设计
发布于 2018-03-19 15:02:36
在大多数过滤器中,您希望在过滤后输出大小保持不变,而不是放大或缩小。
从数学上讲,这在滤波方程中通常是正确的,但在离散数中,这通常不适用。
如果您除以它的和,您确保对于任何输入数据p,过滤器将始终有一个1的一般比例因子,作为它的规范化。对于p=ones(1:1000,1),如果sum(h)不是1,过滤后的结果将被缩放,即p_filtered的值将不是1。
https://stackoverflow.com/questions/49363306
复制相似问题