單變數離散傅利葉變換DFT原理及實現

2021-09-25 23:00:43 字數 2223 閱讀 1298

一、單變數離散傅利葉變換

離散傅利葉變換公式:

根據公式,單變數離散傅利葉變是換將一維陣列變換為傅利葉頻率。設定乙個大小為n的陣列,t為x軸上的變數,取值為[0,n-1],f(t)為t=x出的值,計算機處理時,t即為輸入陣列下標index,f(t)為index對應位置陣列中的值。

當μ=0時:

相當於整個輸入陣列直接求和。由於傅利葉變換計算涉及複數,可以將輸入陣列變換為複數形式,f(t)作為複數實部,虛部為0。根據尤拉公式:

在進行實際使用時,可將傅利葉變換為如下形式:

由於j為虛數,在實際計算過程中j=√-1是沒有代入的,只需要計算複數的實部和虛數實部即可。

傅利葉變換核心**:

public complex dft(complex c) 

complex result = new complex[n];

for (int i = 0; i < n; i++)

} return result;

}

**中,i相當於公式中的μ,j相當於t。

二、中心化

為了便於分析和操作需要將輸入陣列進行中心化,中心化公式:f』(t) = f(t)*(-1)t,即根據陣列下標奇偶數,將下標為奇數的數乘以-1,把整個陣列分為以0為中心的陣列序列。

中心化**:

public complex dftshift(complex c) 

return result;

}

三、傅利葉譜

傅利葉譜,即傅利葉變換後的頻譜圖,頻譜計算也就是計算複數模長。

複數模長計算公式:|c|=a2+b2

四、逆傅利葉變換

逆傅利葉變換公式:

傅利葉變換本質上就是把資料從時域/空間域變換到頻率域,而逆傅利葉變換就是把資料再從頻率域變換回時域/空間域。

逆傅利葉變換實現**:

public complex idft(complex c) 

complex result = new complex[n];

for (int i = 0; i < n; i++)

result[i] = new complex(result[i].getrealpart() / n, result[i].getimaginepart() / n);

} return result;

}

五、離散傅利葉變換實現**

public class dft 

complex result = new complex[n];

for (int i = 0; i < n; i++)

} return result;

} /**

* 逆離散傅利葉變換

* * @param c

* @return

*/public complex idft(complex c)

complex result = new complex[n];

for (int i = 0; i < n; i++)

result[i] = new complex(result[i].getrealpart() / n, result[i].getimaginepart() / n);

} return result; }

//中心化

public complex dftshift(complex c)

return result;

}}

測試**:

public static void main(string args) throws exception

} c = new dft().dftshift(c);//中心化

complex result = new dft().dft(c);

writer writer = new filewriter(out);

for(int i = 0; i < length; i++)

writer.close();

}

測試影象:

頻譜圖:

離散傅利葉變換DFT

dft是為適應計算機分析傅利葉變換規定的一種專門運算,本章是數字訊號處理課程的重點章節。3.7用dft進行頻譜分析 1.用dft對連續訊號進行譜分析 1 原理 2 頻率解析度與dft引數的選擇 頻率解析度是指所用的演算法能將訊號中兩個靠得很近的譜峰分開的能力。設是乙個帶限的連續時間訊號,最高頻率為f...

離散傅利葉變換 DFT

這種型別的訊號沿正負軸無窮方向伸展,並且不會出現週期性的重複.此類訊號的傅利葉變換稱為傅利葉變換.此類訊號的傅利葉變換稱為傅利葉級數.在負無窮到正無窮區間內,這類訊號僅在一些不連續的點處有定義,並且不會周期性地反覆出現.此類訊號的傅利葉變換稱為離散時間傅利葉變換.這種型別的訊號是按一定時間間隔從負無...

離散傅利葉變換DFT和離散余弦變換DCT

在文獻1的第四章中,式 4.2.5 和式 4.2.6 分別給出了 單變數的 一維離散傅利葉變換和反變換 f u 1 m x 0m 1 f x e j2 ux mu 0 1,2 m 1 f x u 0 m 1f u e j2 u x mx 0,1 2,m 1 有時候,前邊的係數1m 會發生變化,但其乘...