理解離散傅利葉變換(四)
------複數形式離散傅利葉變換
複數形式的離散傅利葉變換非常巧妙地運用了複數的方法,使得傅利葉變換變換更加自然和簡潔,它並不是只是簡單地運用替換的方法來運用複數,而是完全從複數的角度來分析問題,這一點跟實數
dft是完全不一樣的。
一、
把正余弦函式表示成複數的形式
通過尤拉等式可以把正余弦函式表示成複數的形式:
cos( x ) = 1/2 e j(-x) + 1/2 ejx
sin( x ) = j (1/2 e j(-x) - 1/2 ejx)
從這個等式可以看出,如果把正余弦函式表示成複數後,它們變成了由正負頻率組成的正余弦波,相反地,乙個由正負頻率組成的正余弦波,可以通過複數的形式來表示。
我們知道,在實數傅利葉變換中,它的頻譜是
0 ~
π(0 ~ n/2)
,但無法表示-π
~ 0的頻譜,可以預見,如果把正余弦表示成複數形式,則能夠把負頻率包含進來。
二、
把變換前後的變數都看成複數的形式
複數形式傅利葉變換把原始訊號
x[n]
當成是乙個用複數來表示的訊號,其中實數部分表示原始訊號值,虛數部分為
0,變換結果
x[k]
也是個複數的形式,但這裡的虛數部分是有值的。在這裡要用複數的觀點來看原始訊號,是理解複數形式傅利葉變換的關鍵(如果有學過復變函式則可能更好理解,即把
x[n]
看成是乙個複數變數,然後象對待實數那樣對這個複數變數進行相同的變換)。
三、
對複數進行相關性演算法(正向傅利葉變換)
從實數傅利葉變換中可以知道,我們可以通過原始訊號乘以乙個正交函式形式的訊號,然後進行求總和,最後就能得到這個原始訊號所包含的正交函式訊號的分量。現在我們的原始訊號變成了複數,我們要得到的當然是複數的訊號分量,我們是不是可以把它乘以乙個複數形式的正交函式呢?答案是肯定的,正余弦函式都是正交函式,變成如下形式的複數後,仍舊還是正交函式(這個從正交函式的定義可以很容易得到證明):
cos x + j sin x, cos x – j sin x,……
這裡我們採用上面的第二個式子進行相關性求和,為什麼用第二個式子呢?,我們在後面會知道,正弦函式在虛數中變換後得到的是負的正弦函式,這裡我們再加上乙個負號,使得最後的得到的是正的正弦波,根據這個於是我們很容易就可以得到了複數形式的
dft正向變換等式:
這個式子很容易可以得到尤拉變換式子:
其實我們是為了表達上的方便才用到尤拉變換式,在解決問題時我們還是較多地用到正余弦表示式。
對於上面的等式,我們要清楚如下幾個方面(也是區別於實數
dft的地方): 1、
x[k]
、x[n]
都是複數,但
x[n]
的虛數部分都是由
0組成的,實數部分表示原始訊號; 2、
k的取值範圍是
0 ~ n-1 (
也可以表達成
0 ~ 2
π),其中
0 ~ n/2
(或0 ~
π)是正頻部分,
n/2 ~ n-1(π
~ 2π)
是負頻部分,由於正余弦函式的對稱性,所以我們把–π
~ 0表示成
π~ 2
π,這是出於計算上方便的考慮。 3、
其中的j是乙個不可分離的組成部分,就象乙個等式中的變數一樣,不能隨便去掉,去掉之後意義就完全不一樣了,但我們知道在實數dft中,j只是個符號而已,把j去掉,整個等式的意義不變; 4、
下圖是個連續訊號的頻譜,但離散頻譜也是與此類似的,所以不影響我們對問題的分析:
上面的頻譜圖把負頻率放到了左邊,是為了迎合我們的思維習慣,但在實際實現中我們一般是把它移到正的頻譜後面的。
從上圖可以看出,時域中的正余弦波(用來組成原始訊號的正余弦波)在複數dft的頻譜中被分成了正、負頻率的兩個組成部分,基於此等式中前面的比例係數是1/n(或1/
2π),而不是2/n,這是因為現在把頻譜延伸到了
2π,但把正負兩個頻率相加即又得到了2/n,又還原到了實數dft的形式,這個在後面的描述中可以更清楚地看到。由於複數dft生成的是乙個完整的頻譜,原始訊號中的每乙個點都是由正、負兩個頻率組合而成的,所以頻譜中每乙個點的頻寬是一樣的,都是1/n,相對實數dft,兩端頻寬比其它點的頻寬少了一半;
複數dft的頻譜特徵具有週期性:-n/2
~ 0與
n/2 ~ n-1
是一樣的,實域頻譜呈偶對稱性(表示余弦波頻譜),虛域頻譜呈奇對稱性(表示正弦波頻譜)。
四、
逆向傅利葉變換
假設我們已經得到了複數形式的頻譜
x[k]
,現在要把它還原到複數形式的原始訊號
x[n]
,當然應該是把
x[k]
乘以乙個複數,然後再進行求和,最後得到原始訊號
x[n]
,這個跟
x[k]
cos(2πkn/n) – j sin(2πkn/n),但其中的負號其實是為了使得進行逆向傅利葉變換時把正弦函式變為正的符號,因為虛數j的運算特殊性,使得原來應該是正的正弦函式變為了負的正弦函式(我們從後面的推導會看到這一點),所以這裡的負號只是為了糾正符號的作用,在進行逆向dft時,我們可以把負號去掉,於是我們便得到了這樣的逆向dft變換等式:
x[n] = x[k] (cos(2πkn/n) + j sin(2πkn/n))
我們現在來分析這個式子,會發現這個式其實跟實數傅利葉變換是可以得到一樣結果的。我們先把
x[k]
變換一下:
x[k] = re x[k] + j im x[k]
這樣我們就可以對
x[n]
再次進行變換,如:
x[n] = (re x[k] + j im x[k]) (cos(2πkn/n) + j sin(2πkn/n))
= ( re x[k] cos(2πkn/n) + j im x[k] cos(2πkn/n) +
j re x[k] sin(2πkn/n) - im x[k] sin(2πkn/n))
= ( re x[k] (cos(2πkn/n) + j sin(2πkn/n)
)+ ---------------------(1)
im x[k] ( -
sin(
2πkn/n) + j
cos(
2πkn/n)
)) ---------------
(2)
這時我們就把原來的等式分成了兩個部分,第乙個部分是跟實域中的頻譜相乘,第二個部分是跟虛域中的頻譜相乘,根據頻譜圖我們可以知道,
re x[k]
是個偶對稱的變數,
im x[k]
是個奇對稱的變數,即
re x[k] = re x[- k]
im x[k] = - im x[-k] 但
k的範圍是
0 ~ n-1
,0~n/2
表示正頻率,
n/2~n-1
表示負頻率,為了表達方便我們把
n/2~n-1用-k
來表示,這樣在從0到
n-1的求和過程中對於
(1)和
(2)式分別有
n/2對的k和
-k的和,對於(
1)式有:
re x[k] (cos(
2πkn/n) + j sin(
2πkn/n)
) + re x[- k] (cos( -
2πkn/n) + j sin( -
2πkn/n))
根據偶對稱性和三角函式的性質,把上式化簡得到:
re x[k] (cos(
2πkn/n) + j sin(
2πkn/n)
) + re x[ k] (cos(
2πkn/n) - j sin(
2πkn/n))
這個式子最後的結果是:
2 re x[ k] cos(
2πkn/n)
再考慮到求re x[ k]等式中有個比例係數1/n,把1/n乘以2,這樣的結果不就是跟實數dft中的式子一樣了嗎?
對於(2)
式,用同樣的方法,我們也可以得到這樣的結果:
-2 im x[k] sin(
2πkn/n
注意上式前面多了個負符號,這是由於虛數變換的特殊性造成的,當然我們肯定不能把負符號的正弦函式跟余弦來相加,還好,我們前面是用
cos(2πkn/n) – j sin(2πkn/n)
進行相關性計算,得到的
im x[k]
中有個負的符號,這樣最後的結果中正弦函式就沒有負的符號了,這就是為什麼在進行相關性計算時虛數部分要用到負符號的原因(我覺得這也許是複數形式
dft美中不足的地方,讓人有一種拼湊的感覺)。
從上面的分析中可以看出,實數傅利葉變換跟複數傅利葉變換,在進行逆變換時得到的結果是一樣的,只不過是殊途同歸吧。
理解離散傅利葉變換(一)
理解離散傅利葉變換 一 傅利葉變換的由來 要理解傅利葉變換,確實需要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也需要一定的高等數學基礎,最基本的是級數變換,其中傅利葉級數變換是傅利葉變換的基礎公式。一 傅利葉變換的提出 讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的...
理解離散傅利葉變換(一 傅利葉變換的由來)
理解離散傅利葉變換 一 傅利葉變換的由來 要理解傅利葉變換,確實須要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也須要一定的高等數學基礎,最主要的是級數變換,當中傅利葉級數變換是傅利葉變換的基礎公式。一 傅利葉變換的提出 讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的...
理解離散傅利葉變換(一 傅利葉變換的由來)
理解離散傅利葉變換 一 傅利葉變換的由來 要理解傅利葉變換,確實須要一定的耐心,別一下子想著傅利葉變換是怎麼變換的,當然,也須要一定的高等數學基礎,最主要的是級數變換,當中傅利葉級數變換是傅利葉變換的基礎公式。一 傅利葉變換的提出 讓我們先看看為什麼會有傅利葉變換?傅利葉是一位法國數學家和物理學家的...