freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)字頻譜分析儀設(shè)計本科畢業(yè)論-資料下載頁

2025-06-06 01:15本頁面
  

【正文】 17 3. 液晶顯示,由于 LCD(128*64)液晶顯示屏有 64行,且每行包括 128 列,由于RAM占有 64 16 個 字節(jié)的空間,即每 8列對應(yīng)一個字節(jié) ,每列共可以排下 8 個字節(jié) ,顯示圖形恰到好處。如果更改顯示內(nèi)容時時,要先定義好垂直地址和水平地址,并根據(jù)擴充指令寫入兩個字節(jié)數(shù)據(jù),再連續(xù)寫入兩字節(jié)數(shù)據(jù)給繪圖 RAM 即可實現(xiàn)圖形在屏幕上的顯示。圖形顯示流程圖如下圖 46。 圖 46 圖形顯示流程圖 定義一個指針變量作為參數(shù)來指向當經(jīng)過 FFT 運算后對應(yīng)的幅頻值數(shù)組。在整屏顯示的函數(shù)中,將顯示屏作為上下屏分別把 X軸以字節(jié)為單位,而 Y軸以位為單位。上屏和下屏的 X 軸起始地址分別為 0X80H 和 0X88H, write_cmd 作為寫指令函數(shù), Y軸地址根據(jù)程序的改變來進行,橫軸地址在地址計數(shù)器作用下自動加 1,當?shù)刂酚?00H到 0FH 時自動一個循環(huán),又從 00H 開始,屏幕顯示圖形的子程序如圖 47. 開始 初始化 擴充指令清屏 圖形數(shù)組指針賦值 顯示圖形 結(jié)束 東華理工大學(xué)畢業(yè)設(shè)計 基于 FFT 算法 的硬件與軟件設(shè)計的實現(xiàn) 18 圖 47 顯示圖形子程序流程圖 基于 FFT 算法在在單片機的 LCD(128*64)上顯示的優(yōu)勢在于它的設(shè)計電路比較簡單,容易操作,而且對于數(shù)據(jù)存儲具有靈活。由于 LCD 接口電路簡單,采用 LCD12864顯示器經(jīng) FFT算法后來顯示頻譜圖是非常方便且實用的。 FFT 算法的實現(xiàn)方法 在運算過程中根據(jù)數(shù)據(jù)位數(shù)的形式不同,快速傅里葉變換( FFT)主要包括浮點型 FFT、定點型 FFT 及塊浮點 FFT。他們不僅對系統(tǒng)要求不同,而且所使用的范圍也不一樣。 開始 功能設(shè)定 RE=1(0X34)關(guān)顯示 功能設(shè)定 RE=1(0X36)開顯示 分為上、下半屏( i=0/1) Y軸賦地址初值 上半屏 設(shè)置數(shù)組指針 顯示波形 結(jié)束 X軸地址初值賦 0X80 X軸地址初值賦 (0X88) Y N 東華理工大學(xué)畢業(yè)設(shè)計 基于 FFT 算法 的硬件與軟件設(shè)計的實現(xiàn) 19 浮點 FFT所使用的是浮點型數(shù)據(jù),浮點型 數(shù)據(jù)包含小數(shù)和浮點因子,對于浮點 FFT運算時要寫成小數(shù)與浮點因子的形式,在計算的結(jié)果中要得到所有的浮點型數(shù)據(jù)結(jié)果,而定點型數(shù)據(jù)的表示形式則可在輸出的結(jié)果中獲到。在運算 FFT 的計算中,浮點型數(shù)據(jù)不會溢出。而由于定點 FFT 的運算數(shù)據(jù)都為定點,則當每個定點數(shù)的截位規(guī)則不合適時就會導(dǎo)致出現(xiàn)溢出的現(xiàn)象,因此定點 FFT 的運算一定要對溢出進行控制。在定點與浮點之間的一種運算稱為塊浮點,它是根據(jù)輸入數(shù)據(jù)的大小,保證在計算之前進行控制使它不溢出,但是有時候還是需要溢出的控制。 浮點運算不會出現(xiàn)溢出,有較大的信號平均信噪比,但 由于要進行因子的運算造成電路復(fù)雜所以實現(xiàn)就要復(fù)雜一些。雖然定點運算是比較容易來實現(xiàn)的,但定點很數(shù)據(jù)很容易超出控制,所以很難阻止它不溢出,這樣就需要給出合適的截位規(guī)則,否則溢出嚴重的話會造成輸出結(jié)果有誤。塊浮點由于每次截位結(jié)束后都會產(chǎn)生一個過程來進行統(tǒng)計控制,使得延時更長,但好處在于保證不溢出的前提下又可以使電路和浮點運算更簡單。 一般根據(jù)具體的需求來選擇正確的 FFT 運算方式。一般地如果對精度要求很高并且需要同時解決單頻干擾,那么應(yīng)選用浮點型 FFT 運算,雖然對于數(shù)據(jù)位數(shù)很大的塊浮點和定點也可以解決這些問題,但在確定有效位數(shù)時非常棘手。如果對精度的要求不是很高的話且存儲資源比較窄時,則用定點 FFT 運算比較合理。如果對精度的要求不作要求且只需要頻域中少數(shù)幾個點來運算,那么此時塊浮點 FFT 運算是不錯的選擇,這樣可以忽略其他的點而確保這幾個點的信噪比。 FFT的實現(xiàn)方法如下: ( 1)實現(xiàn)蝶形計算的復(fù)數(shù)運算 蝶形運算是一種復(fù)數(shù)運算 , 那么在單片 機中如何實現(xiàn)復(fù)數(shù)運算呢 ? 首先把復(fù)數(shù)的實部、虛部存放在不同區(qū)域里 ,分別進行計算 ,當完成 FFT之后 , 再合并起來 . 假如 C= WNk=cos? jsin? 則式子kmm1mkmm1m)q()p()p( )q()p()p( NNWXXX WXXX ?? ????可變?yōu)?: X( p ) = X( p ) + C X( q) ( ) X( q ) = X( p ) C X( q) 則 Re[x( p )]= Re[x( p )]+ Re[x( q )] cos? +Im[x(q )] sin? =a Im[x( p )]= Im[x( p )]+ Im[x( q )] cos? Re[x(q )] sin? =b Re[x( p )]= Re[x( p )] Re[x( q )] cos? Im[x(q )] sin? =d Im[x( p )]= Im[x( p )] Im[x( q )] cos? +Re[x(q )] sin? =e 則有 東華理工大學(xué)畢業(yè)設(shè)計 基于 FFT 算法 的硬件與軟件設(shè)計的實現(xiàn) 20 X(p)=a+jb ( ) X(q)=d+je ( 2) FFT 運算 流程圖 蝶形運算對實現(xiàn) FFT 運算是至關(guān)重要的,也是它的核心部分。蝶形運算是分多級來進行的;每級的運是根據(jù)旋轉(zhuǎn)因子指數(shù)大小來進行的;如果指數(shù)大小相同時運算就可以從上到 下依次進行。例如 MN 2? 個點的 FFT 它表示有 M級的運算,假設(shè)從左往右依次的運算級數(shù)用 L來表示 (L=1, 2,…, M )。且在第 L 級的不同指數(shù)的旋轉(zhuǎn)因子個數(shù)為 12??LB ,如果按由上至下的順序用 J等于 0 到 B1來代替這些不同指數(shù)旋轉(zhuǎn)因子。即第 J個旋轉(zhuǎn)因子的指數(shù)為 JP LM??2 ,旋轉(zhuǎn)因子指數(shù)是從 P的第一個蝶的第一級節(jié)點標號為 k,而在該級中指數(shù)相同的蝶共有 LM?2 個,且每兩個 蝶相距 L2 ,那么對于旋轉(zhuǎn)因子指數(shù)是 P的最后一個蝶的第一節(jié)點標號 k應(yīng)為: JNJ LLLM ??????? 22)12( ,對于相同級中各蝶的兩個輸入節(jié)點相距 B點。如果按原位來計算蝶形運算,那么它可以表示成 式所示: )()()( )()()( 11 11 BkAWkABkA BkAWkAkA LPNLL LPNLL ???? ??? ?? ?? ( ) 從上面所說的運算可以知道,對 DITFFT 運算可以使用如下運算方法。這里先要將數(shù)據(jù)讀入,并根據(jù)它的長度來確定運算級數(shù) M,由此可得運算的總點數(shù) MN 2? 是多少 ,如果當它點數(shù)不夠時即補 0,接著對讀入數(shù)據(jù)進行倒序操作。然后從第 1級開始往后逐級來進行蝶形運算,運算級數(shù)為 M。假如進行到第 L級的運算時,我們要先算出第 L 級不同旋轉(zhuǎn)因子的個數(shù) 12??LB (這里 B 表示在 L 級中進行蝶形運算的兩個輸入數(shù)據(jù)間的間距 ),再依次讓 J 從 0 到 B1按序計算。而每個 J 所對應(yīng)的旋轉(zhuǎn)因子指數(shù)是 JP LM??2 ,如果旋轉(zhuǎn)因子指數(shù)相同的話,那么蝶即從上往下依次進行運算,對于每個蝶的第一節(jié)點標號 k都是從 J開始計算的,把 L2 作為步長,計算到 JN L??2 為止 。由于蝶形運算也有兩個輸出數(shù)據(jù),并且都需要用到本級所涉及的兩個輸入,因此只有在第二次輸出完成時才能將第一次輸出的數(shù)據(jù)存入到第二次的輸入數(shù)據(jù)地址中。所以利用三重循環(huán)程序即可實現(xiàn)數(shù)據(jù)的倒序運算。整個運算流程如圖 48所示。 東華理工大學(xué)畢業(yè)設(shè)計 基于 FFT 算法 的硬件與軟件設(shè)計的實現(xiàn) 21 圖 48 DITFFT 運算程序框圖 (3)序列倒序 將序列的輸入位序的高位與低位進行互相調(diào)換,即是倒序的輸入方法,它是為了確保運算輸出的 X(k)是按順序進行的。當輸入點數(shù)是 N,并用 M位二進制數(shù)來表示 MN 2?的 x(n)的順序數(shù),那么進行位序顛倒只要把順序數(shù)的二進制位倒置就可以,依據(jù)這一規(guī)律倒序數(shù)就很容易產(chǎn)生在硬件電路和程序語言中。但是在運算中如果直接倒置二進制的位數(shù)是不正確的,當用更高級語言來實現(xiàn)倒序時,務(wù)必要找到十進制規(guī)律來產(chǎn) 開始 讀入 x(n), N,M 輸入序列倒序 L=1, M B=2L1 J=0, B1 P=2MLJ PNWBAAT )k()k( ???PNWBAABA )k()k()k( ????TA ?)k( 輸出 K=J, N1, 2L 東華理工大學(xué)畢業(yè)設(shè)計 基于 FFT 算法 的硬件與軟件設(shè)計的實現(xiàn) 22 生倒序。所以用 I來代表十進制的順序數(shù),用 IB來代表相對應(yīng)的二進制數(shù)。用 J來代表 十進制的倒序數(shù),用 JB 來代表相對應(yīng)的二進制數(shù)。如果進行 IB的位倒置,那么將變成 JB,當 I加 1,就表示 IB 的最低位加 1 并且最低位加 1如果是 2時即要向高位進 1,也等于是 JB 最高位加 1 并且遇到 2 時要向低位進 1。 J 的變化會通過 JB 的改變而來,有兩種情況:當 JB 的最高位為 0 )2/( NJ? 時 ,那么直接通過加 1 )2/( NJJ ??就可以 得到下一個倒序值;當 JB 的最高位為 1 )2/( NJ? 時 ,先把最高位變成0 )2/( NJJ ?? ,接著在次高位加 1 )4/( NJJ ?? 。但在這個時候,還是要判斷 0、 1值,假如 是 0 )4/( NJ? 的時候 ,就可以直接加 1 )4/( NJJ ?? ,如果不是 0 )4/( NJ? 的時候就 要先把次高位變?yōu)?0 )4/( NJJ ?? ,接著判斷下一位。照此類推,直到完成最高位加1不為 2 時,且不再向右推進時結(jié)束。通過這種算法,就可以按照順序數(shù) I 的遞增順序依次求出每一個相對 應(yīng)的倒序數(shù) J。數(shù)據(jù)倒序的原址進行運算可以空留很多內(nèi)存,即如果 I ≠ J 就需要交換數(shù)據(jù),否則就不需要交換。另外,實現(xiàn)數(shù)據(jù)的倒序操作不僅可以用對 IJ的方式進行數(shù)據(jù)交換,而且還可以避免交換前面用過的數(shù)據(jù)。 圖 48中數(shù)據(jù)倒序的程序框圖如圖 49所示。 圖 49 數(shù)據(jù)倒序程序框圖 J=0 I=0, N1 IJ? K=N/2 ?K
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1