拒絕玄學~深入淺出,如何用低成本打造一套高質量數播系統
相信很多發燒友都想打造一套能比傳統CD 更好的數播系統, 我們就用科學方法來教大家如何用低成本打造一套高質量數播系統
數字播放器不是什麼新鮮事物, 20 年前紅極一時的mp3 也算是數播了, 只不過受限於當時儲存媒介的技術不能大容量及解碼技術,所以只能用低碼率來存放, 聲音質量就那樣, 後來的硬盤播放器, 開始能播放一些高碼率, 能和CD碼率一樣44.1k 的wav檔, 但也受限於軟件, 解碼芯片等因素還是不太理想, 直到近年的軟件及硬件等飛躍終於能做到能超越CD音質的數字重播系統.
我們建構數字重播系統離不開以下五樣東西:
電源, 時鐘(晶體震盪器) , 算法及軟件 線路結構
電源 :
我們先從電源說起,電源是最先接入系統的, 發燒友都知道做好電源的重要性, 我們可以看看高端機器的電源部份會用多個變壓器, 多組供電系統,大濾波結構等手段, 因為一個線路上不肯一種電壓, 低階的線路結構通常只能用一組電源分壓輸出成不同電壓, 這樣做成本比較低但每一路不同電壓會互相串擾, 引起雜訊等, 所以高端的機器,無論是數字電路, 模擬電路都會用多組不同電壓,分別輸出,用隔離等手段, 盡量減低對整個系統的串擾, 電源除了串擾,還要使用低波紋, 低內阻能使系統擁有高動態表現, 電容的物料, 電阻會不會產生電感, 加上濾波零件的不同能產生不同的音色等
時鐘(晶體震盪器)
很多新手不理解音響上的時鐘晶體震盪器是什麼, 把時鐘誤解成時間,音響上的時鐘和時間不是一個概諗, 數字訊號無論在任何載體上傳輸都需要切成不同長度的數據封包, 那時鐘震盪器就是用來把一條連續數據切成等份, 如果一個晶體震盪器輸出的週期不準, 那切出來的數據就不準確, 一段數字和另一段數字中間的時間間隔叫做時基誤差jitter , 有很多新手認為數字訊號都是只有 1 跟0 , 是不對的, 因為1 跟0 中間有一個時間差,這個時間差如果每個0及1 中間都不一樣, 那麼聽起來就不自然, 數碼味重, 什至失真,薄聲等, 那整套系統內有那麼多晶體震盪器的作用是什麼, 提升某一個晶體的準確度對整個系統的提升最高,比如很多人會把usb的時鐘提升精準度,是有提升,但這不過是”隔山打牛”, 因為音頻訊號用usb傳輸時是打包成usb封包, 由系統軟件,usb輸出,到線材, 再到usb界面解包成原始i2s訊號,最少需經過 3 次數據轉换, 調制和解包的過程, 如果線路結構線材接收界面等做得不好都會產生大量jitter時基誤差, 導致聽感變差, 不自然, 以上所講的是傳輸的時鐘, 數字系統除了傳輸的時鐘用放調制訊號,還有一個更重要的主時鐘, 用放切割 44.1k , 48k 96k等取樣率的主時鐘, 這通常是一組時鐘 22.5792Mhz, 24.576Mhz ,因為PCM訊號在設計時就是以 44.1k及48k作為基礎, 後面的88.2 96k等都是這2 組取樣的倍數, 比如要處理44.1 -192k 取樣時, 一般會選用22.5792及24.576 這組主時鐘, 如果要處理高取樣就需要用到45.1584及49.152Mhz , 這是數字重播中最為重要的主時鐘, 我們叫作master clock, 還有一種架構叫作 word clock字時鐘或參考時鐘, 一般來說我們假如用外部時鐘10Mhz輸入到數播系統, 會把10Mhz轉换成 22.5792Mhz, 24.576Mhz來給系統使用, 所以就存在一個轉换過程及硬件,這又會牽涉到時鐘的誤差及jitter等, 總的來說,數播系統內所有時鐘對聲音都是有重大的影響, 每處的影響都不同,這就是音響上時鐘的作用
算法及軟件:
數字音響上包含了軟件及硬件, 而軟件就牽涉到軟件把數字訊號轉成PCM音頻訊號等過程, 由播放軟件的運作方式, 所處的OS底層等都會影響重播效果, 我可以很付責任的告訴你, 把系統的cpu 分配給不同的播放軟件進程,不同的OS 操作系統,插斷值等, 調度等都對音質產生具體影響,, 而PCM訊號在傳輸時的誤差雜訊等都能通過修正, 在硬件層面我們能用 FPGA可編程芯片對最底層的 I2S 訊號做修整, 利用算法把雜訊去除, 提升時基誤差jitter等.
播放軟件分別有 X86 及ARM架構的, 兩種在功能上都能滿足大部份需求,包括串流, 連接NAS等, 但自由度來說還是x86 配 arm終端更容易出好聲音
關於軟件:
剛才說到數播軟件大致可分為x86 及ARM架構, 而市面上大部份一體機都會用ARM平台開發,因為arm平台對電源供應相對簡單,成本便宜, 但也有一些高階機會用x86 作為硬件底層
合理地建構數播系統:
要把數播系統做好, 我們必需把系統最薄弱的環節優化好, 要合理的建構數字播放我們必需理解一個概諗, 把應該放的事物放到合理的地方, 什麼意思呢,比如我們用 roon 作為播放軟體, 那就把roon運行在一個最理想的環境上, 你如果把它放在 NAS 上運行肯定不如理想的, 因為一般家用NAS沒經過硬件優化, 使用的開關電源,嚴重劣化聲音, 網卡, CPU 等硬件, 系統底層也沒有針對聲音作出優化, 所以我們如果想要好音質必需要用一台優化好的主機來做 Roon core, 上面已提到電源對音響的重要性, 多路電源更能使聲音更立體化, 結像更清晰!!~
數播之連接方案選擇:
有很多新手在建構數播系統是都會用 USB 來連接解碼器, 首先USB 是異 步時鐘, 沒有同步時鐘, 其次, USB 是把源始PCM 訊號打包成Dop 封包, 如果優化有如”隔山打牛” , 沒做到根源上, 所以我們需要建構一套全 I2S 的數播系統, 能直接對I2S 源始訊號進行優化, 優化後的訊號也不必經過任何轉換, 傳統做法還需經過差分, AES 同軸等再進入解碼器, 我們能做到不必經轉換, 直接接入 DAC 內部, 加上同步時鐘, 比過時的USB , AES 同軸等有效提升音質 !!!~
傳輸協議之選擇:
數字播放系統誕生以來出現過很多不同的傳輸協議, 從古老的upnp , Logitech 的squeezebox , AIRPLAY , HQplayer 的 NAA , 再到Roon 公司的Raat , 直到近年興起的Diretta , Diretta 是日本一家軟體公司 MegaTech Electoronics LLC 開發出來的傳輸協定,目的是為了在 Music server 系統上,得到更高品質的數位音訊傳輸。「少量多餐」,耗電波動就小 他們發現,電源供應所產生的雜訊,會影播放品質。大家都知道這事,所以大家使用電容、電感,去設計最好的低通濾波器,把高頻雜訊給濾掉。可是,MegaTech 所做的不是在硬體端、類比端,而是透過平均每次處理的數位封包資料量,降低耗電波動。 他們的解釋是這樣:若把音樂伺服器當作 Host,把 DAC 視為 Target,他們所要做的,就是:
1. 平均化每次傳輸的資料封包;
2. 在固定的間隔時間內盡可能更頻繁地傳輸;
3. 因為每次傳輸資料量小,Target 端可以更容易處理資料;
4. Host 和 Target 端達成同步運作;
5. 傳輸由 Target 的緩衝區來控制;
6. Target 器材功率消耗的波動也隨之得到平均化(降至最小)。
這個,就是 Diretta。
說起來,似乎在「同步性」上,好像跟 USB 同步很類似。但 MegaTech 卻表示, Diretta 傳輸的速度都由 Host 定義,所以 Target 端不會改變速度。而 USB 同步目的在處理資料傳輸的同步性,卻非以平均化資料頻繁傳輸較小封包,達成降低功耗的目的。
用最頂針的時鐘系統技術:
全球第一個實現音頻采樣頻率自動調整輸出內部6路真同步時鐘系統,用上航天級的LMX2594 時鐘芯片,我們是全世界第二家用這款最高級別的時鐘芯片,第一個使用的是日本的頂級設備Soulnote D-3價值16萬元的設備,使用了一個全進口英國SC-CUT OCXO 晶振,並且做到四路主時鐘,兩路字時鐘,,最重要的一個黑科技就是這套時鐘系統可以根據音樂文件的采樣碼率來自動實時0延時的自動調整時鐘頻率的輸出 舉例(當音頻文件是44.1的情況下,時鐘會輸出11.2896,當音頻文件是48的情況下,時鐘會輸出12.288,當音頻文件是176的是,時鐘會輸出22.5792,當音頻文件是192時,時鐘會輸出24.576以此類推,每一個采樣不同時鐘的頻率隨之變化對應頻率輸出這樣可以很好的保證高質量的聲音還原得到最高品質的音源
支持外接高質量時鐘源,自動切換本地和外部時鐘輸入
全機時鐘重同步設計,全機所有時鐘相位同步一致,
有效消除常規設計中各個處理模塊時鐘可能由相位偏差而導致的出現抖動誤碼 數據系統時鐘采用抖動低至45fs RMS
品質因數 -236dBc/Hz 的高規級別時鐘芯片作為MCLK時鐘輸出 10MHz~100MHz下頻偏1Hz相位噪聲可達-129dBc/HZ~-102dBc/Hz,
RMS jitter可達36.2fs~41.6fs,頻率準確度0.001ppm~0.01ppm
MCLK輸出11.2896~24.576相位噪聲達到驚人的
10Hz -136dBc/Hz~130.1dBc/Hz
频率准确度 0.001ppm~0.005ppm