• 沒有找到結果。

與訊號處理簡介

N/A
N/A
Protected

Academic year: 2022

Share "與訊號處理簡介"

Copied!
4
0
0

加載中.... (立即查看全文)

全文

(1)

FFT 與訊號處理簡介

祁忠勇 演講

林聖哲 記錄

(一) 何謂訊號處理:

當你要處理訊號時, 首先是必須有測量 到的訊號, 而訊號必定有一個產生的過程。

假設我們有一輸入訊號u(n), 進入某一個未 知的系統後, 而得到一個輸出訊號x(n), 然 後我們想要設計一個系統來處理訊號x(n), 以抽出它所攜帶的情報, 這便是我們所謂的

「訊號處理」。 而如何設計一好的系統, 方能 從x(n)中正確而完全的獲得我們想要知道的 情報, 便是訊號處理者日日在研究的課題。 我 們現在舉些例子來讓大家更能感覺到什麼是 訊號處理。

首先是通訊, 在通訊裡面我們常常傳送 0 和 1 兩個數字的訊號, 當然也可能不袛兩個 數字, 而所有的通信頻道都有一定的頻寬, 假 如你傳送的太快, 那麼前一個訊號和後一個 訊號會相互干擾, 從所收到的x(n)就再也看 不出它原來傳送的信號為 0 或 1 了。 因此, 必 須設計一個訊號處理系統 (Signal Process- ing System) 來處理所收到訊號, 以還原所 傳送的信號, 這就是一個典型的訊號處理的 問題。 另一個例子便是語音信號處理, 人的聲

音是由聲門產生一振幅不均勻之脈衝串來激 發聲道而產生聲音, 且經由聲道形狀的改變 產生不同的聲音。 我們也可經由電腦來合成 這些聲音, 但因為是合成的, 所以會有些不自 然。 當然我們也可以設計一個訊號處理系統 來抽出一些想知道的訊息, 如所發的是什麼 音、 頻率多少、 以及是由何人所發的, 這便可 應用在語音鎖上。 另外還有很多應用, 例如:

石油探戡、 聲納、 影像、 雷達· · ·等等。

(二) 何謂訊號和系統:

訊號是一個系統所輸入的函數, 不論是 連續變數的函數, 或是離散變數的函數, 而 系統的輸出也叫做訊號, 還有系統內部所有 可以代表的量, 我們也稱作訊號。 那麼什麼又 是所謂的連續時間訊號 (Continuous-time Signal), 您可以將它想像成一個以時間t為變 數之函數x(t), 但時間 t 是連續的, 例如:

x(t) = A · sin(w

0

t), 它是一個三角函數, 當 然t的變化是連續的。 而所謂的離散時間訊號 (Discrete-time Signal) 又是什麼呢? 簡單 的說, 就是整數的函數x(n)。 例如: x(n) = A sin(w

0

n)就是一個離散時間訊號了。

1

(2)

2

數學傳播 十八卷四期 民

83

12

接著我們來說明系統是什麼? 簡單的 說:「有輸入, 有輸出」 的便是系統了。 如果 輸入與輸出均是離散時間訊號, 此系統就稱 作離散時間系統 (Discrete-time System);

同理, 如果輸入與輸出均是連續時間訊號, 此系統就稱為連續時間系統 (Continuous- time System)。 再讓我們介紹一種訊號處 理系統, 如此我們才能往下推進。 這系統稱 為 Discrete-time Linear Time-invariant System, 而什麼又叫做 Linear System 呢? 就是此系統在輸入與輸出間形成一種 線性組合的關係。 也就是說, 輸出是輸入的 訊號經一種線性的關係組合而成的。 那麼什 麼又叫做 Time-invariant 呢? 假設某一 個輸入訊號進入一系統, 結果產生一個輸出 訊號, 但是如果慢一個小時輸入的話, 還是 會得到相同的輸出訊號, 並不會因輸入時間 不同而得到不同的結果, 這就稱作 Time- invariant。 而對於 Discrete-time Linear Time-invariant system, 它的輸出和輸入 有一定的關係: 假設輸入訊號是x(n) 而輸 出訊號是y(n), 那麼y(n) = h(n) ∗ x(n), 其中∗是一種h(n)和x(n)的運算, 而這運 算稱為 Convolution, 也就是說y(n) = h(n) ∗ x(n) =

P k=−∞

h(k)x(n − k) =

P

k=−∞

x(k)h(n − k), 而其中h(n)稱 為脈衝響應 (Impulse Response), 而 它又是什麼呢? 就是此系統, 當輸入訊 號 是 δ(n) (δ(0) = 1, δ(n 6= 0) = 0)時, 所 得 到 的 輸 出 訊 號。 所 以 當h(n)已 知, 這 個 Discrete-time Linear Time- invariant System 的輸入輸出訊號間的關 係完全確定。

(三)Fast Fourier Transform (FFT):

首 先 讓 我 介 紹 Discrete-time Fourier Transform。 假設我們有一個訊 號x(n), 將它乘上 e

