大家好,
我是新手,在了解了论坛规则后尝试寻找解决方法无果后在此发帖,希望有人帮忙指点下,谢谢。
我的专业是数字信号和图像处理,目前我在用c++实现倍频程滤波器,采用的是多相级联结构。如图:这是一个4阶倍频程的例子。
H0是低通FIR滤波器,H1是高通FIR滤波器,
输入信号为4*1000 000 个采样的chirp信号(频率线性变化的信号),得到结果如图:
,它的频谱为
至此可见,实验结果正常。
但是当我增加级联深度到10阶倍频程后,输入信号为1000 0000个采样的chirp信号,实验结果如下:
,问题出现了,请看它的频谱
,1,2阶还好,从第三阶开始频谱通带内出现了严重的波动。对输入信号增加到4*1000 0000个采样,频谱如下:
,由此可见,增加采样可以减轻波动问题,当增加采样到4*100 000 000采样时,波动现象看不到了,但是这并不现实,对于一个4*100 000 000采样的信号,体积超过了百兆,不可能处理了。我的猜想:波动源于截断效应。尝试了很多种方法,也没能消除波动。这个课题我已经做了两个月了,总觉得有些理论方面的问题没有搞清楚。在此真诚希望某些了解的大侠帮忙指点或者一起讨论下。谢谢了。