您好,我在调试DSPLIBC674x库的FFT函数时遇到以下问题。
1、对信号采用DSPF_sp_fftSPxSP这个函数做FFT变换时,可以得到信号的频域输出。(信号频率为50Hz,虚部为零)
2、对信号采用DSPF_sp_cfftr4_dif、DSPF_sp_cfftr2_dit这两个函数做FFT变换时,看不到信号的频谱。(信号频率为50Hz,虚部为零)
fftr4_dif
cfftr2_dit
程序方面我参考的是DSPLIB库函数中的DSPF_sp_cfftr4_dif_d.c、DSPF_sp_cfftr2_dit_d.c这两个例程移植的,我不理解例程里的信号实部是sin (2 * 3.1415 * 500 * i / (double) N);虚部是sin (2 * 3.1415 * 1000 * i / (double) N);这个信号不是单频信号吧? 作出的FFT谱图如下:
fftr4_dif
cfftr2_dit
fftrspxSP
下面是我的FFT求解步骤。我想请问使用这两个函数应该怎么求FFT谱,用例程求出来的好像不对。
/*—-DSPF_sp_cfftr4_dif函数基4频域抽样方法——*/
gen_twiddle(w_sp, N);
bit_rev(w_sp, N>>1);
DSPF_sp_cfftr4_dif(x_sp,w_sp,N);
seperateRealImg_c();
/*—-DSPF_sp_cfftr2_di2函数基2时域抽样方法——*/
gen_w_r2(w_sp, N);
bit_rev(x_sp, N);
DSPF_sp_cfftr2_dit(x_sp,w_sp,N);
seperateRealImg_c();
gang liu10:
楼主,您好
我想知道您第一个函数是怎么调用的,貌似您第一个函数是对的。
DSPF_sp_fftSPxSP
我在使用这个函数的时候,得到的频谱,主瓣副瓣跑到最前面的几个点了。