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

正文內(nèi)容

基于dsp數(shù)字信號處理器的fft實現(xiàn)設(shè)計報告(已修改)

2024-11-28 15:33 本頁面
 

【正文】 DSP 課 程 設(shè) 計 姓名: 學(xué)號: 日期: 一、 實驗?zāi)康? 1. 加深對 DFT 算法原理和基本性質(zhì)的理解; 2. 熟悉 FFT 的算法原理和 FFT 子程序的算法流程和應(yīng)用; 3. 學(xué)習(xí)用 FFT 對連續(xù)信號和時域信號進行頻譜分析的方法; 4. 學(xué)習(xí) DSP 中 FFT 的設(shè)計和編程思想; 5. 學(xué)習(xí)使用 CCS 的波形觀察器觀察波形和頻譜情況; 二、實驗內(nèi)容 用 DSP 匯編語言及 C 語言進行編程,實現(xiàn) FFT 運算、對輸入信號進行頻譜分析。 三、實驗原理 快速傅里葉變換 FFT 旋轉(zhuǎn)因子 WN 有如下的特性。 對稱性: WNk+N/2=WNk ( 2) 周期性 : WNn(Nk)=WNk(Nn)=WNnk ( 3) 利用這些特性,既可以使 DFT 中有些項合并,減少了乘法積項,又可以將長序列的 DFT 分解成幾個短序列的 DFT。 FFT 就是利用了旋轉(zhuǎn)因子的對稱性和周期性來減少運算量的。 FFT 的算法是將長序列的 DFT 分解成短序列的 DFT。例如: N 為偶數(shù)時,先將 N 點的 DFT 分解為兩個 N/2 點的 DFT,使復(fù)數(shù)乘法減少一半:再將每個 N/2 點的 DFT 分解成 N/4 點的 DFT,使復(fù)數(shù)乘又減少一半,繼續(xù)進行分解可以大大減少計算量。最小變換的點數(shù)稱為基數(shù),對于基數(shù)為 2 的 FFT 算法,它的最小變換是 2 點 DFT。 一般而言, FFT 算法分為按時間抽取的 FFT( DIT FFT) 和按頻率抽取的 FFT( DIF FFT) 兩大類。 DIF FFT 算法是在時域內(nèi)將每一級輸入序列依次按奇/偶分成 2 個短序列進行計算。而 DIF FFT 算法是在頻域內(nèi)將每一級輸入序列依次奇/偶分成 2 個短序列進行計算。兩者的區(qū)別是旋轉(zhuǎn)因子出現(xiàn)的位置不同,得算法是一樣的。在 DIF FFT 算法中,旋轉(zhuǎn)因子 WN出現(xiàn)在輸入端,而在 DIF FFT 算法中它出現(xiàn)在輸入端。 假定序列 x(n)的點數(shù) N 是 2 的冪,按照 DIF FFT 算法可將其分為偶序列和奇序列。 偶序列 : x(2r)=x1(r) 奇序列 : x(2r+1)=x2(r) 其中: r=0,1,2,?,N/2 1,則 x(n)的 DFT 表示為 式中, X1 (k)和 X2(k)分別為 X1(r)和 X2(r)的 N/2 的 DFT。 由于對稱性, WNk+N/2=WNk。 因此, N 點 DFT 可分為兩部分: 前半部分: x(k)=x1(k)+WkNx2(k) ( 4) 后半部分 : x(N/2+k)=x1(k)WkNx2(k) k=0,1,?,N/2 1 ( 5) 從式 ( 4) 和式 ( 5) 可以看出,只要求出 0~N/21 區(qū)間 x1(k)和x2(k)的值,就可求出 0~N1 區(qū)間 x(k)的 N 點值。 以同樣的方式進行抽取,可以求得 N/4 點的 DFT,重復(fù)抽取過程,就可以使 N 點的 DFT 用上組 2 點的 DFT 來計算,這樣就可以大減少運算量。 基 2 DIF FFT 的蝶形運算如圖 所示。設(shè)蝶形輸入為 x1(k)和? ? ? ? ? ? ? ?1 1 10 0 0N N Nnk nk nkN N Nn n nX k x n W x n W x n W? ? ?? ? ?? ? ?? ? ?為 偶 數(shù)n為 奇 數(shù) ? ? ? ? ? ?/ 2 1 / 2 1 212020 2 1NN rkrkNNrrx r W x r W?? ???? ? ???? ? ? ? ? ? ? ?/ 2 1 / 2 12212 rk rkkN N Nx r W W x r W?? ? ? ? ?/ 2 1 / 2 11 / 2 2 / 2rk k rkN N Nx r W W x r W? ? ? ?12 kNX k W X k, 0 , 1 , ... / 2 1k N??x2(k),輸出為 x(k)和 x(N/2+K),則有 x(k)=x1(k)+WkNx2(k) ( 6) x(N/2+k)=x1(k)WkNx2(k) ( 7) 在基數(shù)為 2 的 FFT 中,設(shè) N=2M,共有 M 級運算,每級有 N/2 個 2點 FFT 蝶形運算,因此, N 點 FFT 總共有 MN/2 個 蝶形運算。 圖 基 2 DIF FFT的蝶形運算 例如:基數(shù)為 2 的 FFT,當(dāng) N=8 時,共需要 3 級, 12 個基 2 DIT FFT 的蝶形運算。其信號流程如圖 所示。 x(0) x(0) WN0 x(4) x(1) 1 WN0 x(2) x(2) 1 WN0 WN2 x(6) x(3) 1 1 WN0 x(1) x(4) 1 WN0 WN1 x(5) x(5) 1 1 WN0 WN2 x(3) x(6) 1 1 WN0 WN2 WN3 x(7) x(7) 1 1 1 圖 8 點基 2 DIF FFT 蝶形運算 從圖 (b)可以看出,輸入是經(jīng)過比特反轉(zhuǎn)的倒位序列,稱為位碼倒置,其排列順序為 x(0),x(4),x(2),x(6),x(1),x(5),x(3),x(7),CABA + BCA - BC輸 出 是 按 自 然 順 序 排 列 , 其 順 序 為x(0),x(1),x(2),x(3),x(4),x(5),x(6),x(7). 程序設(shè)計順序 串口設(shè)置 AD 設(shè)置 設(shè)置信號源類型、頻率幅值、和采樣點數(shù) 串口接收, AD 采樣 位碼倒置 FFT 運算 功率譜計算 串口發(fā)送轉(zhuǎn)換結(jié)果 觀看轉(zhuǎn)換結(jié)果,保存數(shù)據(jù) DSP 初始化 四、 FFT 算法的 DSP實現(xiàn)過程: DSP芯片的出現(xiàn)使 FFT的實現(xiàn)方法變得更為方便。由于大多數(shù) DSP芯片都具有在單指令周期內(nèi)完成乘法 — 累加操作,并且提供了專門的FFT 指令,使得 FFT 算法在 DSP 芯片實現(xiàn)的速度更快。 FFT 算法可以分為按時間抽取 FFT 和按頻率抽取 FFT 兩大類,輸入也有實數(shù)和復(fù)數(shù)之分,一般情況下,都假定輸入序列為復(fù)數(shù)。 (一) FFT 運算序列的存儲分配 FFT運算時間是衡量 DSP芯片性能的一個重要指標(biāo),因此提高 FFT的運算速度是非常重要的。在用 DSP 芯片實現(xiàn) FFT 算法時,應(yīng)允許利用 DSP 芯片所提供的各種軟、硬件資源。如何利用 DSP 芯片的有限資源,合理地安排好所使用的存儲空間是十分重要的。 (二 )FFT 運算的實現(xiàn) 用 TMS320C54x 的匯編程序?qū)崿F(xiàn) FFT 算法主要分為四步: 輸入數(shù)據(jù)的比特反轉(zhuǎn)實際上就是將輸入數(shù)據(jù)進行碼位倒置, 以便在整個運算后的輸出序列是一個自然序列。在用匯編指令進行碼位倒置時,使用碼位倒置可以大大提高程序執(zhí)行速度和使用存儲器的效率。在這種尋址方式下, AR0 存放的整數(shù) N 是 FFT 點的一半,一個輔助寄存器指向一個數(shù)據(jù)存放的單元。當(dāng)使用位碼倒置尋址將 AR0 加到輔助寄存器時,地址將以位碼倒置的方式產(chǎn)生。 N 點復(fù)數(shù) FFT N點復(fù)數(shù) FFT算法的實現(xiàn)可分為三個功能塊,即第一級蝶形運算、第二級蝶形運算、第三級至 級蝶形運算。 對于任何一個 2 的整數(shù)冪,總可以通過 M 次分解最后成為 2 點的 DFT計算。通過 這樣的 M 次分解,可構(gòu)成 M(即 )級迭代計算,每級由 N/2 個蝶形運算組成。 用 FFT 計算想 x(n)的頻譜,即計算 X( k) = X(k)一般是由實部 (k)和虛部 (k)組成的復(fù)數(shù),即 X( k) = (k)+j (k) 因此,計算功率譜時只需將 FFT 變換好的數(shù)據(jù),按照實部實部(k)和虛部 (k)求它們的 平方和,然后對平方和進行開平方運算。但是考慮到編程的難度,對于求 FFT 變換后數(shù)據(jù)的最大值,不開平方也可以找到最大值,并對功率譜的結(jié)果沒有影響,所以在實際的 DSP編程中省去了開方運算。 FFT 結(jié)果 (三 )匯編語言程序 程序主體由 rffttask、 bitrev、 fft 和 power 四個子程序組成。 rffttask:主調(diào)用子程序,用來調(diào)用其他子程序,實現(xiàn)統(tǒng)一的接口。 bitrev:位碼倒置子程序,用來實現(xiàn)輸入數(shù)據(jù)的比特反轉(zhuǎn)。 fft: FFT 算法子程序,用來完成 N 點 FFT 運算。在運算過程中,為避免運 算結(jié)果的溢出,對每個蝶形的運算結(jié)果右移一位。 fft 子程序分為三個功能塊:第一級蝶形運算、第二級蝶形運算、第三級至至級蝶形運算。 (四)正弦系數(shù)表和余弦系數(shù)表: 正弦系數(shù)表和余弦系數(shù)表可以由數(shù)據(jù)文件 給出,主程序通過 .copy 匯編命令將正弦和余弦系數(shù)表與程序代碼匯編在一起。 在本例中,數(shù)據(jù)文件 給出 1024 復(fù)數(shù)點 FFT 的正弦、余弦系數(shù)各 512 個。利用此系數(shù)表可完成 8~1024 點 FFT 的運算。 (五) FFT 算法的模擬信號輸入: FFT算法的模擬信號輸入可 以采用 C語言編程來生成一個文本文件 sindata,然后在 rffttask 匯編程序中,通過 .copy 匯編命令將生成的數(shù)據(jù)文件復(fù)制到數(shù)據(jù)存儲器中,作為 FFT 算法的輸入數(shù)據(jù)參與
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1