下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1加图标ID_FFT,类向导在视类添加相应函数2BMP文件中增加:BITMAPINFO* lpDIB = NULL; /原时域图像BITMAPINFO* lpDIB_FFT = NULL; /频谱图像static DWORD LineBytes = 0; /图像每行像素所占字节数static LONG size = 0; /图像实际数据所占字节数注意:在LoadBmpFile函数中/删除LONG size= sizeof(BITMAPINFOHEADER) + NumColors * sizeof(RGBQUAD) + ImgSize;中的LONG/删除 DWORD LineBytes = (
2、bi.biWidth * bi.biBitCount + 31)/32 * 4;中的DWORD/在“if (NULL = (lpBitsInfo = (LPBITMAPINFO) malloc(size)return FALSE;”后面给lpDIB分配内存“if (NULL = (lpDIB= (LPBITMAPINFO) malloc(size)return FALSE; “/在“fread(char*)lpBitsInfo, size, 1, fp);”后面添加“lpDIB = lpBitsInfo”在视类OnDraw前中增加:extern BITMAPINFO *lpDIB_FFT;ex
3、tern BITMAPINFO *lpDIB;OnDraw中增加:if (lpDIB_FFT)lpBits = (LPVOID)&lpDIB_FFT-bmiColorslpDIB_FFT-bmiHeader.biClrUsed;StretchDIBits( pDC-GetSafeHdc(),600,0,lpDIB_FFT-bmiHeader.biWidth,lpDIB_FFT-bmiHeader.biHeight,0,0,lpDIB_FFT-bmiHeader.biWidth,lpDIB_FFT-bmiHeader.biHeight,lpBits,lpDIB_FFT, / bitmap dat
4、a DIB_RGB_COLORS,SRCCOPY);3在视类添加void Fourier();void CFFTView:OnFft() if (lpDIB_FFT)free(lpDIB_FFT);Fourier();Invalidate();void CFFTView:OnUpdateFft(CCmdUI* pCmdUI) pCmdUI-Enable(lpDIB != NULL);4BMP文件前面添加#include using namespace std;(PPT中Copy)#define PI 3.4BMP文件中添加函数void Fourier()5BMP文件中添加函数一维傅里叶变换函数
5、FFT()(红色加粗是需要自己写的,其他的为PPT中Copy)void FFT(complex * TD, complex * FD, int r)/ 计算付立叶变换点数LONG count = 1 r;/ 计算加权系数int i;double angle;complex* W = new complexcount / 2;for(i = 0; i count / 2; i+)angle = -i * PI * 2 / count;Wi = complex (cos(angle), sin(angle);/ 将时域点写入X1complex* X1 = new complexcount;memc
6、py(X1, TD, sizeof(complex) * count);/ 采用蝶形算法进行快速付立叶变换,输出为频域值X2complex* X2 = new complexcount; int k,j,p,size;complex* temp;for (k = 0; k r; k+)for (j = 0; j 1 k; j+)size = 1 (r-k);for (i = 0; i size/2; i+)p = j * size;X2i + p = X1i + p + X1i + p + size/2;X2i + p + size/2 = (X1i + p - X1i + p + size/
7、2) * Wi * (1k);temp = X1;X1 = X2;X2 = temp;/ 重新排序(码位倒序排列)for (j = 0; j count; j+)p = 0;for (i = 0; i r; i+)if (j & (1i)p += 1bmiHeader.biWidth;int height = lpDIB-bmiHeader.biHeight;/指向图像数据指针BYTE* lpBits = (BYTE*)&lpDIB-bmiColorslpDIB-bmiHeader.biClrUsed;/ FFT宽度(必须为2的整数次方)int FFT_w = 1;/ FFT宽度的幂数,即迭代
8、次数int wp = 0;while(FFT_w * 2 = width)FFT_w *= 2;wp +;/ FFT高度(必须为2的整数次方)int FFT_h = 1;/ FFT高度的幂数,即迭代次数int hp = 0;while(FFT_h * 2 = height)FFT_h *= 2;hp +;/ 分配内存complex* TD = new complexFFT_w * FFT_h;complex* FD = new complexFFT_w * FFT_h;int i, j;BYTE* pixel;for(i = 0; i FFT_h; i+) / 行for(j = 0; j FF
9、T_w; j+) / 列/ 指向DIB第i行,第j个象素的指针pixel = lpBits + LineBytes * (height - 1 - i) + j;/ 给时域赋值TDj + FFT_w * i = complex(*pixel, 0);for(i = 0; i FFT_h; i+)/ 对y方向进行快速付立叶变换FFT(&TDFFT_w * i, &FDFFT_w * i, wp);/ 保存中间变换结果for(i = 0; i FFT_h; i+)for(j = 0; j FFT_w; j+)TDi + FFT_h * j = FDj + FFT_w * i;for(i = 0; i bmiColorslpDIB_FFT-bmiHeader.biClrUsed;double temp;for(i = 0; i FFT_h; i+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021年小学教师教学工作总结十篇
- 有关高中叙事作文600字七篇
- 小学数学教师研修心得体会(集合9篇)
- 辽宁省营口市大石桥市大石桥市第二初级中学2024-2025学年九年级上学期12月月考道德与法治试卷
- 国际乡村自驾车旅游休闲度假总体规划
- 冀教版三年级数学吨的认识说课获奖课件
- 典型压力管道失效模式介绍
- 关于中药材的分类和储存
- 六年级数学上册数学活动《确定起跑线》课件
- 《生物高考考纲解读》课件
- 大学生心理健康与发展学习通超星期末考试答案章节答案2024年
- 《人工智能基础》课件-AI的前世今生:她从哪里来
- 内部创业基础智慧树知到期末考试答案章节答案2024年湖南大学
- 穿井得一人(优秀课件)课件
- 《钻井工程理论与技术》配套教学课件
- 足球运动员登记表
- 铁路装卸搬运管理制度
- 隐蔽型无追索权国内保理合同模板范本
- 精选四川省2023年普通高中学业水平考试物理学科实验操作考查试题
- 数字孪生技术在智慧工厂中的应用解决方案
- 《卵巢肿瘤》ppt课件(PPT 101页)
评论
0/150
提交评论