日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言写的fft程序,C语言编写FFT程序.pdf

發布時間:2023/12/9 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言写的fft程序,C语言编写FFT程序.pdf 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DSP 課程作業

用 C 語言編寫 FFT 程序

1,快速傅里葉變換 FFT 簡介

快速傅氏變換 (FFT),是離散傅氏變換的快速算法,它是根據離散傅氏變換的奇、

偶、虛、實等特性,對離散傅立葉變換的算法進行改進獲得的。它對傅氏變換的理論并

沒有新的發現,但是對于在計算機系統或者說數字系統中應用離散傅立葉變換,可以說

是進了一大步。

我們假設 x (n)為 N 項的復數序列,由DFT 變換,任一 X (m)的計算都需要 N 次復

數乘法和 N-1 次復數加法,而一次復數乘法等于四次實數乘法和兩次實數加法,一次復

數加法等于兩次實數加法,即使把一次復數乘法和一次復數加法定義成一次 “運算”(四

次實數乘法和四次實數加法),那么求出N 項復數序列的X (m),即N 點 DFT 變換大約就

需要 N^2 次運算。當 N 1024 點甚至更多的時候,需要 N2 1048576 次運算,在 FFT 中,

利用 WN 的周期性和對稱性,把一個 N 項序列 (設 N 2k,k 為正整數),分為兩個 N/2 項的

子序列,每個 N/2 點 DFT 變換需要 (N/2)2 次運算,再用 N 次運算把兩個 N/2 點的 DFT

變換組合成一個N 點的DFT 變換。這樣變換以后,總的運算次數就變成N+2(N/2)2 N+N2/2。

繼續上面的例子,N 1024 時,總的運算次數就變成了 525312 次,節省了大約 50%的運算

量。而如果我們將這種 “一分為二”的思想不斷進行下去,直到分成兩兩一組的DFT 運

算單元,那么 N 點的 DFT 變換就只需要 Nlog2N 次的運算,N 在 1024 點時,運算量僅有

10240 次,是先前的直接算法的 1%,點數越多,運算量的節約就越大,這就是 FFT 的優

越性。

2,FFT 算法的基本原理

FFT 算法的基本思想:利用 DFT 系數的特性,合并 DFT 運算中的某些項,吧長序列的

DFT—>短序列的DFT,從而減少其運算量。

FFT 算 法 分 類 : 時 間 抽 選 法 DIT: Decimation-In-Time ; 頻 率 抽 選 法 DIF :

Decimation-In-Frequency

按時間抽選的基-2FFT 算法

1、算法原理

設序列點數 N 2L,L 為整數。

若不滿足,則補零。N 為 2 的整數冪的 FFT 算法稱基-2FFT 算法。將序列 x (n)按 n

的奇偶分成兩組: x 2r x r N

? ? 1? ? r 0,1,..., ?1

2

x 2r?1 x r

? ? 2 ? ?

則 x (n)的DFT: N?1 nk N?1 nk N?1 nk

X k x n W x n W ? x n W

? ? ? ? ? N ? ? ? N ? ? ? N

n 0 n 0 n 0

N ?1 N ?1

2 2

2r?1k

2rk ? ?

x 2r W ? x 2r?1 W

? ? ? N ? ? ? N

r 0 r 0

總結

以上是生活随笔為你收集整理的c语言写的fft程序,C语言编写FFT程序.pdf的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。