數(shù)字信號處理的幾個算法_第1頁
數(shù)字信號處理的幾個算法_第2頁
數(shù)字信號處理的幾個算法_第3頁
數(shù)字信號處理的幾個算法_第4頁
數(shù)字信號處理的幾個算法_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、摘要在學(xué)習(xí)數(shù)字信號處理算法程序中用VC編寫的幾個通用算法程序。關(guān)鍵詞離散卷積FIR在學(xué)習(xí)信號處理的過程中,看到書上的大部分算法都是用Fortan或者Basic實現(xiàn),于是自己試驗著用VC實現(xiàn)了一下。1、卷積計算+CO邈=_s離散卷積公式的算法實現(xiàn)圖1卷積計算界面主程序代碼(省略了部分不關(guān)鍵代碼)voidCInterVolveDlg:CalTheNumByArray()this-UpdateData(TRUE);FFuncsfuncs2=funch1,funch2;intn=this-m_ValueN;double*x=newdouble2*(n+1);/x(n)double*y=newdoubl

2、e2*(n+1);/y(n)double*h=newdouble2*(n+1);/h(n)/1.initx(n),h(n),y(n)CButton*pbtn=(CButton*)this-GetDlgItem(IDC_RADIO1);intnChoseItem=0;/函數(shù)選擇if(pbtn-GetCheck()nChoseItem=0;elsenChoseItem=1;for(inti=0;i2*(n+1);i+)if(in+1)xi=1;hi=funcsnChoseItem(i)elsexi=0;hi=0;/2.y(i)=SUM(x(m)*h(i-m)m=0.ifor(i=0;i2*(n+1

3、);i+)yi=Calcy(x,h,i);/顯示結(jié)果deletex;deletey;deleteh;各個子函數(shù)實現(xiàn)typedefdouble(*FFuncs)(int);/h1(x)doublefunch1(intn)doublefbase=(double)4/(double)5;doublefr=std:pow(fbase,n);returnfr;/h2(x)doublefunch2(intn)doublefpi=3.1415927;return0.5*sin(double)0.5*n);/y(n)/y(n)=sum(x(m)*y(n-m)m=0.ndoubleCalcy(doublex,d

4、oubleh,intn)doubleyvalue=0;for(intm=0;mUpdateData(TRUE);intnN=this-m_NumN;floatfF=this-m_NumF;floatfT=this-m_NumT;boolbIsTimesof2=false;for(inti=0;i100;i+)if(nN=(2GetDlgItem(IDC_EDTN)-SetFocus();return;COMP*x=newCOMPnN;/x(n)COMP*X=newCOMPnN;/X(k)initX(nN,x,fF,fT);CButton*pRadio=(CButton*)this-GetDlg

5、Item(IDC_RADIODFT);if(pRadio-GetCheck()DFT(nN,x,X);elseFFT(nN,x,X);charbuffer256;COMPsource=XnN-1;sprintf(buffer,%f+%fi,source.real(),source.imag();CWnd*pwnd=this-GetDlgItem(IDC_EDTRET);pwnd-SetWindowText(buffer);CListCtrl*pList=(CListCtrl*)this-GetDlgItem(IDC_LIST1);CListOperoper;oper.FillList(*pLi

6、st,nN,x,X);deletex;deleteX;子函數(shù)代碼說明:其中COMP為復(fù)數(shù)類型/*Name:DFT*Function:DisperseFuliyeTransformation*Params:N-Totalcountofsamplingpoints*X-Inputsequence*Return:XN(k)=sumx(n)*Pow(e,j2*Pi/N)*k,n:0.N-1*/voidDFT(intN,COMPx,COMPXK)doubleC=(2*pi)/N;COMPt(0,0),ret(0,0);for(intk=0;kN;k+)ret=COMP(0,0);for(inti=0;i

7、N;i+)t=COMP(cos(C*k*i),-sin(C*k*i);ret+=xi*t;XKk=ret;/*Name:FFT*Function:FastFuliyeTransformation*Params:N-Totalcountofsamplingpoints*X-Inputsequence*Return:XN(k)=sumx(n)*Pow(e,j2*Pi/N)k,n:0.N-1*/voidFFT(intN,COMPX,COMPXK)intj=0;COMPU=0,W=0;COMP*A=XK;/Adjustsequencefor(inti=0;iN;i+)if(i=0)A0=X0;else

8、j=GetInverse(N,j);Ai=Xj;/確定級別數(shù)for(intM=0;MN;M+)if(1M)=N)break;for(intL=1;L=M;L+)/1-M級依次確定intLE=(int)pow(2,L);/間隔intLE1=LE/2;/W級數(shù),如W0,W1,W2.W=COMP(cos(pi/LE1),-sin(pi/LE1);U=COMP(1,0);for(j=0;jLE1;j+)/i=j;while(iN)intIP=i+LE1;COMPT=AIP*U;AIP=Ai-T;/蝶形計算Ai=Ai+T;i+=LE;U=U*W;/不同的W次冪voidinitX(intN,COMPx,f

9、loatF,floatT)for(inti=0;iUpperLimit|x.real()LowLimit)return0;elsereturn1;voidFIR(doubleLowLimit,doubleUpperLimit,intN,COMPHn)intM=2*N;for(inti=0;iN;i+)Hni=COMP(0,0);for(intk=0;kM;k+)COMPC=COMP(cos(2*pi*i*k/(double)M),sin(2*pi*i*k/(double)M);Hni+=C*FuncHd(LowLimit,UpperLimit,COMP(cos(2*pi*k/(double)M),sin(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論