不曉得各位有沒有在 youtube 上看過一個 Sennheiser Factory Tour 的影片 (https://youtu.be/5es8zggYM7A?t=8m35s), 大概在8分40秒左右影片中的 HDVD 800 接到架子上中間一台 PXI 儀器進行量測, 從右邊數來第三片模組就是這篇文章的測試重點: pxi-4461 (http://sine.ni.com/nips/cds/view/p/lang/zht/nid/13634). 這玩意基本上是美商國家儀器數年前(National Instrument, 文後簡稱為NI) 為了工業上 sound&vibration 量測推出的24bit, ~200KS/s 資料擷取模組,有兩組類比輸出&輸入接口. 既然有類比輸出,那自然浮出一個問題:這板子是否可以拿來當成 DAC 玩?答案當然是肯定的, 不過這種低效益高成本的玩法一般人很難玩起來,正好小弟我工作上玩到不少 NI 的硬體,於是乎有機會在這樣的平台驗證一些關於 DAC 的猜想,手邊剛好有硬體的同好也不妨試著玩玩看。
先來簡單介紹一下我用來測試的系統:
1. NI PXI 機箱(主要用到一張 pxi-4461 當 DAC, 一張 pxi-4130 ;當 dc 電源, 負載 200mA 的時候漣波峰對峰應該小於 5mV , 拿來試推電供分離的usb DAC 或 DDC 很方便
2.耳擴與耳機:清逸倫 AT-f100 與阿仁 lotus HA-9. 前者用來推 K7XX (massdrop),後者是 W1000X 專用。
3.usb DAC: 樂之邦的 02 us dragon, MD30, 挑這家的來比主要是原理類似,都用了 FPGA FIFO 來處理 jitter 的問題, 大概都可以不用考慮進 dac前數位訊號 jitter 對音質的劣化。 MD30 這台網路上討論很少,最近趁著幾乎對砍價格入手新品(本來想拆機研究,但兜進系統聽起來舒服,用起來方便就捨不得動手了),覺得是台CP值不錯的機子(建議只用 usb 跟 line out 就好, spdif 輸入雖然架構上一樣過 FPGA FIFO 但是聽起來就是不討喜,猜想韌體一定有問題 )。
4.類比線材:鐵三角 AT564A (很百搭的線)
開始前先讓大家有個概念,02 us dragon 用的 USB 晶片跟 md30 完全相同,不過要輸出 spdif 同軸&光纖數位訊號或者I2S 餵給dac晶片時參照的振盪器精度差很多,md30 用了 1ps 精度VCXO 但是要焊線從 pcb 拉出訊號才能量測,所以就用 02 us dragon 的同軸接 AT564A 轉 BNC 直接餵給示波器(500MHz)看眼圖大概了解一下 jitter 的狀況:
受限於老舊的量測設備(取樣率只有 2GS/s, equiv. mode 最高只有 100GS/s)其實也只能推測 jitter 的 rms 值在 100ps 的級別,我認為已經是很不錯的數字了,當成 DDC 來用完全對得起它的價格(耳擴功能與dac最好直接無視,評語就是乾癟沒有活力)。樂之邦的東西難聽是類比調音差(LPF, I/V) , 有能力DIY的話應該都可以改出自己想要的效果。外接dc電供的部份也很有趣,接上(大概 12V 30mA)後反而會讓電壓雜訊略為增加(10mV 的程度),但是對 jitter 影響不大。最近其實弄了 1m-10m 的光纖線打算來做 pc->02 US dragon -> MD30 的A/B測試,不過不是本文重點就先不提了。
接下來談談 pxi-4461 的架構:
接下來談談 pxi-4461 的架構:
基本上這個模組在類比輸出有一個1024 點的 FIFO 從 pc 端撈資料,再透過 DDS 模組合成出 DAC 需要的頻率,整個 FIFO 包含一些數位信號處理都是由板子裡幾個 FPGA & DSP 單元構成。既然都用了FIFO 那麼 pc OS 端造成的 latency 就不是那麼重要(程式方面我採取的作法是把 wave 檔讀成 24bit 的數值陣列整包放到記憶體去,沒記錯的話pxi-4461 藉由 DMA 的方式透過主機板直接向記憶體要資料放進自己的FIFO裡,所以只要考慮自己 DDS 產生的jitter 就好) 整個模組事實上可以放到 real time OS 去做但是完全沒必要 。當然我也手賤拆了它研究 DAC 部份到底用那家的晶片(撇開製造商不談,我大概是下游使用者中少數敢拆這玩意)
這張卡是五年甚至更早之前推出的產品,採用 PCM1738 大概也不是當時最頂尖的規格(正好符合 24bit, 200K S/s 的要求),搭配的 OP 幾乎都是TI OPA系列的低雜訊放大器。不過我認為整個模組最厲害還是它的電源設計,包含整個工業電腦機箱(幾乎一半的體積都拿來塞電供,什麼CAT+線性電源都是浮雲,真的預算無上限大推 NI 的 PXI 機箱,抗噪跟穩定度突破天際) 。
類比線路有三組 programmable 的 attenuator (最高 +-10V, 20mA 輸出),音色大致上受這段影響,可惜幾乎沒辦法做更動(改下去整張卡就廢了,就算二手品還是有三、五萬台票的價值,心臟沒那麼大)。儀器另外一個好處是規格列的清清楚楚,THD,dynamic range,Spurious Free Dynamic Range 還有flatness什麼的規格書上都有列 (畢竟是可以送回原廠校驗的玩意)
總之最後就寫了個簡單的播放程式(用labivew,ni 用來綁硬體的儀器控制程式語言),由於內部函式庫參數限制一次最多只能塞 2^24 個資料點到記憶體(以 96KHz 取樣率的訊源來說差不多 150-160秒),等於每150秒就會出現一次 50ms 左右的靜音時間(重新呼叫硬體配置 FIFO 的時間),雖然不滿意但是作為測試也足夠了。音量調整直接在 PC 端對 16 or 24bit 數值做乘除運算所以幾乎可以保證使用到 DAC 完整的動態範圍(比如說設定無衰減的時候就把輸出電壓極值放到 +-10V, 20dB 衰減就設為 +-1V)
labview 內建函數只能讀取 wav 檔也是美中不足之處,配合內建的 attenuator 其實蠻適合用來測試一些耳擴極限狀態的輸出(沒辦法很多時候就是手賤想把音量 VR轉到最大試試它的能力)。source code 如下圖示,labview coder 參考一下很快就能寫類似的東西(要弄到硬體比較難)
最後討論一下聽感,比對下面兩組配置
a. foobar2000 ASIO -> USB -> MD30 -> RCA線 AT564A -> AT-F100 -> K7XX
b. labview -> pxi-4461 -> BNC 轉 RCA -> ->RCA線 AT564A -> AT-F100 -> K7XX
測試曲 96kHz 24bit 的有 The Ultimate Headphone Demonstration Disc,和樂器的八奏繪卷(豪華絢爛 box USB碟裡頭有高取樣版,八奏版千本櫻有多混很多音軌進來,用這張專輯聽起來爽不爽,能不能久聽去做系統調音會得到很好玩的結果); Hotel California "they just can't kill the beast " 那一段不同取樣率的版本; String Quartet in D, Op.76,No.5 -finale- presto (Hayden); 奇美 Violin Favourites vol.4; Symphony No.9, in E Minor 很多版本。
a 組合的亮點就是 MD30 1ps precision clock + AD1955 (OP 還沒改),耐聽又不失解析的聽感(缺點就是不夠通透),能夠充分發揮 K7XX 的舒適感的工作用配置(桃園又很冷,耳罩保暖效果超好)。相較之下 b 組合會更加凸顯出耳擴+耳機的特性:配 at-f100 就超熱情,配 HA-9 +w1000x 就多了點輕快與鐵家木殼怪異的音染,String Quartet 聽起來更對味。整體而言 4461 帶給耳朵的疲勞度較大,人聲相對較難突顯出來,我將其定義為很乾淨的中性訊源。硬體上 interpolation filter 大概有點效果,44.1KHz, 96 KHz, 192KHz 重現起來的效果並沒有顯著的差異(不過大概是耳朵等級不夠,但是相對其他 DAC 來說差異度相對小)
其實本來是想用這個量測模組兜一個量測平台來量自製擴跟前級放大電路的訊噪比,頻率響應跟 cross talk 之類的,不過先挑了比較簡單(好玩)的題目來練手,接下來還計畫直接用NI的 FPGA 模組(這也是很奢侈的玩具,不過手頭有) 來打造自己的 DAC (用內建的16-bit R-2R ladder dac 或者輸出 I2S 控制外部 dac),根據我短短的工作經驗,最難搞的始終都是電源跟類比那一塊(感覺完全是經驗取向的領域了)
a. foobar2000 ASIO -> USB -> MD30 -> RCA線 AT564A -> AT-F100 -> K7XX
b. labview -> pxi-4461 -> BNC 轉 RCA -> ->RCA線 AT564A -> AT-F100 -> K7XX
測試曲 96kHz 24bit 的有 The Ultimate Headphone Demonstration Disc,和樂器的八奏繪卷(豪華絢爛 box USB碟裡頭有高取樣版,八奏版千本櫻有多混很多音軌進來,用這張專輯聽起來爽不爽,能不能久聽去做系統調音會得到很好玩的結果); Hotel California "they just can't kill the beast " 那一段不同取樣率的版本; String Quartet in D, Op.76,No.5 -finale- presto (Hayden); 奇美 Violin Favourites vol.4; Symphony No.9, in E Minor 很多版本。
a 組合的亮點就是 MD30 1ps precision clock + AD1955 (OP 還沒改),耐聽又不失解析的聽感(缺點就是不夠通透),能夠充分發揮 K7XX 的舒適感的工作用配置(桃園又很冷,耳罩保暖效果超好)。相較之下 b 組合會更加凸顯出耳擴+耳機的特性:配 at-f100 就超熱情,配 HA-9 +w1000x 就多了點輕快與鐵家木殼怪異的音染,String Quartet 聽起來更對味。整體而言 4461 帶給耳朵的疲勞度較大,人聲相對較難突顯出來,我將其定義為很乾淨的中性訊源。硬體上 interpolation filter 大概有點效果,44.1KHz, 96 KHz, 192KHz 重現起來的效果並沒有顯著的差異(不過大概是耳朵等級不夠,但是相對其他 DAC 來說差異度相對小)
其實本來是想用這個量測模組兜一個量測平台來量自製擴跟前級放大電路的訊噪比,頻率響應跟 cross talk 之類的,不過先挑了比較簡單(好玩)的題目來練手,接下來還計畫直接用NI的 FPGA 模組(這也是很奢侈的玩具,不過手頭有) 來打造自己的 DAC (用內建的16-bit R-2R ladder dac 或者輸出 I2S 控制外部 dac),根據我短短的工作經驗,最難搞的始終都是電源跟類比那一塊(感覺完全是經驗取向的領域了)