mp3 檔案壓縮:到底錯失了什麼
發表於 : 週三 3月 25, 2009 9:45 am
前一陣子發現可以把 音樂檔案放到自己常用的分析軟體中做一樣的分析
而且在聽 mp3, FLAC 的時候,總是疑神疑鬼,不知道聲音被搞成什麼德性
所以乾脆把音樂檔案放到軟體裡面,看音樂訊號的統計性質有沒有什麼差別
說穿了,就是視覺化的轉換,如果不確定聽起來怎樣,訊號看起來的差別也可以得到一些訊息
用的軟體 Matlab R2008a, Wavelet Toolbox
統計方法: Power Spectrum, Wavelet (morlet)
目標音樂檔案:Akiko Suwanai 的 Poeme 專輯第一首歌
不過因為做 Spectrum 的話,如果整首歌全做,不但訊號量太大,而且因為聲音訊號不是保持同樣頻率
所以做 spectrum 不太符合 periodic 的假設特性,因此我只讀其中兩秒 50-52 sec,來做分析
這次比較的是同一個音樂檔案,但是四種格式
*. WAV (很抱歉懶得找 CD 再轉一次,所以用 FLAC 轉成 WAV 代替,這個 FLAC 就是我自己從CD壓的)
這個代表參考訊號
以下三組是比較訊號
*. mp3 65 kbps (用 lame 3.98 beta6,從 FLAC 轉成mp3 再轉成 wav,以方便 Matlab 吃檔)
*. mp3 190 kbps (用 lame 3.98 beta6,從 FLAC 轉成mp3 再轉成 wav,以方便 Matlab 吃檔)
*. FLAC: 既然要比較 FLAC 而我這一次又沒有找原本的 WAV 檔案,所以我把 FLAC 轉成 WAV 再轉成 FLAC 反覆4次,最後存成 WAV 格式
首先看 power spectrum,這個方法簡單來說就是把訊號的 variance 分佈到三角函數的頻率上面,可以看到不同的訊號平均來說,再哪一個頻率上面擺幅/能量最大 (假設基本訊號是正弦波)。
比較 WAV 和 FLAC
原本的訊號可以看到(藍色代表wav 檔案/參考訊號,紅色代表 flac 檔案),兩者幾乎一樣,看不出來有什麼差別,再 600- 1100 Hz 中間有明顯的峰值。
這是 PSD (Power Spectral Density Function), 橫軸是 對數尺度 (log scale) 的頻率,縱軸是 對數尺度 (log scale) 的能量密度
另一種畫法,Variance Preserving Spectrum
這種畫法基本上跟 PSD 差不多,不過 PSD 會有放大低頻訊號的感覺,這種 Variance Preserving Spectral 縱軸是線性尺度能量,而且積分代表頻率內的 variance。
可以比較清楚看到峰值
而比較 190 kbps MP3 和 wav 檔案
基本上差別不太大,峰值的位置都差不多一樣,最低頻和最高頻的頻譜有點差別,不過都在人耳或器材的響應頻率之外,所以應該沒什麼差。BTW, 為了測試我的器材和耳朵的頻率範圍,我也用 sin 訊號產生了 wav 音訊檔,果然 20Hz 和 20 kHz 我都聽不到,50Hz 和 10 kHz 就都可以聽到了 (器材是NB 耳機輸出搭配 AKG K14P)。
而比較 65 kbps MP3 和 wav 檔案
可以說是天差地遠,峰值的位置都差很多,雜訊也整個冒出來,聽起來會很糊!? 假的訊號峰值還比原來的訊號強。
而且在聽 mp3, FLAC 的時候,總是疑神疑鬼,不知道聲音被搞成什麼德性
所以乾脆把音樂檔案放到軟體裡面,看音樂訊號的統計性質有沒有什麼差別
說穿了,就是視覺化的轉換,如果不確定聽起來怎樣,訊號看起來的差別也可以得到一些訊息
用的軟體 Matlab R2008a, Wavelet Toolbox
統計方法: Power Spectrum, Wavelet (morlet)
目標音樂檔案:Akiko Suwanai 的 Poeme 專輯第一首歌
不過因為做 Spectrum 的話,如果整首歌全做,不但訊號量太大,而且因為聲音訊號不是保持同樣頻率
所以做 spectrum 不太符合 periodic 的假設特性,因此我只讀其中兩秒 50-52 sec,來做分析
這次比較的是同一個音樂檔案,但是四種格式
*. WAV (很抱歉懶得找 CD 再轉一次,所以用 FLAC 轉成 WAV 代替,這個 FLAC 就是我自己從CD壓的)
這個代表參考訊號
以下三組是比較訊號
*. mp3 65 kbps (用 lame 3.98 beta6,從 FLAC 轉成mp3 再轉成 wav,以方便 Matlab 吃檔)
*. mp3 190 kbps (用 lame 3.98 beta6,從 FLAC 轉成mp3 再轉成 wav,以方便 Matlab 吃檔)
*. FLAC: 既然要比較 FLAC 而我這一次又沒有找原本的 WAV 檔案,所以我把 FLAC 轉成 WAV 再轉成 FLAC 反覆4次,最後存成 WAV 格式
首先看 power spectrum,這個方法簡單來說就是把訊號的 variance 分佈到三角函數的頻率上面,可以看到不同的訊號平均來說,再哪一個頻率上面擺幅/能量最大 (假設基本訊號是正弦波)。
比較 WAV 和 FLAC
原本的訊號可以看到(藍色代表wav 檔案/參考訊號,紅色代表 flac 檔案),兩者幾乎一樣,看不出來有什麼差別,再 600- 1100 Hz 中間有明顯的峰值。
這是 PSD (Power Spectral Density Function), 橫軸是 對數尺度 (log scale) 的頻率,縱軸是 對數尺度 (log scale) 的能量密度
另一種畫法,Variance Preserving Spectrum
這種畫法基本上跟 PSD 差不多,不過 PSD 會有放大低頻訊號的感覺,這種 Variance Preserving Spectral 縱軸是線性尺度能量,而且積分代表頻率內的 variance。
可以比較清楚看到峰值
而比較 190 kbps MP3 和 wav 檔案
基本上差別不太大,峰值的位置都差不多一樣,最低頻和最高頻的頻譜有點差別,不過都在人耳或器材的響應頻率之外,所以應該沒什麼差。BTW, 為了測試我的器材和耳朵的頻率範圍,我也用 sin 訊號產生了 wav 音訊檔,果然 20Hz 和 20 kHz 我都聽不到,50Hz 和 10 kHz 就都可以聽到了 (器材是NB 耳機輸出搭配 AKG K14P)。
而比較 65 kbps MP3 和 wav 檔案
可以說是天差地遠,峰值的位置都差很多,雜訊也整個冒出來,聽起來會很糊!? 假的訊號峰值還比原來的訊號強。