手動(dòng)實(shí)現(xiàn)離散傅里葉正變換與逆變換(程序+例子)
前言
實(shí)際野外采集到的信號(hào)都是有一定時(shí)間間隔的,因?yàn)楸疚闹饕P(guān)注于"離散傅里葉變換(DFT)"。另外,本文主要關(guān)注的是"如何使用"DFT這樣一個(gè)工具(公式的使用+程序編寫),并非介紹其背后的原理。最后,本文將自己編寫的程序與Matlab自帶的相關(guān)語(yǔ)句的結(jié)果做對(duì)比,驗(yàn)證方法與程序的正確性。
DFT相關(guān)公式及使用
我們假設(shè)原始時(shí)域信號(hào)為x(n),經(jīng)DFT后頻域信號(hào)為X(k),其中n是采樣點(diǎn)的序號(hào),k是對(duì)應(yīng)到頻率域中的頻率值,N是采樣點(diǎn)總數(shù)。傅里葉正變換公式為:
注意1:在等號(hào)右邊的最后一項(xiàng)
中,nk乘積是
的冪指數(shù)!
注意2:
是一個(gè)常數(shù)!其公式為:
公式1怎么用?先把它展開看看:
公式2:把公式1展開成多項(xiàng)來(lái)看
公式2看上去還是不夠直觀,我們?cè)侔阉镁仃嚤硎境桑?div id="u0z1t8os" class="image-package">
公式3:公式2的矩陣形式
是不是清晰多了呢?
已經(jīng)知道
是一個(gè)常數(shù)!
那公式3"等號(hào)右邊第一項(xiàng)"可進(jìn)一步簡(jiǎn)化:
公式4:對(duì)公式3中右邊第一項(xiàng)的簡(jiǎn)化
到此,DFT公式可變?yōu)椋?img class="math-inline" src="https://math.jianshu.com/math?formula=X%20%3D%20W_%7BN%7D%5E%7BE%7D%5C%20x" alt="X = W_{N}^{E}\ x" mathimg="1"> 這樣的矩陣相乘。
有了上面的公式的基礎(chǔ),我們可以手寫Matlab程序:
data = [2 3 8 9 12 4 8 10]; % 原始離散時(shí)域信號(hào)
N = length(data);
% DFT需要的相關(guān)矩陣:
WN = exp(-i*2*pi/N); % 常數(shù)
WN_nk = zeros(N)+WN; % WN_kn矩陣(初始)
xk = data'; % 時(shí)域信號(hào)振幅(列矩陣)
E = zeros(N); % 輔助的E(WN_kn的冪,單獨(dú)拿出來(lái)算)
%%% 傅里葉正變換即結(jié)果 %%%
for row = 0:N-1
for cow = 0:N-1
E(row+1,cow+1) = row*cow;
WN_nk(row+1,cow+1) = WN_nk(row+1,cow+1)^E(row+1,cow+1);
end
end
Xk = WN_nk * xk; % 頻域結(jié)果
fft(data); % Matlab自帶語(yǔ)句,兩者結(jié)果對(duì)比一樣
IDFT相關(guān)公式及使用
很DFT的公式非常相似,只不過(guò)多了負(fù)號(hào):
將公式轉(zhuǎn)換成矩陣,再寫出矩陣E和對(duì)應(yīng)的
即可。最后不要忘記除以總采樣點(diǎn)數(shù)N。
對(duì)應(yīng)的手寫Matlab程序?yàn)椋?/p>
% 繼DFT代碼后跟著寫
% IDFT需要的相關(guān)矩陣:
WN_nk_n = zeros(N)+WN; % WN_kn矩陣(初始)
E_n = zeros(N); % 輔助的E(WN_kn的冪,單獨(dú)拿出來(lái)算)
for row = 0:N-1
for cow = 0:N-1
E_n(row+1,cow+1) = -row*cow; % 注意負(fù)號(hào)
WN_nk_n(row+1,cow+1) = WN_nk_n(row+1,cow+1)^E_n(row+1,cow+1);
end
end
xk_n = real((WN_nk_n * Xk)/N)' % IDFT手寫結(jié)果
ifft(Xk) % Matlab自帶語(yǔ)句,上下倆結(jié)果對(duì)比一樣。
更多完整程序與相關(guān)實(shí)例程序參考:傅里葉變換程序及實(shí)例.
補(bǔ)充說(shuō)明:
頻率域的優(yōu)越性:時(shí)間域信號(hào)雖然可以反映原始信號(hào)不少的信息,但是這種圖像不易修改!因?yàn)榈厍蛭锢硪巴饨邮盏降男盘?hào),不論是有效信號(hào)還是特定噪聲,它們都各有自己所屬的頻帶寬度!也就是說(shuō)有效信號(hào)與噪聲它們?cè)?strong>頻率域是很好識(shí)別和區(qū)分開來(lái)的!雖然頻率信息也能少量反應(yīng)在時(shí)域圖像中(圖像的緊密或舒張程度),但是要想從時(shí)域圖像中將二者分離開來(lái)是非常非常困難的!這也體現(xiàn)出頻域的優(yōu)越性。不只是信號(hào)提取與消除,頻率域或者類頻率域(后面的小波域、τp域等)還能做很多更高級(jí)的操作,這些都是時(shí)域圖像所不能進(jìn)行的??偨Y(jié)之:時(shí)域信號(hào)好采集不好處理,頻域信號(hào)好處理但直接采集不了。
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
深入理解傅里葉變換Mar 12, 2017 這原本是我在知乎上對(duì)傅立葉變換、拉普拉斯變換、Z變換的聯(lián)系?為什么要進(jìn)...
一、傅立葉變換的由來(lái) 關(guān)于傅立葉變換,無(wú)論是書本還是在網(wǎng)上可以很容易找到關(guān)于傅立葉變換的描述,但是大都是些故弄玄虛...
本章涉及知識(shí)點(diǎn):1、多項(xiàng)式乘法的時(shí)間復(fù)雜度2、多項(xiàng)式的表示:系數(shù)3、多項(xiàng)式的表示:點(diǎn)值4、復(fù)數(shù)的表示5、單位復(fù)數(shù)根...
應(yīng)用:二維離散傅里葉變換是將圖像從空間域轉(zhuǎn)至頻域,在圖像增強(qiáng)、圖像去噪、圖像邊緣檢測(cè)、圖像特征提取、圖像壓縮等等應(yīng)...
《人類簡(jiǎn)史》、《未來(lái)簡(jiǎn)史》、《今日簡(jiǎn)史》的橫空出世,顛覆了我們對(duì)人類進(jìn)化的認(rèn)知,直面關(guān)于未來(lái)命運(yùn)的問(wèn)題與挑戰(zhàn)。人工...