现在在C674x平台上做一个项目,其中移植了之前在c64x上做的一个滤波器,当时是调用了dsp64x.lib中的滤波器 DSP_fir_sym。现在仍然是直接调用dsp64x.libDSP_fir_sym函数。
但是在使用时遇到一个很奇怪的现象,在大信号的情况下会发生无法解调的现象,经过定位是滤波器发生了饱和。于是我们把输入进滤波器的信号全部向右移了一位,这样饱和现象没有发生。但是如果我们不移动输入信号,而是把滤波器的系数整体向右移动一位,根据dsplib的文档这给出的DSP_fir_sym算法,这种做法应该和移动信号是一样的啊,但是实际测试的结果是仍然会发生饱和现象。
俺百思不得其解这种想象到底是为什么,因为根据滤波器的阶数以及其量化精度来计算,在中间变量取40位的时候是不应该会饱和的啊,而且改滤波器量化精度也没有用。
Tony Tang:
你用C674x的DSPlib试试:
http://www.ti.com/tool/sprc265