A:
MATLAB仿真时不会出现类似的现象,是因为MATLAB采用的是全精度运算,不存在有效位宽的问题。FPGA设计就要考虑有效位宽,截位等问题,会影响信号幅度。
当输入为通带内的信号时,输出信号幅度与输入信号幅度相差不大。
当输入信号为通带内的信号+通带外的信号时,输出信号幅度明显降低了。这是由于输入合成信号的幅度是由有用信号和干扰信号叠加的值,滤除干扰信号后,仅留有用信号。相对于输入信号全部为有用信号而言,此时的输入信号的幅度本身就降低了很多。再考虑FIR滤波器对低位进行了截断,则信号幅度的变化就很正常了。
如何截位,原则是确保全部输入有用信号时,信号能够全部通过,在这个前提下,尽量留取更多的低位数据。基本原理仍然是有效数据位宽的原理。
杜勇