資源簡介
利用FFT計算電壓有效值的C語言例程,F(xiàn)FT_C.C 為vc++編寫的C代碼。
代碼片段和文件信息
想用FFT算法計算電壓的有效值。試驗用數據由Ui=1024*[1+sin(2*i*PI/N)](i=0,1,...N-1)得到理想的32點數值,存入數組data[32].Re中,而data[32].Im=0。對data[]逆序排列后,進行FFT運算,預想結果是:預想的運算結果data[]的實部之和應為AD_full的值,虛部之和為0???。但是以下程序運行結果data[]的實部之和為0。查了多半天,沒有找到原因,頭都大了。請大家?guī)兔纯矗e在哪里。謝謝!*/???
??/*test_data(float???u_test[])和revers_order(struct???complx???A[])經驗證沒有問題,錯誤很可能在FFT()中。*/???
??#define???PI???3.141593???
??#define???AD_full???1024???
??#define???N???32???
??#include??????
??#include??????
??struct???complx???
??{???
??????double???Re;???
??????double???Im;???
??};???
????
??void???test_data(float???u_test[]);/*產生32個理想的電壓數據點*/???
??void???FFT(struct???complx???A[]);?????????
??/*對復數進行FFT運算,A[]的實部為電壓,虛部為0。預想的運算結果A[]的實部之和應為AD_full的值,虛部之和為0???*/???
??void???revers_order(struct???complx???A[]);???/*???按照數組下標的二進制逆序重新排列數據*/???
????
??main()???
??{???
????int???i;???
????struct???complx???data[N];???
????float???sum_data=0.0u_test[N]re_test[N]im_test[N]sum_re=0.0sum_im=0.0;???
????test_data(u_test);???
????printf(“\ntest_data???are:\n“);???
????for(i=0;i ????{???
????????data[i].Re=u_test[i];???
????????data[i].Im=0.0;???
????????sum_data=sum_data+data[i].Re*data[i].Re;???
????????printf(“d[%2d].Re=%f?????d[%2d].Im=%1.1f\n???“idata[i].Reidata[i].Im);???
????}???
????getch();???
????revers_order(data);???
????printf(“\ntest???revers???data???are:\n“);???
????for(i=0;i ??????{???
????????printf(“d[%2d].Re=%f?????d[%2d].Im=%1.1f???“idata[i].Reidata[i].Im);???
????????if((i+1)%2==0)???printf(“\n“);???
??????}???
????getch();???
????FFT(data);???
????printf(“\ntest???FFT???data???are:\n“);???
????for(i=0;i ??????{???
????????sum_re=sum_re+data[i].Re;???
????????sum_im=sum_im+data[i].Im;???
????????printf(“d[%2d].Re=%f?????d[%2d].Im=%f???“idata[i].Reidata[i].Im);???
????????if((i+1)%2==0)???printf(“\n“);???
??????}???
????????
????
??printf(“\n\nsum_re=%fsum_im=%fdata_sum=%f“sum_resum_imsqrt(sum_data/N));???
????getch();???
??}???
????
??void???FFT(struct???complx???A[])???
??{???
????struct???complx???UWT;???
????int???LELE1IJIP;???
????int???M=5;???
????double???temp;???
????i
- 上一篇:回溯算法實現(xiàn)5皇后問題
- 下一篇:electric-fence 源碼
評論
共有 條評論