一·實驗目的:
1、 加深對快速傅利葉變換的理解。
2、 掌握fft 演算法及其程式的編寫。
3、 掌握演算法效能評測的方法。
二·實驗原理
略三·實驗內容
1、 編制自己的fft 演算法。
演算法參見附件的.m檔案
2、 選取實驗1 中的典型訊號序列驗證演算法的有效性
:三角波序列
將8點三角波序列使用自己的fft演算法與系統的fft演算法分別變換後得到下圖:
其耗時如下:
自編fft演算法耗時:
t1 =
0.0025
系統fft演算法耗時:
t2 =
2.3650e-005
可以看出系統fft比自己的快得多
:反三角波序列
將8點反三角波序列使用自己的fft演算法與系統的fft演算法分別變換後得到下圖:
其耗時如下:
自編fft演算法耗時:
t1 =
0.0031
系統fft演算法耗時:
t2 =
5.5332e-005
可以看出系統fft比自己的快得多
:選取乙個較長的序列如下:
n=4096;
x=1:n;
for n=1:4
x(n)=n;
endfor n=5:n
x(n)=n;
end將以上序列使用自己的fft演算法與系統的fft演算法分別變換後得到下圖:
其耗時如下:
自編fft演算法耗時:
t1 =
0.0832
系統fft演算法耗時:
t2 =
1.4591e-004
可以看出系統fft比自己的快得多
如果使點數繼續增加則可以發現系統的fft演算法優勢更為明顯
3、把自己的fft 演算法與實驗1 中自己的dft 演算法的效能做出比較。
:三角波序列
將8點三角波序列使用自己的fft演算法與自己的dft演算法分別變換後得到下圖:
耗時如下:
自編fft演算法耗時:
t1 =
2.6372e-004
自編dft演算法耗時:
t2 =
9.5938e-005
可以看出當點數不多時,fft演算法的優勢不明顯,甚至比dft要稍慢,下面看乙個128點序列的情形:
序列為:
n=128;
x=1:n;
for n=1:4
x(n)=n;
endfor n=5:n
x(n)=n;
end將上面128點序列使用自己的fft演算法與自己的dft演算法分別變換後得到下圖:
耗時如下:
自編fft演算法耗時:
t1 =
0.0037
自編dft演算法耗時:
t2 =
0.0130
可以看出fft演算法優勢加大,若將n改為4096,得到下圖:
耗時如下:
自編fft演算法耗時:
t1 =
0.0879
自編dft演算法耗時:
t2 =
20.2452
看出當點數足夠多時fft效率遠遠高於dft演算法。
4·總結
自己編寫的按時間抽取的基2的fft演算法,在n是2的整數次冪時複雜度為nlogn的量級,之所以能夠減少運算量,是充分利用了w因子的週期性與對稱性,將n按奇偶來分組,每次只需要將n點dft分成兩個n/2點的dft,從而降低運算量,提高運算速度。
DSP第二次實驗報告
dsp技術與應用實驗 報實驗四 正弦訊號發生器 一 實驗目的 1.掌握利用dsp產生正弦訊號的原理 2.熟悉子程式呼叫的程式結構以及堆疊的使用 3.掌握ccs的圖形輸出操作 二 實驗裝置 1.整合開發環境code poser studio 簡稱ccs 2.實驗 sin.s54 和lab.gel 三 ...
第二次上機報告
實驗報告 計算機類 課程名稱 資料庫原理及應用 課程 6003239 學生所在學院 機械工程與自動化 年級 專業 班 2012級機電 4班 學生姓名杜海波 學號 312012 實驗總成績 任課教師 張琬茂 開課學院 機械工程與自動化 實驗中心名稱 西華大學實驗報告 計算機類 開課學院及實驗室 機械工...
數學建模第二次實驗報告
第二次作業 要求 第二次作業主要是考察學生對matlab基礎知識掌握情況,尤其是迴圈語句,每名同學都有八個小題,根據具體情況給出分值。1 用起泡法對10個數由小到大排序,即將相鄰兩個數比較,將小的調到前頭。2 有乙個4 5矩陣,程式設計求出其最大值及其所處位置。3 程式設計求。4 一球從100公尺高...