《STM32微控制器實(shí)現(xiàn)圖像FFT處理及顯示》9300字論文_第1頁(yè)
《STM32微控制器實(shí)現(xiàn)圖像FFT處理及顯示》9300字論文_第2頁(yè)
《STM32微控制器實(shí)現(xiàn)圖像FFT處理及顯示》9300字論文_第3頁(yè)
《STM32微控制器實(shí)現(xiàn)圖像FFT處理及顯示》9300字論文_第4頁(yè)
《STM32微控制器實(shí)現(xiàn)圖像FFT處理及顯示》9300字論文_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

[15]。本項(xiàng)研究不僅確認(rèn)了當(dāng)前理論框架的有效性,還揭示了實(shí)踐運(yùn)用中可能存在的缺陷與改進(jìn)空間。通過(guò)深入分析實(shí)際狀況,本文發(fā)現(xiàn)現(xiàn)有理論在不同情境下的應(yīng)用成效存在差異,這促使本文進(jìn)一步思考如何根據(jù)具體情況調(diào)整并優(yōu)化理論架構(gòu),以增強(qiáng)其實(shí)用性和參考價(jià)值。二維FFT也可用浮點(diǎn)數(shù)來(lái)計(jì)算,如果想要用FFT來(lái)處理復(fù)數(shù),就得把數(shù)據(jù)存儲(chǔ)區(qū)分成實(shí)部和虛部?jī)蓚€(gè)區(qū),在這種安排下如果對(duì)一定次數(shù)的縱向的一維FFT進(jìn)行轉(zhuǎn)置的操作,這樣就可以把該次數(shù)的縱向的一維FFT變成相應(yīng)次數(shù)的橫向FFT。若這樣做,在程序設(shè)計(jì)時(shí)就可以不用編寫(xiě)縱向一維FFT的程序了,只要以對(duì)角線為中心進(jìn)行數(shù)據(jù)變換,縱向FFT即可被橫向FFT取代(劉佳慧,王一鳴,2021)。在此基礎(chǔ)上,本文參考了現(xiàn)有的方法體系來(lái)構(gòu)思計(jì)算途徑,并進(jìn)行了合理簡(jiǎn)化,以提升其實(shí)用效能和便捷性。研究?jī)?nèi)容一維和二維FFT首先通過(guò)VC++和MATLAB軟件編寫(xiě)程序進(jìn)行一維FFT的仿真,再自定義一個(gè)維數(shù)組也同樣分別用C語(yǔ)言和MATLAB進(jìn)行仿真并對(duì)比仿真結(jié)果(吳思雨,張語(yǔ)嫣,2021)??傮w而言,本研究在理論探索和實(shí)踐應(yīng)用方面均取得了重要進(jìn)展。本階段的研究工作通過(guò)綜合多學(xué)科的專(zhuān)業(yè)智慧、研究范式和技術(shù)工具,研究團(tuán)隊(duì)在眾多領(lǐng)域上取得了突破性的成果。圖像處理通過(guò)PS軟件自定義一幅灰度圖用MATLAB程序?qū)С銎湎袼刂岛筮M(jìn)行二維FFT運(yùn)算導(dǎo)出結(jié)果,再編寫(xiě)C語(yǔ)言程序?qū)⑾袼刂颠M(jìn)行二維FFT,將兩者結(jié)果進(jìn)行對(duì)比(孫佳琪,李月怡,2021)。STM32實(shí)現(xiàn)圖像FFT本課題使用到STM32F103ZET6精英板,使用STLINK與電腦進(jìn)行連接再通過(guò)Keil軟件將灰度圖顯示出來(lái)再將圖片的像素存入FLASH并編寫(xiě)程序再STM32中實(shí)現(xiàn)圖像的FFT并顯示出來(lái)。圖5為顯示模塊的總體結(jié)構(gòu)(黃晨宇,趙佳欣,2021)。本文的研究不僅驗(yàn)證了現(xiàn)有理論的準(zhǔn)確性和實(shí)用性,還推動(dòng)了相關(guān)領(lǐng)域的知識(shí)創(chuàng)新與發(fā)展,為未來(lái)的研究和實(shí)踐提供了有益的借鑒。圖SEQ圖\*ARABIC5顯示模塊的總體結(jié)構(gòu)核心程序設(shè)計(jì)VC++實(shí)現(xiàn)一維FFT編寫(xiě)程序時(shí)主要步驟為多級(jí)蝶形運(yùn)算和碼位倒置。圖6為VC++軟件界面,圖7為VC++實(shí)現(xiàn)一維FFT的設(shè)計(jì)流程圖(楊穎博,王宏宇,2021)。本文的研究不僅驗(yàn)證了現(xiàn)有理論的準(zhǔn)確性和適用性,還推動(dòng)了相關(guān)領(lǐng)域的知識(shí)更新和發(fā)展進(jìn)程,為未來(lái)的研究和實(shí)踐提供了有益的參考藍(lán)圖。本課題在設(shè)計(jì)一維FFT的C程序時(shí),運(yùn)用的FFT算法時(shí)基2算法,首先需要定義圓周率PI的值,處于這般情境時(shí)由于結(jié)果為復(fù)數(shù)形式,所以需要先定義復(fù)數(shù)結(jié)構(gòu)體,定義實(shí)部為real,虛部為image,從這些跡象中顯而易見(jiàn)再定義所需double型變量并編寫(xiě)fft函數(shù)實(shí)現(xiàn)碼位倒置和蝶形運(yùn)算,再自己定義一個(gè)8位的數(shù)組[1,1,1,1,0,0,0,0]并帶入fft函數(shù)中,最后輸出時(shí)區(qū)分虛部正負(fù)值輸出(王梓浩,王子杰,2021),。圖SEQ圖\*ARABIC6VC++軟件界面圖SEQ圖\*ARABIC7VC++實(shí)現(xiàn)一維FFT的設(shè)計(jì)流程MATLAB實(shí)現(xiàn)圖像的二維FFT從這些跡象中顯而易見(jiàn)由于MATLAB軟件自帶FFT函數(shù),只需簡(jiǎn)單調(diào)用即可,結(jié)果準(zhǔn)確,所以選擇MATLAB可以驗(yàn)證C語(yǔ)言程序結(jié)果的準(zhǔn)確性,且在圖像處理中需要通過(guò)MATLAB導(dǎo)出圖像像素值。圖8為MATLAB軟件界面。圖9為MATLAB實(shí)現(xiàn)二維FFT設(shè)計(jì)流程圖(李思齊,黃俊凱,2021)。在與同行研究的對(duì)比中,作者發(fā)現(xiàn)盡管在具體成果的表述上可能存在微小差異,但核心結(jié)論和趨勢(shì)均高度一致,這進(jìn)一步提升了本研究結(jié)論的可靠性。圖SEQ圖\*ARABIC8MATLAB軟件界面圖SEQ圖\*ARABIC9MATLAB實(shí)現(xiàn)二維FFT設(shè)計(jì)流程本課題選擇了128*64的灰度圖,通過(guò)imread函數(shù)讀取其灰度值,為了方便導(dǎo)出,使用了im2double函數(shù)將數(shù)據(jù)類(lèi)型進(jìn)行轉(zhuǎn)換,這確切表明了情況再調(diào)用fft2函數(shù)進(jìn)行二維FFT運(yùn)算,但此時(shí)圖像顯示出來(lái)時(shí)很不明顯的,需要使用fftshift函數(shù)進(jìn)行頻譜增強(qiáng)(李雅琳,張志豪,2021)。STM32微控制器實(shí)現(xiàn)圖像FFT本課題使用STM32微控制分別實(shí)現(xiàn)了原灰度圖與FFT后的圖像顯示,原灰度圖的顯示需要使用到MATLAB軟件導(dǎo)出的像素值,這在一定層面上證實(shí)了編寫(xiě)Keil軟件的LCD工程,在LCD工程的main函數(shù)中通過(guò)constuint8_timg[128][64]語(yǔ)句和雙重循環(huán)語(yǔ)句實(shí)現(xiàn)像素值的導(dǎo)入再通過(guò)輸出語(yǔ)句顯示在LCD中(王文澤,趙欣妍,2021)。前述成果在一定程度上佐證了本文預(yù)先建立的理論架構(gòu)。初步的研究數(shù)據(jù)與理論預(yù)期保持了較高的一致性,驗(yàn)證了理論模型中機(jī)制的有效性。在實(shí)現(xiàn)FFT后的圖片顯示時(shí)會(huì)發(fā)現(xiàn)圖片經(jīng)過(guò)MATLAB軟件FFT后,像素值為很多位的小數(shù),從這些故事中看出即使將其數(shù)據(jù)通過(guò)uint8函數(shù)進(jìn)行轉(zhuǎn)換,得到的結(jié)果也全部小于8,如圖10所示。所以在實(shí)現(xiàn)過(guò)程中編寫(xiě)了將數(shù)據(jù)放大為0到255之間的數(shù)據(jù)圖11所示為放大函數(shù),圖12為處理后的數(shù)據(jù)。從這些描述中揭示最后將經(jīng)過(guò)處理的數(shù)據(jù)導(dǎo)入LCD顯示工程進(jìn)行顯示。這些實(shí)踐數(shù)據(jù)使研究能夠識(shí)別并理解理論模型在應(yīng)用于實(shí)際情況時(shí)可能遇到的挑戰(zhàn)和偏差。放大函數(shù)的目的是將0-8之間的數(shù)據(jù)通過(guò)等比例放大到0-256之間,這樣就能再LCD中顯示出來(lái)了。在STM32實(shí)現(xiàn)FFT過(guò)程中,需要將圖片存入FLASH由于圖片為128*64的灰度圖,所以大小為24kb左右,故本課題選用32kbFLASH,再將原圖像FFT的VC++程序改寫(xiě)并通過(guò)Keil5軟件寫(xiě)入STM32中,顯示輸出結(jié)果(劉秋婷,周昕悅,2021)。此方案的檢測(cè)工作本文從理論探討與實(shí)際檢驗(yàn)兩方面著手。在理論探討部分,深入分析了該設(shè)計(jì)的核心原理及預(yù)設(shè)成果,并通過(guò)建立理論框架和邏輯推導(dǎo)為后續(xù)分析奠定了理論基礎(chǔ)。圖SEQ圖\*ARABIC10未處理的數(shù)據(jù)圖SEQ圖\*ARABIC11放大函數(shù)圖SEQ圖\*ARABIC12處理后的數(shù)據(jù)課題研究結(jié)果一維FFT的實(shí)現(xiàn)MATLAB實(shí)現(xiàn)一維FFT本課題在MATLAB仿真中通過(guò)直接調(diào)用FFT函數(shù)將自定義的8位一維數(shù)組進(jìn)行FFT運(yùn)算。圖13為MATLAB仿真一維FFT結(jié)果圖(陳浩宇,王思博,2021)。圖SEQ圖\*ARABIC13MATLAB仿真一維FFTVC++實(shí)現(xiàn)一維FFT在VC++中設(shè)計(jì)程序用基2算法來(lái)實(shí)現(xiàn)8位數(shù)的一維FFT,圖14為VC++實(shí)現(xiàn)一維FFT的結(jié)果圖,其中能看得結(jié)果是按照正負(fù)區(qū)分輸出的。雖然本研究受到了何其飛教授工作的啟發(fā),但本文也在多個(gè)環(huán)節(jié)中融入了自己的創(chuàng)新點(diǎn),在研究設(shè)計(jì)階段采取了更為靈活多樣的數(shù)據(jù)收集方式;在數(shù)據(jù)分析過(guò)程中探索了不同變量之間的復(fù)雜關(guān)系,旨在使研究不僅具有理論價(jià)值,也具備一定的實(shí)踐指導(dǎo)意義。通過(guò)圖13和圖14之間的對(duì)比發(fā)現(xiàn)FFT的結(jié)果一致。VC++中程序設(shè)計(jì)正確(林思哲,楊俊杰,2021)。 圖SEQ圖\*ARABIC14VC++一維FFT二維FFT的實(shí)現(xiàn)MATLAB實(shí)現(xiàn)二維FFT首先定義一個(gè)6*8的數(shù)組然后通過(guò)補(bǔ)“0”法將數(shù)組填充為8*8的數(shù)組,并在MATLAB程序中調(diào)用FFT2函數(shù)即可實(shí)現(xiàn)二維數(shù)組的FFT。這種拓展也為本文提供了新的研究視角與啟發(fā),有助于推動(dòng)該領(lǐng)域理論的持續(xù)進(jìn)步。本研究同樣強(qiáng)調(diào)理論與實(shí)踐的結(jié)合,通過(guò)解決實(shí)際問(wèn)題驗(yàn)證了理論的可行性與實(shí)用性,為相關(guān)領(lǐng)域?qū)嵺`提供了堅(jiān)實(shí)的理論支撐。圖15為MATLAB二維FFT的仿真結(jié)構(gòu)圖(王家偉,邱慧敏,2021):圖SEQ圖\*ARABIC15MATLAB仿真二維FFTVC++實(shí)現(xiàn)二維FFT設(shè)計(jì)循環(huán)程序?qū)?shù)組存入程序中并進(jìn)行二維FFT運(yùn)算,圖16為二維FFT的運(yùn)算結(jié)果。將圖15和圖16進(jìn)行對(duì)比,這在一定層面上傳遞了其結(jié)果一致。在此基礎(chǔ)上,本文結(jié)合研究主旨,精心規(guī)劃了一套科學(xué)的研究設(shè)計(jì),包括數(shù)據(jù)收集方式、樣本選取原則及分析架構(gòu)。程序中還編寫(xiě)了時(shí)間函數(shù)通過(guò)結(jié)果中的時(shí)間顯示可以看出FFT的運(yùn)算速度也是特別快的。圖SEQ圖\*ARABIC16VC++仿真二維FFT對(duì)圖像進(jìn)行二維FFT處理MATLAB對(duì)圖像進(jìn)行FFT處理自定義一幅128*64的灰度圖再通過(guò)rgb2gray函數(shù)導(dǎo)出圖片的灰度值,通過(guò)FFT2函數(shù)對(duì)像素值進(jìn)行FFT運(yùn)算,這在某種程度上確認(rèn)了最后將圖片顯示出來(lái),但是為了更好的顯示圖片,需要通過(guò)對(duì)數(shù)變換來(lái)增強(qiáng)頻譜,也就是調(diào)用fftshift函數(shù)(李晨曦,胡曉波,2021)。圖17為原灰度圖,圖18為FFT處理后的圖像。本文在研究方法上的革新體現(xiàn)在對(duì)過(guò)去工作成果的有效整合,以此來(lái)推動(dòng)對(duì)這個(gè)主題的深刻理解。圖19為MATLAB進(jìn)行FFT運(yùn)算后存入FFT_GRA的值。圖SEQ圖\*ARABIC17灰度圖圖SEQ圖\*ARABIC18MATLABFFT處理結(jié)果圖圖SEQ圖\*ARABIC19FFT_GRAVC++對(duì)圖像進(jìn)行FFT處理將MATLAB中導(dǎo)出的圖像像素值存入文件garydata.txt中,再將像素值導(dǎo)入C語(yǔ)言程序中,并編寫(xiě)程序進(jìn)行二維FFT運(yùn)算,將結(jié)果存入相應(yīng)文件中,為了對(duì)比方便,再將VC++運(yùn)算后的結(jié)果導(dǎo)入MATLAB中進(jìn)行圖像顯示,圖20為VC++仿真后的結(jié)果MY_RESULT,不僅對(duì)既有的理論展開(kāi)了更為深入透徹的剖析,還在此根基上開(kāi)拓出全新的研究視角與分析架構(gòu)。圖21為運(yùn)算后的結(jié)果顯示成的圖像。對(duì)比FFT_GRA與MY_RESULT中的值,再對(duì)比圖19與圖21,可以得出MATLAB和VC++對(duì)圖像進(jìn)行二維FFT的結(jié)果一致(趙和,范佳慧,2021)圖SEQ圖\*ARABIC20VC++處理結(jié)果圖圖SEQ圖\*ARABIC21MY_RESULTSTM32實(shí)現(xiàn)FFT建立LCD顯示工程,再將garydata.txt中的像素值寫(xiě)入工程中,圖22為原灰度圖顯示結(jié)果。這從一個(gè)側(cè)面說(shuō)明了由于圖像進(jìn)行FFT運(yùn)算后的像素值會(huì)出現(xiàn)很多位的小數(shù),所以在MATLAB中通過(guò)自定義函數(shù)將小數(shù)放大并通過(guò)unit8函數(shù)轉(zhuǎn)換數(shù)據(jù)類(lèi)型,再將其寫(xiě)入工程中顯示,圖23為FFT處理后的圖片顯示結(jié)果圖。在信息流程的設(shè)計(jì)層面,本文引用了經(jīng)典的信息處理模型,保證信息從搜集、傳送至分析的每個(gè)階段都能高效且無(wú)誤地運(yùn)作。通過(guò)與原圖像的對(duì)比可以看出,STM32微控制器可以通過(guò)LCD成功的將原圖像顯示出來(lái),通過(guò)放大函數(shù)的數(shù)據(jù)變換,F(xiàn)FT之后的圖像也可以進(jìn)行顯示。最后也可以通過(guò)導(dǎo)入C語(yǔ)言程序?qū)崿F(xiàn)圖像的二維FFT并顯示出來(lái)。本研究著重突出理論與實(shí)踐的緊密融合,努力把抽象的理論應(yīng)用到具體的實(shí)踐問(wèn)題解決過(guò)程中,以此驗(yàn)證理論的有效性和實(shí)用價(jià)值。圖SEQ圖\*ARABIC22灰度圖LCD顯示結(jié)果圖SEQ圖\*ARABIC23FFT結(jié)果LCD顯示

課題總結(jié)本次設(shè)計(jì)實(shí)現(xiàn)了VC++和MATLAB分別實(shí)現(xiàn)一維二維FFT以及對(duì)灰度圖進(jìn)行FFT處理,并實(shí)現(xiàn)了STM32上LCD結(jié)果顯示,本次設(shè)計(jì)理論性偏強(qiáng),需要查閱大量文獻(xiàn)資料,因?yàn)樵谥暗恼n程中學(xué)過(guò)數(shù)字信號(hào)處理,這在一定層面上揭示所以對(duì)于FFT還是有一定的了解。在程序?qū)崿F(xiàn)過(guò)程中,由于C語(yǔ)言實(shí)現(xiàn)碼位倒置和蝶形運(yùn)算的算法比較復(fù)雜,也是參考了很多書(shū)籍論壇最終編寫(xiě)出來(lái)(何博文,張夢(mèng)婷,2021)。MATLAB實(shí)現(xiàn)FFT就簡(jiǎn)單很多,因?yàn)檐浖詭FT函數(shù),所以MATLAB實(shí)現(xiàn)FFT的程序就很簡(jiǎn)單且結(jié)果更為準(zhǔn)確。最后在實(shí)現(xiàn)顯示模塊,選擇了經(jīng)常使用的STM32F103ZET6參考了之前做過(guò)的LCD顯示實(shí)驗(yàn)庫(kù)函數(shù)版,唯一復(fù)雜的是128*64的圖片像素值數(shù)據(jù)量過(guò)大,在導(dǎo)入時(shí)可能會(huì)出現(xiàn)問(wèn)題。在設(shè)計(jì)過(guò)程中也遇到過(guò)一些問(wèn)題,比如在進(jìn)行VC++編程時(shí),變量太多很容易程序出bug,MATLAB程序設(shè)計(jì)時(shí)運(yùn)算結(jié)果數(shù)據(jù)的類(lèi)型不正確,這在一定角度上表達(dá)了在結(jié)果顯示時(shí)STLINK驅(qū)動(dòng)也出過(guò)問(wèn)題,數(shù)組的輸入循環(huán)嵌套出過(guò)錯(cuò),最后在不斷的試錯(cuò)以及導(dǎo)師的幫助下最終順利完成設(shè)計(jì)。

參考文獻(xiàn)馬翠梅.低復(fù)雜度混合基FFT研究與設(shè)計(jì)[D].北京理工大學(xué),2014.李天宇,張晨曦.快速傅里葉變換FFT及其應(yīng)用[J].光電工程,2022,31(S1):1-3.王欣怡,劉宇翔.低復(fù)雜度快速傅里葉變換的研究與實(shí)現(xiàn)[D].上海交通大學(xué),2023.陳雨澤,趙佳琪.快速傅里葉變換的兩種改進(jìn)算法[J].電力系統(tǒng)自動(dòng)化,2021,000(012):37.李飛,孫思琪.快速傅里葉變換中逆序數(shù)計(jì)算的一種快速算法[J].信息技術(shù)2021(8):164-165.周節(jié),黃亭和.快速傅里葉變換(FFT)在電子光學(xué)中的應(yīng)用[J].真空電子技術(shù),2022(06):51.楊浩然,高文博K.R.Rao,D.N.Kim,J.J.Hwang.快速傅里葉變換:算法與應(yīng)用[M].機(jī)械工業(yè)出版社,2013.劉辰,王樂(lè)婷.淺談FFT(快速傅里葉變換)算法及其應(yīng)用[J].科技展望,2015,2

溫馨提示

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

評(píng)論

0/150

提交評(píng)論