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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

DSP 課程作業(yè)

用 C 語言編寫 FFT 程序

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

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

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

沒有新的發(fā)現(xiàn),但是對于在計(jì)算機(jī)系統(tǒng)或者說數(shù)字系統(tǒng)中應(yīng)用離散傅立葉變換,可以說

是進(jìn)了一大步。

我們假設(shè) x (n)為 N 項(xiàng)的復(fù)數(shù)序列,由DFT 變換,任一 X (m)的計(jì)算都需要 N 次復(fù)

數(shù)乘法和 N-1 次復(fù)數(shù)加法,而一次復(fù)數(shù)乘法等于四次實(shí)數(shù)乘法和兩次實(shí)數(shù)加法,一次復(fù)

數(shù)加法等于兩次實(shí)數(shù)加法,即使把一次復(fù)數(shù)乘法和一次復(fù)數(shù)加法定義成一次 “運(yùn)算”(四

次實(shí)數(shù)乘法和四次實(shí)數(shù)加法),那么求出N 項(xiàng)復(fù)數(shù)序列的X (m),即N 點(diǎn) DFT 變換大約就

需要 N^2 次運(yùn)算。當(dāng) N 1024 點(diǎn)甚至更多的時(shí)候,需要 N2 1048576 次運(yùn)算,在 FFT 中,

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

子序列,每個(gè) N/2 點(diǎn) DFT 變換需要 (N/2)2 次運(yùn)算,再用 N 次運(yùn)算把兩個(gè) N/2 點(diǎn)的 DFT

變換組合成一個(gè)N 點(diǎn)的DFT 變換。這樣變換以后,總的運(yùn)算次數(shù)就變成N+2(N/2)2 N+N2/2。

繼續(xù)上面的例子,N 1024 時(shí),總的運(yùn)算次數(shù)就變成了 525312 次,節(jié)省了大約 50%的運(yùn)算

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

算單元,那么 N 點(diǎn)的 DFT 變換就只需要 Nlog2N 次的運(yùn)算,N 在 1024 點(diǎn)時(shí),運(yùn)算量僅有

10240 次,是先前的直接算法的 1%,點(diǎn)數(shù)越多,運(yùn)算量的節(jié)約就越大,這就是 FFT 的優(yōu)

越性。

2,FFT 算法的基本原理

FFT 算法的基本思想:利用 DFT 系數(shù)的特性,合并 DFT 運(yùn)算中的某些項(xiàng),吧長序列的

DFT—>短序列的DFT,從而減少其運(yùn)算量。

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

Decimation-In-Frequency

按時(shí)間抽選的基-2FFT 算法

1、算法原理

設(shè)序列點(diǎn)數(shù) N 2L,L 為整數(shù)。

若不滿足,則補(bǔ)零。N 為 2 的整數(shù)冪的 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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。