−jwn

, 然後將它從n =

−∞至∞連加起來, 我們用X(e

jw

) =

P

n=−∞

x(n)e

−jwn

表示所得到的結果, 它就 形成了一個連續變數w的函數。 再則, 可以從 理論上證明x(n) =

1 R −π π

X(e

jw

) e

jwn

dw, 而 X(e

jw

) 就稱為 x(n) 的 Fourier Trans- form, x(n) 就是 X(e

jw

) 的 Inverse Fourier Transform。 那麼在物理上它有什 麼意思呢? 我們稱X(e

jw

)為分析, 也就是我 想知道x(n)這個訊號包含的成分是什麼, 也 就是某種頻率(w)的成分有多大。 例如: 人 所發出的聲音之頻率一般最高到 4K Hz, 所 以我們可以用這種方法分析人的聲音大部分 在那一個音頻區。 而反過來, 以各種不同頻 率的成分組成x(n), 所以它就像一種合成。

而 Inverse Fourier Transform 和 Fourier Transform 在工程裡面經常重複地使用, 所 以必須發展快速的計算方法來解決這個問題, 也因為電腦的出現與進步, 也就使得這門學 問日漸壯大。

接著讓我們談談什麼是 Fast Fourier Transform(以下簡稱 FFT), 假設我們有一 個 Linear Time-invariant System(以下 簡稱 LIT 系統), 其脈衝響應為h(n), 我 們將輸出和輸入的訊號做 Fourier Trans- form 的話, 我們會發現輸出訊號的 Fourier Transform恰巧會等於輸入訊號的 Fourier

(3)

FFT

與訊號處理簡介

3

Transform 乘上h(n)的 Fourier Trans- form, 也就是說Y(e

jw

) = X(e

jw

) · H(e

jw

), 其中|H(e

jw

)| 就稱為系統之振幅響應 (mag- nitude response), 而H(e

jw

) 的角度就稱為 系統之相位響應 (phase response), 所以 除了用y(n) = x(n) ∗ h(n) 來計算輸出信號 以外, 這也提供另一種方法去計算 LTI 系統 的輸出y(n)。

上述結果和 FFT 又有什麼關係呢? 假 設現在有一個接收到的信號, 而其中在某個 頻率以 下才是我們想要的信號, 其餘皆是雜 訊, 那麼你如何設計一個濾波器 (filter), 它 本身即是一個 LTI 系統, 且對某一頻率以下 之輸入信號完全接受, 在此一頻率以上之輸 入信號完全清除? 在設計這個濾波器的過程, 必須不斷重複計算H(e

jw

), 也就是說, 重複 計算 Fourier Transform 許許多多次, 所以 必須發展 FFT 以滿足我們的需求。

再接著我們介紹 Discrete Fourier Transform (DFT)。 在數位信號處理 (Dig- ital Signal Processing) 的領域裡所使用的 Fourier Transform, 都是指 Discrete-time Signal 的 Fourier Transform。 而 DFT 便 是指在 Fourier Transform 中的w從0到 2π 的範圍 (一週期) 分成N等分點, 即每兩點 的間隔為2π/N, 再假設信號x(n)的範圍是 從0到N − 1, 因此 DFT 是指X(e

j2πk/N

) =

P N −1

n=0

x(n)e

−j2πkn/N

, 而且x(n)可以證明等 於

1

N

P N −1

k=0

X(e

j2πk/N

) · e

j2πkn/N

。 如此一 來它便較符合一般實際的應用, 畢竟我們不 可能累加一個從 −∞到∞的數列。

計算一個N點的 DFT 運算究竟要花 多少的運算量呢? 如果直接來計算, 它需 要N

2

個複數運算 (指加減乘除), 接下來讓我 們告訴您其實不需要那麼多。

假設有一個訊號x(n)是一個有限的複數 數列, 長度正好是2的指數倍, 即N = 2

v

, 令 W

N

≡ e

−j2π/N

, 則我們可以很容易地看出 兩個結果: W

N k(N −n)

= W

N −kn

= (W

N kn

)

, W

N kn

= W

N k(n+N )

= W

N (k+N )n

, 而FFT 便是充分利用這兩個結果來計算 Fourier Transform X(e

j2πk/N

), 以減少所需的運算 量。 下面讓我介紹一下 Decimation-in-time FFT 演算法則。

將 DFT 的 定 義X(k) ≡ X(e

j2πk/N

) =

P N −1 n=0

x(n)W

N kn

, k = 0, 1, · · · , N − 1, 表示成下列奇數項的和加 上偶數項的和:

X(k) =

N/2−1 X

r=0

x(2r)(W

N 2

)

rk

+

N/2−1 X

r=0

x(2r + 1)(W

N 2

)

rk

· W

N k

= G(k) + W

N k

· H(k)

其中W

N 2

= e

−j2π·2/N

= e

−j2π/(

N2

)

= W

N/2

