Wednesday, July 26, 2006

訊號內插 - Linear Interpolation 與 Sinc Interpolation

一串取樣間隔為 0.1 秒的時間訊號為例,如果想以訊號處理方法將訊號間隔增加到 0.025 秒,自然必須以內插加入新資料點。

Linear Interpolation

增加資料點最簡單的方式是使用 Linear Interpolation ,其方法是將新取樣點前後想鄰兩原取樣點連線,連線通過新取樣點時間位置時的值即設為新取樣點的值。如下圖所示,AB為原取樣位置,SASB為原取樣位置的取樣值,N為新取樣位置,SN為新取樣位置的取樣值,則SN的計算公式如下︰

Linear Interpolation Formula

Linear Interpolation Example


Sinc Interpolation

假設一訊號 f(t) 及其頻譜 F(ω) 如下圖︰

Original Signal

有一個 impulse train δT(t) ,其 pulse 之間的間隔為 T ,其訊號圖如下︰

Impulse Train for Sampling

若訊號 f(t) 以 T 的時間間隔做取樣,則取得取樣後的訊號 f(t) = f(t).δT(t) ,其訊號及頻譜如下︰

Sampled Signal


從頻譜的角度來看,訊號的取樣過程會在頻譜上產生週期化的現象。因此若如上圖頻譜圖所示,在取樣後的頻譜上,使用一個頻寬與原訊號頻寬相同的低通濾波器(Lowpass filter)濾波,則又可將取樣後的訊號還原到原訊號。下圖為一理想低通濾波器的頻譜H(ω)及時域圖h(t)︰

Ideal Low-pass Filter

則還原後訊號 fR(t) = f(t) * h(t) ,重建過程及重建後訊號如下圖︰

Ideal Interpolation

理想的低通濾波器在時域的型式為一 sinc 函數,然而 sinc 是一無限的函數(unbounded function),只能以近似的方式模擬,因此實作時所還原得到的訊號與原訊號仍有差異。

若一取樣間隔為 T1 的離散訊號,欲以 T2 的取樣間隔重新取樣,可假想為將取樣間隔為 T1 的離散訊號以理想低通濾波器還原為原來的連續訊號,再使用 T2 取樣間隔重新取樣,又由於理想的低通濾波器在時域的型式為一 sinc 函數,因此一方法稱為 Sinc Interpolation。


f(k1T1)︰原取樣間隔為 T1 的離散訊號
f(k2T2)︰新取樣間隔為 T2 的離散訊號
T1︰原訊號取樣間隔
T2︰新取樣間隔
B︰sinc 函數(or 低通濾波器)的頻寬,T1 = 1/(2B)

則 Sinc Interpolation 的計算公式為︰

Sinc Interpolation


Sinc Interpolation 的 C 程式碼請參考這裡

參考資料︰
B. P. Lathi, Signal Processing & Linear Systems, Berkeley Cambridge Press, 1998.

No comments: