最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

DSP操作教程 4-7 快速傅立葉變換(FFT)算法(CCS顯示)

2023-09-20 11:06 作者:創(chuàng)龍教儀  | 我要投稿


一、實驗?zāi)康?/h1>

了解FFT的作用,掌握FFT 算法的算法原理、計算量和算法特點,實現(xiàn)FFT算法并通過CCS圖形窗口查看結(jié)果。

官方網(wǎng)站:www.tronlongtech.com

二、實驗原理

1、傅里葉變換

傅里葉變換可以將一個信號從時域變換到頻域。時域信號在經(jīng)過傅立葉變換的分解之后,變?yōu)榱瞬煌也ㄐ盘柕寞B加,我們再去分析這些正弦波的頻率,可以將一個信號變換到頻域。有些信號在時域上是很難看出什么特征的,但是如果變換到頻域之后,就很容易看出特征了。這就是很多信號分析采用FFT變換的原因。

2、離散傅里葉變換

離散傅里葉變換作為信號處理中最基本和最常用的運算,在信號處理領(lǐng)域占有基礎(chǔ)性的地位,如果直接按照離散傅里葉變換的公式進行計算,求出N點X(k)需要N^2次復(fù)數(shù)運算、N(N-1)次復(fù)數(shù)加法,當(dāng)N很大時,運算量是非常大的,這對于實時處理是無法接受的。

3、FFT算法

傅里葉快速算法的提出,使傅里葉變換成為一種真正實用的算法。根據(jù)傅立葉變換的對稱性和周期性,我們可以將DFT運算中有些項合并。 在計算機上進行的DFT,使用的輸入值是時域的信號值,輸入采樣點的數(shù)量決定了轉(zhuǎn)換的計算規(guī)模。變換后的頻譜輸出包含同樣數(shù)量的采樣點,但是其中有一半的值是冗余的,通常不會顯示在頻譜中,所以真正有用的信息是N/2+1個點。FFT算法的原理是通過許多小的更加容易進行的變換去實現(xiàn)大規(guī)模的變換,降低了運算要求,提高了與運算速度。FFT不是DFT的近似運算,它們完全是等效的,F(xiàn)FT的過程大大簡化了在計算機中進行DFT的過程。

4、程序流程

程序流程設(shè)計中首先產(chǎn)生測試信號,接著確定FFT基和旋轉(zhuǎn)因子,然后進行FFT和FFT逆變換運算,最后輸出FFT結(jié)果

5、數(shù)字信號處理庫

本實驗中的FFT算法是基于TI提供的數(shù)字信號處理庫完成的。 DSPLIB 包含優(yōu)化的、C語言可調(diào)用的通用信號處理例程,用于計算密集型實時應(yīng)用程序。 調(diào)用這些例程的運行速度比直接用C語言編寫的等效代碼快得多,可以縮短應(yīng)用程序開發(fā)時間。實驗中使用的是?dsplib_c674x_3_4_0_0?。

6、dsplib_c674x_3_4_0_0

在CCS5.5 的安裝路徑安裝DSPLIB后,會有相應(yīng)的文件夾出現(xiàn),包含組件庫、頭文件、測試示例和源碼等。

7、函數(shù)源碼

FFT運算函數(shù)

程序使用DSPLIB 的庫來進行FFT運算,調(diào)用的程序源碼和使用說明可以安裝DSPLIB后 查看。

調(diào)用的FFT函數(shù)中:

第一個參數(shù)是樣本中FFT 的長度;

第二個參數(shù)是指向數(shù)據(jù)輸入的指針;

第三個參數(shù)是指向復(fù)雜旋轉(zhuǎn)因子的指針;

第四個參數(shù)是指向復(fù)雜輸出數(shù)據(jù)的指針;

第五個參數(shù)是指向包含64 個條目的位反轉(zhuǎn)表的指針。如果樣本的FFT長度可以表示為 4 的冪;

第六個參數(shù)是4,否則 第六個參數(shù)是 2 ;

第五個參數(shù)是從主FFT開始的樣本中的子 FFT偏移索引 。;

第六個參數(shù)是樣本中主FFT的大小。

FFT逆變換函數(shù)