, G(k)和H(k)分別是下列兩個N/2點 的 DFT:

G(k) =

N/2−1 X

n=0

x(2n)W

N/2 kn

H(k) =

N/2−1 X

n=0

x(2n + 1)W

N/2 kn

如此一來我們算一個N點的 DFT, 變成算兩 個N/2點的 DFT, 這樣做究竟是否有減少運 算呢? 現在我們用一個流程圖來表示上述的 計算過程, (假設N = 8):

(4)

4

數學傳播 十八卷四期 民

83

12

.. . .. . .. . .. .

... ...

x [0] X [0]

G [0]

W 0

N

. .. .. . .. . .. .

... ...

x [2] X [1]

G [1]

W 1

N

. .. .. . .. . .. .

... ...

x [4] X [2]

G [2]

W 2

N

. .. .. . .. .. ..

... ...

x [6] X [3]

G [3]

W 3

N

. .. .. . .. .. ..

... ...

x [1] X [4]

H [0] W 4

N

. .. .. . .. .. ..

... ...

x [3] X [5]

H [1] W 5

N

. .. .. . .. .. ..

... ...

x [5] X [6]

H [2] W 6

N

. .. . .. . . .. ..

... ...

x [7] X [7]

H [3] W 7

N N

2 - point DFT

N

2 - point DFT

...

...

...

...

...

...

...

...

... . .. . . .. . . . . . . ...

... . .. . . .. . . . . . . ...

... . .. . . .. . . . . . . ...

... .. . . . .. . . . . . . ...

† 上圖取自 A.V. Oppenheim and R.W. Schafer, Discrete-time Signal Processing, Prentice- Hall, 1989 之圖 9.3。

因為直接算G(k)祗需(

N 2

)

2

個複數運算, 同理 算 H(k) 也需 (

N 2

)

2

個複數運算, 再加 上最後 W

N k

的 N個乘法, 所以我們共需 要2 · (

N 2

)

2

+ N個複數運算, 與直接算N點 的 DFT 所需要的運算量N

2

相比, 似乎祗減 少了一倍的運算, 沒什麼了不起嘛!但是如果 再將上面的G(k)和H(k)拆成奇數項和偶數 項二部份, 我們便又可減少運算量了, 如此一 層層的拆下去, 我們便可發現最後事實上我 們祗需要N · log

2

N個複數運算, 這將遠小 於N

2

個複數運算。

有一 個 值 得 一 提 的 注 意 事 項 是 在 計 算DFT 之前,x(n)必須重新排列, 而排列 的法則便是將它的二進位表示法, 前後次序 顛倒, 例如: 3 −→ 011 −→ 110 −→

6。 另外, 在圖中的運算形式, 均為蝶形 運算, 且 X(k) = G(k) + W

N k

H(k), X(k + 4) = G(k + 4) + W

N k+4

H(k + 4), k = 0, 1, 2, 3。 所以, 將圖中的蝶形運算之

公因式提出(W

N r+N/2

= −W

N r

), 則X(k + 4) = G(k + 4) − W

N k

H(k + 4), 如此 做還可以再減少一倍的運算, 使得我們祗須 要(N/2) · log

2

N的運算, 例如: N = 1024 = 2

10

, FFT 的運算量約是直接計 算 DFT 的二百分之一。

(四) 信號處理的未來:

信號處理研究可分成二類, 一是須要統 計量的信號處理, 另一類是不須統計量的信 號處理。 但是無論是那一類的信號處理, 快速 信號處理演算法則是永遠需要的, 而 FFT 祗 是一個典型的例子。 各種不同目的的信號處 理演算法則不斷地被開發出來, 然而能夠將 已開發出來的信號處理演算法則變得更快速 也才更能夠符合實際的應用。

—本文作者任教於清華大學電機系—

參考文獻

相關文件

微分方程式法

• 點選 Method Editor 來進行方法程式編輯(同樣,也可 在開啟後的視窗中,點選 Form Editor 來切回原視窗). Form

開訓典禮、結訓典禮、性別 平等、就業市場趨勢分析及 求職技巧、資訊及通訊科 技、規定與紀律說明及公司 簡介、公司環境介紹及安全 建立宣導抽取材料觀念介

另外因為 Gal(L/F ) 是 Gal(L/K) 的 normal subgroup, 所以由 Second Fundamental Theorem 4.1.8 知 F/K 也是 Galois extension, 而且 Gal(F/K) isomorphic to Gal(L/K)/Gal(L/F )

以下透過 透過 透過 透過五年級 五年級 五年級 五年級「 「 「 「中華大地任我行 中華大地任我行 中華大地任我行 中華大地任我行」 」 」 」為例 為例 為例作 為例 作 作說明 作 說明 說明

就知識及相關理論的最新發展,體育教師可運用他們的專業知識,把新元素例如資訊素養、企 業家精神、人文素養,以及

[r]

不容易馬上用在教學模式所求的答案,所以發展出新的、較簡單卻較沒有長期效果