Carved Marker

Antialiasing 的理論 [Part 2]

究竟在取樣的時候,發生了什麼事呢?這就得從 frequency domain 的角度來看了。所謂的 frequency domain,就是指訊號所擁有的各種頻率的成份。也就是說,我們可以用一大堆不同頻率的正弦波,合成我們所要的訊號。或是說,我們要找出我們所要的訊號,是由哪些不同頻率、不同強度、和不同相位的正弦波所組成的。這可以利用 Fourier transform 把一個訊號從 spatial domain 或 time domain 轉換成 frequency domain,或利用 inverse Fourier transform 把它從 frequency domain 轉回來。

下圖是一個訊號和它的 Fourier transform:

Original signal Frequency domain

要注意的是,一個訊號的 Fourier transform,對任一個頻率實際上有兩個成份,一個是訊號的強度(magnitude),另一個是相位(phase)。在上圖中只顯示出強度,而沒有顯示出相位。另外,在頻率為 0 的地方,稱為 DC,等於是整個訊號在 spatial domain(或 time domain)的總合,所以特別大。在後面的圖中,有時會把 DC 值切掉,以讓其它頻率的值更容易看出來。

假設現在要對一個訊號在每個 pixel 的中間進行取樣,也就是保留訊號在 pixel 中間的值,而把其它地方的值變成 0。這其實可以利用乘上另一個訊號的方式來做,也就是乘上一個「在每個 pixel 中間為 1、其它地方為 0」的訊號。如下圖所示:

Original signal Comb filter Sampled signal
原始訊號Comb filter取樣後的訊號

上圖是一個原始訊號,在乘上 comb filter 後,得到取樣後的訊號。Comb filter 的名字來自於它的形狀,因為它在每個 pixel 中間的值為 1,其它地方的值為 0,看起來長得像梳子,所以叫 comb filter。

究竟取樣的時候,發生什麼事呢?這要從 frequency domain 來看才會清楚。下圖是同樣的訊號,在 frequency domain 的形狀:

Frequency of original signal Frequency of comb filter Frequency of sampled signal
原始訊號Comb filter取樣後的訊號

可以看到,經過取樣後的訊號,在 frequency domain 變成一個不停重覆的東西。不過,它在 -1 和 1 之間的形狀,和原來的形狀並不相同。這是因為原始訊號在 -1 和 1 之外還有東西(像是 1 和 2 之間的突起,這是來自原始訊號右邊的那三個尖角,它們的頻率太高了),這些東西「干擾」到原來在 -1 和 1 之間的東西。這個現象使得原來訊號中的高頻成份(像是 1 和 2 之間的突起),在取樣後,可能會被當成是比較低頻的成份。這些多出來的低頻成份,就是失真(aliasing)。

要避免高頻成份在取樣後會被當成低頻成份,最簡單的方式,就是在取樣前,用 low pass filter 把所有的高頻成份都去掉,如下圖所示:

Frequency after low pass filter frequency of sampled signal
經過 low pass filter 的訊號取樣後的訊號

上圖中,先把高頻成份去掉之後,在取樣時,就不會干擾到低頻部份,也就不會產生失真了。不過,要去掉多高頻的成份呢?從 comb filter 的表現可以看到,當取樣頻率是 N 的時候,所有頻率大於 N/2 的成份,都會造成失真。所以,要把頻率大於 N/2 的成份都去除。反過來說,如果已經知道所需要最高的頻率是 N,那就要把取樣頻率設在 N 的兩倍以上。

不過,去除了高頻成份之後,訊號會變成什麼樣子呢?下圖是上面的訊號和其經過 low pass filter 後的比較:

Signal low pass filtered

可以看到它和原來的訊號相差蠻多的,不過這是在這個取樣頻率下(16 個取樣點)所能做到最好的結果了。

[Part 1] [Page 2] [Page 3] [Page 4]

12/4/2001, Ping-Che Chen


Sorry, Traditional Chinese only. This page is encoded in UTF-8.

Copyright© 2000, 2001 Ping-Che Chen