




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
[15]。本项研究不仅确认了当前理论框架的有效性,还揭示了实践运用中可能存在的缺陷与改进空间。通过深入分析实际状况,本文发现现有理论在不同情境下的应用成效存在差异,这促使本文进一步思考如何根据具体情况调整并优化理论架构,以增强其实用性和参考价值。二维FFT也可用浮点数来计算,如果想要用FFT来处理复数,就得把数据存储区分成实部和虚部两个区,在这种安排下如果对一定次数的纵向的一维FFT进行转置的操作,这样就可以把该次数的纵向的一维FFT变成相应次数的横向FFT。若这样做,在程序设计时就可以不用编写纵向一维FFT的程序了,只要以对角线为中心进行数据变换,纵向FFT即可被横向FFT取代(刘佳慧,王一鸣,2021)。在此基础上,本文参考了现有的方法体系来构思计算途径,并进行了合理简化,以提升其实用效能和便捷性。研究内容一维和二维FFT首先通过VC++和MATLAB软件编写程序进行一维FFT的仿真,再自定义一个维数组也同样分别用C语言和MATLAB进行仿真并对比仿真结果(吴思雨,张语嫣,2021)。总体而言,本研究在理论探索和实践应用方面均取得了重要进展。本阶段的研究工作通过综合多学科的专业智慧、研究范式和技术工具,研究团队在众多领域上取得了突破性的成果。图像处理通过PS软件自定义一幅灰度图用MATLAB程序导出其像素值后进行二维FFT运算导出结果,再编写C语言程序将像素值进行二维FFT,将两者结果进行对比(孙佳琪,李月怡,2021)。STM32实现图像FFT本课题使用到STM32F103ZET6精英板,使用STLINK与电脑进行连接再通过Keil软件将灰度图显示出来再将图片的像素存入FLASH并编写程序再STM32中实现图像的FFT并显示出来。图5为显示模块的总体结构(黄晨宇,赵佳欣,2021)。本文的研究不仅验证了现有理论的准确性和实用性,还推动了相关领域的知识创新与发展,为未来的研究和实践提供了有益的借鉴。图SEQ图\*ARABIC5显示模块的总体结构核心程序设计VC++实现一维FFT编写程序时主要步骤为多级蝶形运算和码位倒置。图6为VC++软件界面,图7为VC++实现一维FFT的设计流程图(杨颖博,王宏宇,2021)。本文的研究不仅验证了现有理论的准确性和适用性,还推动了相关领域的知识更新和发展进程,为未来的研究和实践提供了有益的参考蓝图。本课题在设计一维FFT的C程序时,运用的FFT算法时基2算法,首先需要定义圆周率PI的值,处于这般情境时由于结果为复数形式,所以需要先定义复数结构体,定义实部为real,虚部为image,从这些迹象中显而易见再定义所需double型变量并编写fft函数实现码位倒置和蝶形运算,再自己定义一个8位的数组[1,1,1,1,0,0,0,0]并带入fft函数中,最后输出时区分虚部正负值输出(王梓浩,王子杰,2021),。图SEQ图\*ARABIC6VC++软件界面图SEQ图\*ARABIC7VC++实现一维FFT的设计流程MATLAB实现图像的二维FFT从这些迹象中显而易见由于MATLAB软件自带FFT函数,只需简单调用即可,结果准确,所以选择MATLAB可以验证C语言程序结果的准确性,且在图像处理中需要通过MATLAB导出图像像素值。图8为MATLAB软件界面。图9为MATLAB实现二维FFT设计流程图(李思齐,黄俊凯,2021)。在与同行研究的对比中,作者发现尽管在具体成果的表述上可能存在微小差异,但核心结论和趋势均高度一致,这进一步提升了本研究结论的可靠性。图SEQ图\*ARABIC8MATLAB软件界面图SEQ图\*ARABIC9MATLAB实现二维FFT设计流程本课题选择了128*64的灰度图,通过imread函数读取其灰度值,为了方便导出,使用了im2double函数将数据类型进行转换,这确切表明了情况再调用fft2函数进行二维FFT运算,但此时图像显示出来时很不明显的,需要使用fftshift函数进行频谱增强(李雅琳,张志豪,2021)。STM32微控制器实现图像FFT本课题使用STM32微控制分别实现了原灰度图与FFT后的图像显示,原灰度图的显示需要使用到MATLAB软件导出的像素值,这在一定层面上证实了编写Keil软件的LCD工程,在LCD工程的main函数中通过constuint8_timg[128][64]语句和双重循环语句实现像素值的导入再通过输出语句显示在LCD中(王文泽,赵欣妍,2021)。前述成果在一定程度上佐证了本文预先建立的理论架构。初步的研究数据与理论预期保持了较高的一致性,验证了理论模型中机制的有效性。在实现FFT后的图片显示时会发现图片经过MATLAB软件FFT后,像素值为很多位的小数,从这些故事中看出即使将其数据通过uint8函数进行转换,得到的结果也全部小于8,如图10所示。所以在实现过程中编写了将数据放大为0到255之间的数据图11所示为放大函数,图12为处理后的数据。从这些描述中揭示最后将经过处理的数据导入LCD显示工程进行显示。这些实践数据使研究能够识别并理解理论模型在应用于实际情况时可能遇到的挑战和偏差。放大函数的目的是将0-8之间的数据通过等比例放大到0-256之间,这样就能再LCD中显示出来了。在STM32实现FFT过程中,需要将图片存入FLASH由于图片为128*64的灰度图,所以大小为24kb左右,故本课题选用32kbFLASH,再将原图像FFT的VC++程序改写并通过Keil5软件写入STM32中,显示输出结果(刘秋婷,周昕悦,2021)。此方案的检测工作本文从理论探讨与实际检验两方面着手。在理论探讨部分,深入分析了该设计的核心原理及预设成果,并通过建立理论框架和逻辑推导为后续分析奠定了理论基础。图SEQ图\*ARABIC10未处理的数据图SEQ图\*ARABIC11放大函数图SEQ图\*ARABIC12处理后的数据课题研究结果一维FFT的实现MATLAB实现一维FFT本课题在MATLAB仿真中通过直接调用FFT函数将自定义的8位一维数组进行FFT运算。图13为MATLAB仿真一维FFT结果图(陈浩宇,王思博,2021)。图SEQ图\*ARABIC13MATLAB仿真一维FFTVC++实现一维FFT在VC++中设计程序用基2算法来实现8位数的一维FFT,图14为VC++实现一维FFT的结果图,其中能看得结果是按照正负区分输出的。虽然本研究受到了何其飞教授工作的启发,但本文也在多个环节中融入了自己的创新点,在研究设计阶段采取了更为灵活多样的数据收集方式;在数据分析过程中探索了不同变量之间的复杂关系,旨在使研究不仅具有理论价值,也具备一定的实践指导意义。通过图13和图14之间的对比发现FFT的结果一致。VC++中程序设计正确(林思哲,杨俊杰,2021)。 图SEQ图\*ARABIC14VC++一维FFT二维FFT的实现MATLAB实现二维FFT首先定义一个6*8的数组然后通过补“0”法将数组填充为8*8的数组,并在MATLAB程序中调用FFT2函数即可实现二维数组的FFT。这种拓展也为本文提供了新的研究视角与启发,有助于推动该领域理论的持续进步。本研究同样强调理论与实践的结合,通过解决实际问题验证了理论的可行性与实用性,为相关领域实践提供了坚实的理论支撑。图15为MATLAB二维FFT的仿真结构图(王家伟,邱慧敏,2021):图SEQ图\*ARABIC15MATLAB仿真二维FFTVC++实现二维FFT设计循环程序将数组存入程序中并进行二维FFT运算,图16为二维FFT的运算结果。将图15和图16进行对比,这在一定层面上传递了其结果一致。在此基础上,本文结合研究主旨,精心规划了一套科学的研究设计,包括数据收集方式、样本选取原则及分析架构。程序中还编写了时间函数通过结果中的时间显示可以看出FFT的运算速度也是特别快的。图SEQ图\*ARABIC16VC++仿真二维FFT对图像进行二维FFT处理MATLAB对图像进行FFT处理自定义一幅128*64的灰度图再通过rgb2gray函数导出图片的灰度值,通过FFT2函数对像素值进行FFT运算,这在某种程度上确认了最后将图片显示出来,但是为了更好的显示图片,需要通过对数变换来增强频谱,也就是调用fftshift函数(李晨曦,胡晓波,2021)。图17为原灰度图,图18为FFT处理后的图像。本文在研究方法上的革新体现在对过去工作成果的有效整合,以此来推动对这个主题的深刻理解。图19为MATLAB进行FFT运算后存入FFT_GRA的值。图SEQ图\*ARABIC17灰度图图SEQ图\*ARABIC18MATLABFFT处理结果图图SEQ图\*ARABIC19FFT_GRAVC++对图像进行FFT处理将MATLAB中导出的图像像素值存入文件garydata.txt中,再将像素值导入C语言程序中,并编写程序进行二维FFT运算,将结果存入相应文件中,为了对比方便,再将VC++运算后的结果导入MATLAB中进行图像显示,图20为VC++仿真后的结果MY_RESULT,不仅对既有的理论展开了更为深入透彻的剖析,还在此根基上开拓出全新的研究视角与分析架构。图21为运算后的结果显示成的图像。对比FFT_GRA与MY_RESULT中的值,再对比图19与图21,可以得出MATLAB和VC++对图像进行二维FFT的结果一致(赵和,范佳慧,2021)图SEQ图\*ARABIC20VC++处理结果图图SEQ图\*ARABIC21MY_RESULTSTM32实现FFT建立LCD显示工程,再将garydata.txt中的像素值写入工程中,图22为原灰度图显示结果。这从一个侧面说明了由于图像进行FFT运算后的像素值会出现很多位的小数,所以在MATLAB中通过自定义函数将小数放大并通过unit8函数转换数据类型,再将其写入工程中显示,图23为FFT处理后的图片显示结果图。在信息流程的设计层面,本文引用了经典的信息处理模型,保证信息从搜集、传送至分析的每个阶段都能高效且无误地运作。通过与原图像的对比可以看出,STM32微控制器可以通过LCD成功的将原图像显示出来,通过放大函数的数据变换,FFT之后的图像也可以进行显示。最后也可以通过导入C语言程序实现图像的二维FFT并显示出来。本研究着重突出理论与实践的紧密融合,努力把抽象的理论应用到具体的实践问题解决过程中,以此验证理论的有效性和实用价值。图SEQ图\*ARABIC22灰度图LCD显示结果图SEQ图\*ARABIC23FFT结果LCD显示
课题总结本次设计实现了VC++和MATLAB分别实现一维二维FFT以及对灰度图进行FFT处理,并实现了STM32上LCD结果显示,本次设计理论性偏强,需要查阅大量文献资料,因为在之前的课程中学过数字信号处理,这在一定层面上揭示所以对于FFT还是有一定的了解。在程序实现过程中,由于C语言实现码位倒置和蝶形运算的算法比较复杂,也是参考了很多书籍论坛最终编写出来(何博文,张梦婷,2021)。MATLAB实现FFT就简单很多,因为软件自带FFT函数,所以MATLAB实现FFT的程序就很简单且结果更为准确。最后在实现显示模块,选择了经常使用的STM32F103ZET6参考了之前做过的LCD显示实验库函数版,唯一复杂的是128*64的图片像素值数据量过大,在导入时可能会出现问题。在设计过程中也遇到过一些问题,比如在进行VC++编程时,变量太多很容易程序出bug,MATLAB程序设计时运算结果数据的类型不正确,这在一定角度上表达了在结果显示时STLINK驱动也出过问题,数组的输入循环嵌套出过错,最后在不断的试错以及导师的帮助下最终顺利完成设计。
参考文献马翠梅.低复杂度混合基FFT研究与设计[D].北京理工大学,2014.李天宇,张晨曦.快速傅里叶变换FFT及其应用[J].光电工程,2022,31(S1):1-3.王欣怡,刘宇翔.低复杂度快速傅里叶变换的研究与实现[D].上海交通大学,2023.陈雨泽,赵佳琪.快速傅里叶变换的两种改进算法[J].电力系统自动化,2021,000(012):37.李飞,孙思琪.快速傅里叶变换中逆序数计算的一种快速算法[J].信息技术2021(8):164-165.周节,黄亭和.快速傅里叶变换(FFT)在电子光学中的应用[J].真空电子技术,2022(06):51.杨浩然,高文博K.R.Rao,D.N.Kim,J.J.Hwang.快速傅里叶变换:算法与应用[M].机械工业出版社,2013.刘辰,王乐婷.浅谈FFT(快速傅里叶变换)算法及其应用[J].科技展望,2015,2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园数学互动体验课程试题及答案
- 瓦斯防治考试题及答案
- 施工现场事故预警机制的试题及答案
- 家居设计中空间美感的提升策略试题及答案
- 职业热情测试题及答案
- 幼儿园时间与数字课堂试题及答案
- 小学教师教育策略展望试题及答案
- 宜宾遴选笔试试题及答案
- 微分积分考试题及答案
- 幼儿园考试卷及答案语文
- 教师语言与沟通艺术知到智慧树章节测试课后答案2024年秋温州大学
- 《路基养护》课件
- 《基于EVA的科大讯飞企业价值评估的计算过程及结果探析案例报告》10000字(论文)
- 空气输送斜槽选型手册
- 服装IE(浙江纺织服装职业技术学院)知到智慧树答案
- 培训机构教务管理岗位职责
- 水利工程项目法人质量责任追究和奖惩制度
- DB44-T 2537-2024 小型水电站退役导则
- 托幼机构安全应急预案制度
- 酒店执行力培训
- 企业合规之内控与风险管理
评论
0/150
提交评论