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

正文內(nèi)容

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

2024-11-28 15:33 本頁面
 

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