欢迎来到天天文库
浏览记录
ID:59198517
大小:25.50 KB
页数:5页
时间:2020-09-10
《快速傅立叶变换程序(更新版).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.加图标ID_FFT,类向导在视类添加相应函数2.BMP文件中增加:BITMAPINFO*lpDIB=NULL;//原时域图像BITMAPINFO*lpDIB_FFT=NULL;//频谱图像staticDWORDLineBytes=0;//图像每行像素所占字节数staticLONGsize=0;//图像实际数据所占字节数注意:在LoadBmpFile函数中//删除LONGsize=sizeof(BITMAPINFOHEADER)+NumColors*sizeof(RGBQUAD)+ImgSize;中的LONG
2、//删除DWORDLineBytes=(bi.biWidth*bi.biBitCount+31)/32*4;中的DWORD//在“if(NULL==(lpBitsInfo=(LPBITMAPINFO)malloc(size)))returnFALSE;”后面给lpDIB分配内存“if(NULL==(lpDIB=(LPBITMAPINFO)malloc(size)))returnFALSE;“//在“fread((char*)lpBitsInfo,size,1,fp);”后面添加“lpDIB=lpBitsInfo
3、”在视类OnDraw前中增加:externBITMAPINFO*lpDIB_FFT;externBITMAPINFO*lpDIB;OnDraw中增加:if(lpDIB_FFT){lpBits=(LPVOID)&lpDIB_FFT->bmiColors[lpDIB_FFT->bmiHeader.biClrUsed];StretchDIBits(pDC->GetSafeHdc(),600,0,lpDIB_FFT->bmiHeader.biWidth,lpDIB_FFT->bmiHeader.biHeight,0,0
4、,lpDIB_FFT->bmiHeader.biWidth,lpDIB_FFT->bmiHeader.biHeight,lpBits,lpDIB_FFT,//bitmapdataDIB_RGB_COLORS,SRCCOPY);}3.在视类添加voidFourier();voidCFFTView::OnFft(){if(lpDIB_FFT)free(lpDIB_FFT);Fourier();Invalidate();}voidCFFTView::OnUpdateFft(CCmdUI*pCmdUI){pCmdUI-
5、>Enable(lpDIB!=NULL);}4.BMP文件前面添加#includeusingnamespacestd;(PPT中Copy)#definePI3.4.BMP文件中添加函数voidFourier(){}5.BMP文件中添加函数一维傅里叶变换函数FFT()(红色加粗是需要自己写的,其他的为PPT中Copy)voidFFT(complex*TD,complex*FD,intr){//计算付立叶变换点数LONGcount=1<6、;doubleangle;complex*W=newcomplex[count/2];for(i=0;i(cos(angle),sin(angle));}//将时域点写入X1complex*X1=newcomplex[count];memcpy(X1,TD,sizeof(complex)*count);//采用蝶形算法进行快速7、付立叶变换,输出为频域值X2complex*X2=newcomplex[count];intk,j,p,size;complex*temp;for(k=0;k8、;}}temp=X1;X1=X2;X2=temp;}//重新排序(码位倒序排列)for(j=0;j
6、;doubleangle;complex*W=newcomplex[count/2];for(i=0;i(cos(angle),sin(angle));}//将时域点写入X1complex*X1=newcomplex[count];memcpy(X1,TD,sizeof(complex)*count);//采用蝶形算法进行快速
7、付立叶变换,输出为频域值X2complex*X2=newcomplex[count];intk,j,p,size;complex*temp;for(k=0;k8、;}}temp=X1;X1=X2;X2=temp;}//重新排序(码位倒序排列)for(j=0;j
8、;}}temp=X1;X1=X2;X2=temp;}//重新排序(码位倒序排列)for(j=0;j
此文档下载收益归作者所有