2008年8月17日 星期日

圖像壓縮與三角學(二)

續上文,Fourier有一個奇怪的想法,就是所有週期性函數都可以由正弦波及其諧波所組成。

首先何謂諧波?諧波(harmonics)本來是一個音樂的概念,於兩千多年前,希臘的哲學家已發覺有些音節一同合唱時會有和諧的感覺,這便是諧音。而大哲學家畢達哥拉斯更發現這些諧音間的微妙數學關係。

現代科學對諧波的理解極為簡單,這就是頻率剛好成整數倍數。例如,有一個聲音其頻率為300Hz,那麼600Hz,900Hz,1200Hz等便是它的諧波。

Fourier就是經過嚴謹的數學推導,創出對任何週期性函數找出其正弦及其諧波組成的方法。由於這方法需用比較高深的微積分,所以,我今次不深入討論了。但我們可以通過一些例子,感性地理解這們學問。

以下我便以方波為例,





























現在就是要用正弦波用組成這個方波。


主波便是一個和方波相同週期的正弦波。

’嘩,差咁遠,咁都得!’

’有點耐性罷!’


紅色的波形代表我們所用的正弦波。我們多加了一個3倍頻率的諧波。為甚麼是3倍,又為甚麼是這樣的大小?這便是由Fourier analysis計算出來。



綠色的波形代表紅色波形的總和。特別留意本主波的最高位超越了方波不少。加了3次諧波後,結果反而是低於方波。


加入5倍諧波,結果更加接近。


再加入7倍諧波後的結果。


再加入9倍諧波的結果。


首10個諧波再加的結果。


首100個諧波相加的結果。




從上例可以觀察到,主波和幾個諧波相加後,便‘相當’似一個方波,但理論上,要完全變成一個方波,便要把無限多的諧波相加!

進行了這樣的分析,又有甚麼好處呢?幾十年前,當數碼技術還未普及時,模擬技術便靠這們學問對電子設計進行各樣的計算和分析。簡單來說,我們祗要詳細了解電子電路對正弦波的各項特性,我們便等如知道它對其他任何週期性訊號的特性!

當我們要使用數碼去處理模擬訊號時,必需將模擬訊號轉換成數碼訊號,這個過程稱為‘取樣’(sampling)。但要取多少點才足夠呢?這個標準其實也是基於Fourier analysis。

其實,Fourier analysis對數碼技術的應用,遠超於此。Fourier analysis是把數學函數,變成一個主正弦波及其諧波的數學方法。由此變化出來的有Fourier Transform。這就是可以把由數碼取了樣的波形,轉換為主正弦波及其諧波。轉換後,我們便可以視它們為一組的正弦波加以分析,傳送或壓縮。

Discrete Cosine Transformation (DCT)正正是由Fourier Transform衍生出來的。所以,在Jpeg壓縮的算法裏,我們實在是把獨立的點看成一個整體(註),然後運用DCT把它們看成是一組正弦波相加而成。理論上是要無限多的‘波’,但我們抛棄了高頻的‘波’。這樣,便會看到重覆性,便可以有效壓縮了!

這樣應可以理解為甚麼會出現水波紋(artifacts),回顧方波的例子,平來是直線的方波,在有限次的主波諧波相加後,是不是出現了‘波紋’!這便解釋了為甚麼把變化得快的部份去除,反會出現額外的變化!

其實,圖像壓縮給了我們一個重要的哲學啟示,這就是有沒有規律,其實要看我們如何去表達。一般圖像若以RGB表達,實在很難找出規律,但經過一連串轉換後,便可以成功找出規律,最後達成壓縮的任務!

抽象數學,便是研究很多常人看似完全獨立和沒規律的東西,找出規律和相關性。

1 則留言:

koopa koo 提到...

As for DCT, does that assume the function is even?

網誌存檔