c6678中FFT结果与matlab中FFT结果差别太大,求帮助。附件中包含C6678的FFT工程,matlab的FFT程序,以及两者运算完的结果截图。请求大家帮助了。谢谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
c6678中FFT结果与matlab中FFT结果差别太大,求帮助。附件中包含C6678的FFT工程,matlab的FFT程序,以及两者运算完的结果截图。请求大家帮助了。谢谢。
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对
不存在倍数的关系。频谱完全不对。估计我使用FFT的时候,哪块没有理解。
void main ()
{
int i=0;
float j=1.5;
/* Generate the input data */
generateInput (NUM_SIN_WAVES);
/* Genarate twiddle factors */
gen_twiddle_fft_sp(w_sp, N);
/* Call FFT routine */
DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);
/* Call the test code to seperate the real and imaginary data */
seperateRealImg ();
i=(int)(&(y_real_sp[0]));
i=(int)(&(y_imag_sp[0]));
该函数我是这么理解的:
(1)generateInput (NUM_SIN_WAVES);产生时域信号。时域为自然序
(2)gen_twiddle_fft_sp(w_sp, N);产生旋转因子
(3)DSPF_sp_fftSPxSP(N, x_sp, w_sp, y_sp, brev, 2, 0, N);实现浮点FFT,输出结果是自然序
(4)seperateRealImg ();将FFT的结果实现实部和虚部分开。
不知道我的理解对不对