下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、快速傅立葉算法的語言實現(xiàn)#include math.hvoid kfft(pr,pi,n,k,fr,fi,l,il)int n,k,l,il;double pr,pi,fr,fi; int it,m,is,i,j,nv,l0;double p,q,s,vr,vi,poddr,poddi;for (it=0; it=n-1; it+) m=it; is=0;for (i=0; i=k-1; i+) j=m/2; is=2*is+(m-2*j); m=j; frit=pris; fiit=piis;pr0=1.0; pi0=0.0; p=6.283185306/(1.0*n); pr1=cos(p
2、); pi1=-sin(p);if (l!=0) pi1=-pi1;for (i=2; i=n-1; i+) p=pri-1*pr1; q=pii-1*pi1; s=(pri-1+pii-1)*(pr1+pi1); pri=p-q; pii=s-p-q;for (it=0; it=0; l0-) m=m/2; nv=2*nv;for (it=0; it=(m-1)*nv; it=it+nv) for (j=0; j=(nv/2)-1; j+) p=prm*j*frit+j+nv/2; q=pim*j*fiit+j+nv/2; s=prm*j+pim*j; s=s*(frit+j+nv/2+fi
3、it+j+nv/2); poddr=p-q; poddi=s-p-q; frit+j+nv/2=frit+j-poddr; fiit+j+nv/2=fiit+j-poddi; frit+j=frit+j+poddr; fiit+j=fiit+j+poddi;if (l!=0)for (i=0; i=n-1; i+) fri=fri/(1.0*n);fii=fii/(1.0*n);if (il!=0)for (i=0; i=n-1; i+) pri=sqrt(fri*fri+fii*fii);if (fabs(fri)0) pii=90.0;else pii=-90.0;elsepii=atan
4、(fii/fri)*360.0/6.283185306;return;這是在 PIC18F458 里用的 FFT 程序/* * 函 數(shù) 名:void ADCHD()* 功能描述 :單通道高頻采樣 ,數(shù)據(jù)處理 ,顯示 .*/void ADCHD()long D,SHU; / 數(shù)據(jù) .int n_x,k_x,i; / 循環(huán)參數(shù) .float Ur,Ui,Urn,Uin; / 數(shù)據(jù)處理中間變量 . ADWORDS=ADCAN+7; / 確定 MAX197 控制字 . for(ADD=0;ADD64;ADD+) / 采樣 .OUTADC(ADWORDS); / 送控制字 .DELAY(0); / 延時
5、 .DA TA0ADD=INADC(); / 讀取數(shù)據(jù) . for(ADD=0;ADD64;ADD+) / 顯示波形 .D=(int)(40.0*DATA0ADD/4096.0); / 取數(shù)據(jù) .LCDPIEX(ADD+64,40-D); / 顯示 .for(n_x=0;n_x5;n_x+) / 計算 .Urn=0.0; / 實部 .Uin=0.0; / 虛部 .for(k_x=0;k_x32;k_x+) /n_x 次諧波 .D=DATA0k_x; / 取數(shù)據(jù)計算 .Urn=Urn+D/409.6*cos(2*n_x+1)*(k_x+1)*0.196);Uin=Uin+D/409.6*sin(
6、2*n_x+1)*(k_x+1)*0.196); Ur=Urn/16.0; /Ui=Uin/16.0; /SHU=(long)(100*sqrt(Ur*Ur+Ui*Ui);UI0n_x=SHU; / 第 n_x 次諧波幅值 .UI05=SHU*SHU+UI05; /UI05=(long)sqrt(UI05); / 總幅值 . for(i=0;i5;i+) /SHU=UI0i*1000; /SHU=SHU/(UI05); /UP0i=SHU; / 第 i 次諧波占有率 . SHU=1000*(UI05-UI00); /UP05=SHU/UI05;/畸變率 .LCDCLEAN(12,2,126,7
7、); / 清除數(shù)據(jù)顯示區(qū) . for(i=0;i6;i+)OUTNUM(UI0i,1,28,2+i); / 顯示幅值 .OUTNUM(UP0i,3,56,2+i); / 顯示占有率 . ADWORDS=ADCAN; / 還原控制字 .* 函 數(shù) 名:void XBFX()* 功能描述 : 全周波傅立葉積分計算各次諧波的幅值,并返回結果 void XBFX()long D,SHU; / 數(shù)據(jù) . int n_x,k_x,i,n; / 循環(huán)參數(shù) .float Ur,Ui,Urn,Uin,UIL2; / 數(shù)據(jù)處理中間變量 for(n=0;n2;n+) / 兩路信號 .for(n_x=0;n_x5;n
8、_x+) / 計算 .Urn=0.0; / 實部 .Uin=0.0; / 虛部 . for(k_x=0;k_x32;k_x+) /n_x 次諧波 .D=DATACHAN*2+nk_x; / 取數(shù)據(jù)計算 . Urn=Urn+D/409.6*cos(2*n_x+1)*(k_x+1)*0.196);Uin=Uin+D/409.6*sin(2*n_x+1)*(k_x+1)*0.196); Ur=Urn/16.0; /Ui=Uin/16.0; SHU=(long)(760*sqrt(Ur*Ur+Ui*Ui); / UInn_x=SHU; /UIn5=SHU*SHU+UIn5; / 第 n_x 次諧波幅值 if(n_x=0)UILn=atan(Ui/Ur);/相位 . UIn5=(long)sqrt(UIn5); / 總幅值 . for(i=0;i5;i+) /SHU=UIni*1000; /SHU=SHU/(UIn5); /UPni=SHU; / 第 i 次諧波占有率 . SHU=1000*(UIn5-UIn0); / UPn5=SHU/UIn5;/畸變率 .功率因數(shù)角 LCHAN=abs(long)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年航空租賃項目發(fā)展計劃
- 一年級小學生150字簡短日記
- 滬教版小學一年級數(shù)學作業(yè)訓練題及答案
- 2024年銠膦絡合催化劑BC-2-007合作協(xié)議書
- Tetraconazole-Standard-生命科學試劑-MCE
- 3 3 汽化和液化 教學設計 人教版物理八年級上冊
- Talopeptin-生命科學試劑-MCE
- 2024-2025學年新教材高中化學第2章元素與物質世界第1節(jié)第1課時元素與物質的關系物質的分類學案魯科版必修1
- 四年級數(shù)學下冊四三角形認識三角形說課稿西師大版
- 五年級語文楚才杯尋找一崇雨獲獎作文
- 數(shù)據(jù)倫理:科技與道德的交鋒課件
- 精神病服藥自我管理
- 茶園新區(qū)規(guī)劃方案圖
- 2024年操作工技能考核考試-干燥工筆試歷年真題薈萃含答案
- 2021年公開選拔團委副書記專業(yè)知識試題及答案
- 舞蹈專業(yè)大學生生涯發(fā)展
- 第一單元-青春時光(大單元教學設計)-七年級道德與法治下冊同步備課系列(部編版)
- 本科生畢業(yè)論文寫作指導93590課件
- JC/T 547-2017 陶瓷磚膠粘劑
- 網(wǎng)絡安全 100mw光伏并網(wǎng)電站電氣系統(tǒng)設計
- 《國際中文教育概論》課件全套 第1-12章 從對外漢語教學到國際中文教育- 國際中文教育前瞻
評論
0/150
提交評論