精華區beta Audiophile 關於我們 聯絡資訊
這篇建議老鳥不用看, 因為講的都是基礎的理論而已. 以前聲音的收錄都是用類比的方式, 例如說在LP(Vinyl Disk)上面刻痕的深度 就代表當時的氣壓(聲音是借由氣壓的變動所傳波的). 而新的類比儲存的方式 則是紀錄一連串時間點上面空氣壓力, 也就是說你把數位的音訊資料解碼之後, 可以看到類似以下格式的內容: t f(t) 1 4.25500 2 5.53621 3 3.11325 4 -0.95501 5 -3.38509 6 -2.15961 ... etc 他的意思是, 在時間t的時候, 麥克風測量到的聲波壓力為f(t). 一般來說, 在一個音樂檔案裡面會有好幾百萬條這樣的資訊. 當我們這樣紀錄聲音的時候, 有幾個值得我們考量的問題: 1. 我們多久紀錄一次? 如果兩次紀錄之間的時間太短, 那將會用到比較多的資源, 例如說儲存空間跟電能. 再說, IC的速度有限, 他不可能處理太大的資料量. 如果紀錄時間間隔太長的話, 我們將損失太多資料. 每秒紀錄幾次就是採樣率. 2. 我們紀錄需要多少的精準度, 因為在數位時代, 數字是用零和一代表的, 也就是說 , 我們不時需要將資料四捨五入. 我們如果用十六個零與一來紀錄一個氣壓, 那 一個氣壓值可能有65536種可能的數字, 我們在轉換的過程中, 只能選擇離實際數值 最近的來紀錄. Eg, 假如實際的氣壓是15.7, 那我們只能記成16. 這兩個問題, 構成我們常見的聲音格式規格. 48kHz/16bit 代表每秒鐘紀錄 四萬八千個紀錄, 每個紀錄有十六個零與一. 同理, 192kHz/24bit, 代表 十九萬兩千個紀錄每秒, 每個紀錄有二十四個零與一. 現在我們將回答剛剛提出的第一個問題. 第一個問題的答案就是一個叫做 Nyquist-Shannon Sampling Theorem的理論. 這理論說, 當一個訊號裡面, 最高的頻率為f Hz, 那我們每秒中只需要紀錄2f 個紀錄, 就能完整無缺的 紀錄這個訊號, 就連在兩個紀錄點之間的訊號也能從紀錄到的訊號中間推 出來, 而且這個推出來的中間的數字, 經過數學的證明, 保證是正確的. 在人所能聽到的聲音裡面, 最低是20Hz, 最高大約在20kHz, 所以說, 根據, 剛剛理論, 大約每秒紀錄四萬個紀錄就能完整的紀錄聲音. 當然, 由於我們的世界不是理想的, 總是會有一些不理想的因素會讓你的 聲音變質, 所以說, 採樣率一般都會比40kHz高. 例如說CD的44.1kHz, 或是 常見的48kHz. 當然, 也有人為了避免損失資料, 使用96kHz甚至是192kHz的 採樣率來避免資料損失. 再來, 我們要講的是過採樣(Oversampling, 不知道中文翻的對不對), 這方面 理論可能對不是本科系的人有一點困難, 所以如果沒有興趣可以跳過. 我們在 做類比跟數位的轉換的時候, 會有一個問題. 在早期的DAC(數位轉類比IC)裡面 轉出來的訊號會呈現階梯狀, 例如說這樣: -------+ | +-------- | | | | +------+ | | +-------+ | | +-------+ 這每個階梯就是一個採樣. 假如我們拿這去做頻率分析, 會發現有許多的 高頻存在, 這些高頻(超過20kHz)不存在原本的聲音裡面, 很明顯的, 這些 是DAC Aliasing 所造成的雜訊. 當然, 由於有許多現代的DAC架構(Eg: Sigma-Delta) 在高頻下面運作, 所以說, 也會造成高頻的雜訊. 對於這種高頻的雜訊, 我們應付他的方法就是使用濾波器. 濾波器會將高於某些 頻率的訊號給率調. 當然, 濾波器有兩個問題: (以下指一階RC濾波器) 1. 濾的不乾淨, 假設我們要濾20kHz以上的東西, 當有一個40kHz的訊號, 這訊號只會被減半, 當有一個100kHz的訊號, 這訊號只會被除以五, 以此類推. 2. 項位會改變, 再接近他要濾的頻率的時候, 訊號的像位會改變. 也就是說 會有延遲. 以上是一階的RC濾波器的問題, 當我們使用多幾階的濾波器時, 1的問題會改善, 但是2的問題會加重. ( 魚與熊掌不可間得的意思 ) 在這種情況下, 我們需要同時解決1和2的話, 我們使用一種叫做Oversampling 的技巧. 這技巧就是提高我們的採樣濾. 我們將輸入的訊號做處理, 假設 輸入的是48kHz, 我們就用數學運算算出中間的點, 把訊號變成n*48kHz ( n 隨IC而定 ), 我們在產生點時, 我們要比免產生高於某頻率(20kHz)的訊號. 這整個產生多的點的過程, 我們一般叫他做Digital Interpolation Filter, 因為他就像濾波器一樣, 濾掉20kHz ~ n*48kHz之間的訊號. 此時輸出的訊號 就沒有這個頻段的訊號, 所以我們可以簡單的用一個一階的RC濾波器, 濾掉 高於n*48 kHz的雜訊. 此時我們不需要擔心問題2, 因為我們的濾波器頻率離 20kHz 有一段距離, 像位更改不會更改到那麼遠. 我們也不用擔心問題1, 因為 濾波器的頻率離n*48 kHz也有一段距離, 所以不用擔心濾的不夠乾淨. 現在最高階的DAC IC, TI PCM1792A, 以及跟他同一系列的DAC IC, 都是 使用這項技術來達到很高的SNR. PCM1792A的n=8, 所以他實際轉換的 採樣濾是輸入的8倍. ---------------------------------------------------------------------------- 看到這裡還沒有END的人, 謝謝你耐心的看完. 對於原Po的問題, 你那個採樣率是音效卡的設定, 他只是當檔案格式 跟設定不同的時候做轉換而已, 他不會改變你檔案真正使用的採樣率. 所以, 其實沒什麼差別. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.68.68
aalaya:推一下~~john博太強了啦! 01/14 00:19
threeme:學習了 好文一篇(Y) 01/14 00:20
Ning01:請問原PO是電機相關科系的嗎? 01/14 00:26
commutative:44.1K完整還原是用積分完成的,所以數學上推論是正確的 01/14 00:30
commutative:但我粗略的算用電腦來做,速度應該是跟不上才是 01/14 00:32
john0312:加入點的部分是IC上面處理的, 詳細內容可以參考 01/14 00:35
rayzart:haykin? 01/14 00:35
john0312:Digital Filter相關的書籍. 01/14 00:35
commutative:明天去找書翻翻看,來消除我對IC的質疑... 01/14 00:38
AKawashima:推薦這篇文章 01/14 00:48
windjammer:很棒 雖然後面不是很懂 哈哈~ 01/14 00:59
pipi5867:中文通常翻成 超取樣(大概是聽起來比較威XD) 01/14 01:02
louis0407:John 若利用非即時的程式做極高精度的oversampling 到 01/14 01:04
louis0407:後端DA的實際運作頻率(就是pass掉chip的digital filter) 01/14 01:05
louis0407:假設轉換精度跟效果比chip電路用的演算法還好的話 是否 01/14 01:06
louis0407:有意義?? 還是digital filter還是會傻傻的再轉一次破壞 01/14 01:06
louis0407:精度 最後沒差異? 01/14 01:07
jetzake:弄個TDA1543一類NOS的IC來對比一下實際聽感應該是可行的 01/14 01:29
iamsjkla:推... 01/14 08:07
yujie0822:通訊導論好像有提到XDD 01/14 08:58
ppk28:推 01/14 10:55
kmorgue:"Oversampling" 譯 "超取樣" ?! 01/14 11:54
chris1281:感覺這篇文章跟這學期學得 "信號與系統"搭上了 XD 01/14 12:42
grjh871522:專業推 01/14 13:20
overclock:推一下好文~ 01/14 14:46
p633:推一下,後段看不太懂...:P 01/14 15:18
wisdom:推一下! OverSampling一般翻成超取樣比較常見。 01/15 21:36
louis925:那一般的播放軟體做得到OverSampling嗎? 01/16 04:25
freshmoon:看文章 長知識 太強大了 01/16 16:01