| 
 
| 我使用的是TI的C6713DSP,在例程中有一个simfft的例程,仿照这个历程可以对音频信号进行FFT变换,其中使用的就是dspc67x.lib库函数中的DSPF_sp_cfftr2_dit()FFT变换函数,它采用的是基2的时间抽取算法,我用这个实现了信号的FFT变换,现在想用它实现IFFT变换,即由频谱还原回原始信号,这要怎么做呢?我的程序如下,可是结果总是不对,希望知情者给解答一下,谢谢! //fft开始
 for(i=0;i<NX;i++)
 {
 input_l[i*2]=Buffer_iir_l[i];//时域信号的实部
 input_l[i*2+1]=0;//时域信号的虚部,设为0
 }
 
 DSPF_sp_cfftr2_dit(input_l, w, NX);//fft变换,结果以位倒序形式存放
 DSPF_sp_bitrev_cplx(input_l,iData,NX); //再对结果进行倒序
 for(i=0;i<NX/2+1;i++)
 {
 //计算频谱的模值
 rlt[i]=sqrtf(input_l[2*i]*input_l[2*i]+input_l[2*i+1]*input_l[2*i+1]);
 }
 //fft结束,ifft开始
 for(i=0;i<NX;i++)
 {
 output_l[i*2]=input_l[i*2];
 output_l[i*2+1]=0;
 }
 DSPF_sp_cfftr2_dit(output_l, w, NX);//w为旋转因子,已从例程中得到
 DSPF_sp_bitrev_cplx(input_l,iData,NX);
 //位倒序函数,iData已知,但具体含义不太明白
 for(i=0;i<NX;i++)
 {
 Buffer_iir_l[i]=output_l[i*2];//取实部作为输出信号
 }
 
 for(i=0;i<512;i++)
 {
 gBufferXmtPing[i]=(int)(Buffer_iir_l[i]);
 }
 //ifft结束
 | 
 |