程序使用DSPLIB 的庫來進行FFT逆變換,調(diào)用的程序源碼和使用說明可以安裝DSPLIB后查看。

調(diào)用的IFFT函數(shù)中:

第一個參數(shù)是樣本中FFT 的長度;

第二個參數(shù)是指向數(shù)據(jù)輸入的指針;

第三個參數(shù)是指向復(fù)雜旋轉(zhuǎn)因子的指針;

第四個參數(shù)是指向復(fù)雜輸出數(shù)據(jù)的指針;

第五個參數(shù)是指向包含64 個條目的位反轉(zhuǎn)表的指針 ;

如果樣本的FFT長度可以表示為 4 的冪,第六個參數(shù)是4,否則第六個參數(shù)是2 ;

第七個參數(shù)是從主FFT開始的復(fù)雜樣本中的子FFT偏移索引 ;

第八個參數(shù)是樣本中主FFT的大小。

8、二進制位翻轉(zhuǎn)

FFT和FFT 逆變換函數(shù)中的第五個參數(shù)brev是指向包含64個表項的位反轉(zhuǎn)表的指針,因此程序中需要提供64個表項,程序中的位反向表是計算出來的,可以通過代碼提前轉(zhuǎn)換的。 采用位反轉(zhuǎn)的原因是因為FFT算法的蝶形內(nèi)部兩點交叉使數(shù)據(jù)以反轉(zhuǎn)的方式輸出而不是數(shù)字反轉(zhuǎn)順序。

二進制位翻轉(zhuǎn)表的原理

首先確認(rèn)二進制數(shù)的位數(shù),64個數(shù)只需要有6位的二進制位數(shù);

接著將二進制數(shù)分成兩部分,前五位一部分,最后一位一部分;

最后進行二進制翻轉(zhuǎn),把最后一位放到最高位,剩下的五位進行翻轉(zhuǎn)依次放入。

數(shù)組內(nèi)存放的依次是0~63的二進制翻轉(zhuǎn)結(jié)果,我們可以來看一個例子,

(點擊鼠標(biāo))以數(shù)字5為例,(點擊鼠標(biāo))轉(zhuǎn)換為二進制數(shù)是000101

(點擊鼠標(biāo))接著進行二進制翻轉(zhuǎn),將“00010”看為一個部分,“1”看為一個部分,那么將“1”放到第一位,然后將后面的數(shù)據(jù)翻轉(zhuǎn)過來進行放置即可

(點擊鼠標(biāo))最后進行十六進制轉(zhuǎn)換得到0x28,所以在數(shù)組的第6個數(shù)字為0x28。

三、操作現(xiàn)象

導(dǎo)入工程,選擇Demo文件夾下的對應(yīng)工程

編譯工程,生成可執(zhí)行文件

將CCS連接實驗箱并加載程序

程序加載完成后點擊運行程序

運行程序后,程序執(zhí)行完成后會在斷點處停下。

點擊"Tools->Graph->Single Time"選擇單時域信號圖,在彈出的界面設(shè)置相關(guān)參數(shù),可查看DSP計算的FFT結(jié)果。

點擊"Tools->Graph->FFT Magnitude",在彈出的界面設(shè)置相關(guān)參數(shù),可查看CCS計算的FFT結(jié)果。

對比后,可發(fā)現(xiàn)CCS和DSP計算的FFT結(jié)果相同,

實驗結(jié)束后,點擊紅色按鈕退出CCS與實驗箱的連接,最后實驗箱斷電即可。


DSP操作教程 4-7 快速傅立葉變換(FFT)算法(CCS顯示)的評論 (共 條)

分享到微博請遵守國家法律
共和县| 福安市| 墨竹工卡县| 金阳县| 新巴尔虎左旗| 台湾省| 和林格尔县| 乐平市| 秦皇岛市| 互助| 崇仁县| 新田县| 金湖县| 咸宁市| 孟津县| 石林| 化州市| 突泉县| 西畴县| 中牟县| 加查县| 治多县| 称多县| 华亭县| 松溪县| 南部县| 新营市| 长汀县| 恩施市| 安义县| 南开区| 常宁市| 礼泉县| 称多县| 开远市| 龙游县| 岢岚县| 横峰县| 伽师县| 汉沽区| 义马市|