1.一种基于FPGA的快速傅里叶变换数字信号噪声处理方法,其特征在于,包括以下步骤:(1)、按照模‑数转换输出数据字长M,设置FPGA处理有效字长为M;
n
(2)、根据FFT蝶形算法分解FFT处理流程,L=2个时域数据的FFT蝶形运算分解为n级计算;
(3)、FFT蝶形算法的第1级处理为加减运算,最大字长增加为溢出一位,即将输出结果的实部和虚部字长各增加一位,ADC输出数据字长为M时,则第1级处理的每个输出数据字长n+1设置为2(M+1),总的输出字长为2 (M+1);
(4)、FFT蝶形算法的第2级处理也为加减运算,最大字长增加为溢出一位,即将输出结果的实部和虚部字长各增加一位,将第2级处理的每个输出数据字长设置为2(M+2)位,总的n+1输出字长为2 (M+2);
(5)、FFT蝶形算法第3级处理涉及到输入数据与旋转因子的复数乘法,令旋转因子与该级输入数据的字长一样,实部和虚部各M+2位,即有2(M+2)位,利用DSP核的浮点数进行计算,对DSP核计算输出按照保留输出数据最大有效位数截位原则进行高、低位分别截断,每n+1个输出数据字长从4(M+2)+2变为2(M+3),总的输出字长为2 (M+3),同时设置截断标志位,后续计算位按截断标志位对齐;
其中,保留输出数据最大有效位数截位原则为:高位截取为截去输出数据第一个非零位前的所有高位,保证输出数据的最高位非零;低位截取为保证输出数据字长与输入数据字长相同;截断标志位为高位截断的位数,在后续计算中根据截断标志位进行数据补零对齐;
(6)、FFT蝶形算法的第4至n级处理也涉及到输入数据与旋转因子的复数乘法,对于第i级处理,i=4,5,…,n,令旋转因子与输入数据的字长一样,实部和虚部各M+i‑1位,即有2(M+i‑1)位,利用DSP核的浮点数进行计算,对DSP核计算输出按照保留输出数据最大有效位数截位原则进行高、低位分别截断,每个输出数据字长从4(M+i‑1)变为2(M+i),总的输出字长n+1为2 (M+i),同时设置截断标志位,后续计算位按截断标志位对齐,FFT蝶形算法最终每个n+1输出数据的字长为2(M+n),总的数据输出字长为2 (M+n)。
2.根据权利要求1所述的基于FPGA的快速傅里叶变换数字信号噪声处理方法,其特征在于,按照保留输出数据最大有效位数原则进行高、低位分别截断:在FFT处理过程中,凡是涉及乘法计算的处理节点其输出数据按照保留输出数据最大有效位数截位原则进行高低位分别截断,同时设置截断标志位,在后续计算中标志位对齐。
3.根据权利要求1所述的基于FPGA的快速傅里叶变换数字信号噪声处理方法,其特征在于,涉及加、减法计算的处理节点的输出数据字长增加2位:针对加、减计算步骤可能出现的溢出1位的情况,相对于输入数据,其复数输出数据的实、虚部字长各增加1位,每个输出数据共增加2位字长。
4.根据权利要求1所述的基于FPGA的快速傅里叶变换数字信号噪声处理方法,其特征在于,利用FPGA内置DSP浮点运算功能进行计算过程中无截断计算:在涉及乘法计算的处理节点,利用DSP浮点运算功能,将旋转因子字长设置为与节点输入数据字长相同,乘法和加、减运算过程均不做截断处理,只对节点输出数据进行截断。