Keith Howard測(cè)試了在Chord Electronics DAC,尤其是M Scaler里面發(fā)現(xiàn)的Rob Watts超長(zhǎng)濾波器背后的設(shè)計(jì)理念。
這是一個(gè)有趣的歷史巧合,1948 年既是哥倫比亞唱片公司宣布黑膠誕生的年份,也是Claude Shannon的著名論文通信數(shù)學(xué)理論 [1] 的發(fā)表年份,該論文描述了信號(hào)采樣的數(shù)學(xué)基礎(chǔ),從而描述了數(shù)字音頻。現(xiàn)在已經(jīng)公認(rèn)Shannon實(shí)際上并不是第一個(gè)研究該領(lǐng)域的人。其他人,包括英語數(shù)學(xué)家Edmund Whittaker早先已經(jīng)闡明了全部或部分理論。但是Shannon的論文真正開啟了信息論領(lǐng)域并鋪平了道路 – 等待必要的技術(shù)進(jìn)步 - 各種連續(xù)信號(hào)的數(shù)字化,而不僅僅是音頻波形。
很少有發(fā)燒友了解這個(gè)數(shù)學(xué)領(lǐng)域或其對(duì)音頻信號(hào)的潛在應(yīng)用,直到1972年開始,BBC開始用13位Nicam PCM 數(shù)字音頻鏈路取代其信號(hào)傳送器的音頻固定電話,該鏈路以32kHz采樣率進(jìn)行壓擴(kuò)(壓縮傳輸并隨后在接收時(shí)擴(kuò)展)。第一個(gè)是從Broadcasting House到位于North Kent的Wrotham信號(hào)傳送器,于當(dāng)年9月14日開始運(yùn)行,然后通過網(wǎng)絡(luò)逐步擴(kuò)展。在1970 年代后期,第一批質(zhì)量不錯(cuò)的數(shù)字錄音機(jī)被開發(fā)出來供Denon和Decca等先鋒唱片公司使用。隨后在1982/3 年,CD 出現(xiàn)了 — 這是第一個(gè)數(shù)字音頻音樂載體。
鑒于CD在歐洲上市已經(jīng)35年了,您可能會(huì)認(rèn)為大多數(shù)發(fā)燒友現(xiàn)在已經(jīng)牢牢掌握了采樣理論的基礎(chǔ)知識(shí),但實(shí)際上它仍然被廣泛誤解。如果Chord Electronics的數(shù)字設(shè)計(jì)顧問Rob Watts是正確的,那么這里面不僅包括音頻愛好者,還有音頻專業(yè)人士。多年來,Watts 一直反對(duì)在高過采樣DAC中使用相對(duì)較短(有時(shí)非常短)的數(shù)字濾波器的傳統(tǒng)音頻行業(yè)做法。隨著技術(shù)的發(fā)展,他的濾波器變得越來越長(zhǎng)。他說,每增加一次濾波器長(zhǎng)度,音質(zhì)就會(huì)提高。
Watts長(zhǎng)期尋求實(shí)現(xiàn)足夠長(zhǎng)濾波的濾波器,在7月的倫敦CamJam秀上,Chord推出了最新的Electronics M Scaler(參見Box-out),一種數(shù)字輸入、數(shù)字輸出上采樣器,首次配有超過一百萬個(gè)filter taps,即采用的線性相位FIR(有限脈沖響應(yīng))插值濾波器有超過一百萬個(gè)系數(shù):準(zhǔn)確地說是1,015,808。為了正確看待這個(gè)數(shù)字,大多數(shù)過采樣DAC使用的濾波器長(zhǎng)度最多為幾百個(gè)taps(系數(shù))。甚至Dave作為Chord當(dāng)前最好的獨(dú)立DAC,“僅”使用 164,000 個(gè)filter taps。
要了解Watts對(duì)更長(zhǎng)插值濾波器的不懈追求 — 每一步都已拉開他與公認(rèn)的行業(yè)實(shí)踐之間的差距 — 這需要回到基本原理:即Shannon的采樣理論,特別是“sinc”函數(shù)。
圖1. sinc(x)函數(shù)的中心部分
Sinc(x)是函數(shù)sin(x)/x的數(shù)學(xué)簡(jiǎn)寫,它看起來(在其中心部分)如圖1所示。x軸(水平軸)被標(biāo)記為“采樣間隔”的原因很快就會(huì)變得顯而易見。Shannon在他著名的論文中表明,任何帶限連續(xù)信號(hào) — 即任何對(duì)其最大頻率有嚴(yán)格限制的模擬信號(hào) — 都可以準(zhǔn)確地描述為時(shí)間間隔sinc(x) 的總和波形。
不僅如此,如果對(duì)信號(hào)進(jìn)行采樣,即如果以固定間隔至少兩倍于最高信號(hào)頻率的速率測(cè)量其幅度,則每個(gè)采樣幅度表示以該采樣點(diǎn)為中心的相關(guān)sinc(x)波形。在所有其他采樣點(diǎn),該值特定的sinc(x) 函數(shù)為零,就像以彼此為中心的sinc(x) 函數(shù)的采樣值在這里為零一樣。因此,如上所述對(duì)波形進(jìn)行采樣可以提取所有必要的信息來重建它,并完全準(zhǔn)確地這樣做。
這就是模數(shù)轉(zhuǎn)換過程,這是完全可行的。我們必須添加的所有內(nèi)容確保在實(shí)踐中實(shí)現(xiàn)幅度測(cè)量的量化,以便每個(gè)樣本值可以用若干個(gè)有限的長(zhǎng)度來表示。
相比之下,波形重建過程 — 數(shù)模轉(zhuǎn)換 — 就沒有那么簡(jiǎn)單了。在理想的世界中,這將通過為每個(gè)采樣點(diǎn)生成適當(dāng)幅度的脈沖并將規(guī)則間隔的脈沖序列通過理想的低通濾波器來實(shí)現(xiàn),其通帶上邊緣設(shè)置為采樣率的一半。這種濾波器的脈沖響應(yīng)是sinc函數(shù),因此每個(gè)脈沖都會(huì)生成一個(gè)具有必要幅度的sinc波形,并且一系列sinc函數(shù)將相加以重新創(chuàng)建原始波形。
不僅如此,如果對(duì)信號(hào)進(jìn)行采樣,即如果以固定間隔以至少兩倍于最高信號(hào)頻率的速率測(cè)量其幅度,則每個(gè)采樣幅度表示以該采樣點(diǎn)為中心的相關(guān)sinc(x)波形。在所有其他采樣點(diǎn),該值特定的sinc(x) 函數(shù)為零,就像以彼此為中心的sinc(x) 函數(shù)的值采樣一樣點(diǎn)在這里為零。因此,如上所述對(duì)波形進(jìn)行采樣可以提取所有必要的信息重建它,并完全準(zhǔn)確地這樣做。
這就是模數(shù)轉(zhuǎn)換過程,而且是完全可行的。為了使其在實(shí)踐中可實(shí)現(xiàn),我們必須添加的只是幅度測(cè)量的量化,以便每個(gè)樣本值可以由多個(gè)有限長(zhǎng)度表示。
相比之下,波形重建過程 — 數(shù)模轉(zhuǎn)換 — 就沒有那么簡(jiǎn)單了。在理想的世界中,這將通過為每個(gè)采樣點(diǎn)生成適當(dāng)幅度的脈沖并將規(guī)則間隔的脈沖序列通過理想的低通濾波器來實(shí)現(xiàn),其通帶上邊緣設(shè)置為采樣率的一半。這種濾波器的脈沖響應(yīng)是sinc函數(shù),因此每個(gè)脈沖都會(huì)生成一個(gè)具有必要幅度的sinc波形,并且一系列sinc函數(shù)將相加以重新創(chuàng)建原始波形。
圖 2. sinc(x) 函數(shù)的求和 - 每個(gè)信號(hào)樣本一個(gè) - 構(gòu)建出采樣點(diǎn)之間的波形
這在圖2中進(jìn)行了說明,其中顯示了六個(gè)不同幅度的連續(xù)sinc函數(shù)及其總和(黑色軌跡)。每個(gè)sinc函數(shù)對(duì)其他采樣點(diǎn)的總信號(hào)幅度沒有任何貢獻(xiàn),但對(duì)采樣點(diǎn)之間的波形有貢獻(xiàn)。人們假設(shè)采樣點(diǎn)之間的波形是不可知的,這是對(duì)采樣的一個(gè)常見誤解,事實(shí)并非如此 — 前提是輸入信號(hào)是帶寬受限的,并且采樣速度至少是Shanon采樣過程要求的最高分量頻率的兩倍。在那種情況下,可以明確地重建采樣點(diǎn)之間的波形。重要的是,波形不僅取決于附近的樣本值,還最終取決于整個(gè)采樣信號(hào)的樣本模式。
在實(shí)踐中,這種理論上的DAC方案是不可行的,原因有二。首先,理想的低通濾波器在通帶邊緣具有無限滾降率, 這僅存在于抽象中 — 在現(xiàn)實(shí)世界中,濾波器的滾降率總是有限的,它只能近似。其次,即使完美的低通濾波器不是夢(mèng)想,這種方法也會(huì)提供不足的信噪比,因?yàn)槊總(gè)脈沖中包含的能量很小。
在現(xiàn)實(shí)世界的DAC中,必須做到兩個(gè)妥協(xié)。首先每個(gè)樣本的幅度不表示為脈沖,而是表示為在整個(gè)采樣周期內(nèi)保持的階段。這種“采樣和保持”過程消除了信噪比問題,但會(huì)導(dǎo)致不平坦的頻率響應(yīng)逐漸向奈奎斯特頻率(采樣率的一半)滾降。修復(fù)微不足道:滾降可以并且通常是通過以下方式糾正均衡。我已經(jīng)提到的第二個(gè)妥協(xié)。由于無法實(shí)現(xiàn)理想的低通濾波器,因此必須替換滾降速率較慢的濾波器 — 這樣就無法提供sinc(x) 脈沖響應(yīng)。
習(xí)慣性地解決最后一個(gè)問題的方式就是忽略它。模擬輸出濾波器(或在過采樣系統(tǒng),數(shù)字插值濾波器)被認(rèn)為是足夠的,如果它達(dá)到足夠好的頻域性能,即足夠平坦的通帶響應(yīng)和足夠的衰減出現(xiàn)在奈奎斯特頻率之上的圖像頻率。圖3顯示了頻率響應(yīng)一個(gè)示例插值濾波器(使用著名的Parks-McClellan等波紋逼近法)用于具有以下規(guī)格的44.1kHz數(shù)據(jù)的4倍過采樣:
通帶上限頻率 20kHz
通帶紋波 0.01dB
阻帶低頻 24kHz
阻帶衰減 100dB
生成的FIR濾波器具有 215 個(gè)系數(shù)(taps),并且由于它是線性相位,因此具有時(shí)間對(duì)稱的脈沖響應(yīng)。奈奎斯特頻率 (22.05kHz) 的衰減約為10dB。濾波器脈沖響應(yīng)如圖4所示,覆蓋了圖1的sinc函數(shù),但此處跨越更寬范圍的采樣間隔以適應(yīng)濾波器系數(shù)的數(shù)量。圖5重復(fù)了圖4的數(shù)據(jù),但以分貝幅度標(biāo)度表示。
從這兩個(gè)圖中可以清楚地看出,插值濾波器 — 盡管它滿足代表性頻域標(biāo)準(zhǔn) — 具有與 sinc(x) 函數(shù)完全不同的脈沖響應(yīng),而不僅僅是因?yàn)樗獭?/p>
圖5. 圖4的再現(xiàn)版,但這次使用分貝幅度刻度
圖5強(qiáng)調(diào)了一個(gè)重要的點(diǎn):sinc(x)函數(shù)的包絡(luò) — 對(duì)于x值從負(fù)無窮大到正無窮大的有限值 — 隨時(shí)間緩慢衰減。在距其中心峰值150個(gè)采樣間隔處,包絡(luò)僅衰減了50dB多一點(diǎn)。顯而易見的問題是:它必須衰減多少才能使其對(duì)樣本間波形的貢獻(xiàn)變得微不足道?
這不是一個(gè)能直接回答的問題,但如果我們說100dB,為了使0dBFS(滿量程)樣本的包絡(luò)幅度低于16位本底噪聲,我們可以輕松計(jì)算出需要哪些同步函數(shù)的摘取。同步函數(shù)的包絡(luò)僅由sin(x)/x的分母確定,因此它表現(xiàn)為1/x,其中x = Nπ(弧度角),這里的N是遠(yuǎn)離中心峰值的采樣間隔數(shù)。包絡(luò)從其峰值1/x = 0.000001下降100dB,相當(dāng)于N = 31,831。這中央峰的任一側(cè)都需要樣本長(zhǎng)度,因此sinc(x)摘取的總長(zhǎng)度是其兩倍。換句話說,對(duì)于44.1kHz采樣率,所需的sinc函數(shù)摘錄的總長(zhǎng)度為1.443秒 — 非常接近Chord的M Scaler提供的濾波器長(zhǎng)度。
簡(jiǎn)而言之,這解釋了Watts對(duì)前所未有的長(zhǎng)插值濾波器的追求,他使用所謂的窗函數(shù)插值技術(shù)設(shè)計(jì)了這些濾波器。正如前一段所說的,這涉及從sinc 函數(shù)的中心提取一個(gè)數(shù)據(jù)塊,但為了獲得最佳結(jié)果,這個(gè)過程需要比簡(jiǎn)單的sinc函數(shù)值的“提升”和余數(shù)的截?cái)喔⒚睢H绻麑?duì)提取的sinc函數(shù)進(jìn)行加窗處理(即成形)以避免在任一端突然截?cái),則會(huì)獲得更好的結(jié)果。Watt的WTA (Watts Time Alignment) 加窗算法是一項(xiàng)嚴(yán)密保護(hù)的秘密,隨著濾波器長(zhǎng)度的增加,它不得不進(jìn)行改進(jìn),但它的名字表明了 Watts 的主要設(shè)計(jì)標(biāo)準(zhǔn):保持準(zhǔn)確的瞬態(tài)時(shí)序。
據(jù)我所知,沒有其他設(shè)計(jì)師沿用Watts的方法?紤]到Watts幾十年來一直走在孤獨(dú)的道路上,你可以想象這樣做是一項(xiàng)艱巨的任務(wù)。但如果有人想嘗試 — 特別是考慮到Chord的數(shù)字產(chǎn)品廣受好評(píng) — 他們會(huì)怎么做?
首先要做的是說服自己Watts的方法是正確的。做到這一點(diǎn)最簡(jiǎn)單的方法自然是聆聽Chord 的產(chǎn)品,最好是選擇它們來繪制增加濾波器長(zhǎng)度的過程。但還有另一種方法,它比購(gòu)買一套 Chord設(shè)備便宜得多,而且比對(duì)FPGA進(jìn)行編程的主要步驟要容易得多。那是在軟件中離線執(zhí)行sinc插值。
10多年前,我第一次編寫了一個(gè)軟件實(shí)用程序來執(zhí)行此操作 — 與FPGA編程相比,這絕對(duì)是輕而易舉的事情。問題是該程序需要很長(zhǎng)時(shí)間才能運(yùn)行比短音頻文件更長(zhǎng)的文件,因?yàn)樗枰?jì)算 (U-1) × N2 sin(x)/x的值,其中U是過采樣因子,N是文件中的樣本數(shù)。這是針對(duì)每個(gè)頻道的。但就像我說的,它很容易操作,而且很便宜,它允許您生成和收聽使用全正弦插值過采樣的文件,在這方面它甚至比M Scaler 更好。獲得文件后,可以將其用作參考,用于試聽使用不同設(shè)計(jì)的有限長(zhǎng)度插值濾波器生成的其他文件。
這里向您展示一個(gè)示例,我使用短(0.98 秒)單聲道、44.1kHz/16位WAV 文件運(yùn)行代碼,該文件包含在大鍵琴上演奏的單個(gè)音符。對(duì)于4倍過采樣,處理(使用64位浮點(diǎn)運(yùn)算并生成24位輸出WAV文件)耗時(shí)295 秒 — 超過300倍實(shí)時(shí) — 在我老化的臺(tái)式計(jì)算機(jī)的單個(gè)處理器內(nèi)核上運(yùn)行。
圖6疊加了原始文件(紅色軌跡)和過采樣文件(藍(lán)色軌跡)的頻譜,顯示 (a) 通過通帶時(shí)兩者重疊,并且 (b) sinc插值確實(shí)會(huì)導(dǎo)致22.05kHz的磚墻低通濾波,高于該頻率的本底噪聲是由于抖動(dòng)造成的。(原始文件使用4096點(diǎn)FFT進(jìn)行分析,插值文件使用16,384點(diǎn)FFT 進(jìn)行分析,以確保頻譜具有相同的頻率分辨率。)
圖 6. 在豎琴和弦上演奏的單個(gè)音符的簡(jiǎn)短錄音頻譜。紅色軌跡是 44.1kHz/16-bit 原始文件,藍(lán)色軌跡使用全正弦插值生成的4倍過采樣版本
過去我曾建議,雖然以前從未發(fā)布過,但可以使用重量級(jí)數(shù)字運(yùn)算的人可能會(huì)使用它來創(chuàng)建一個(gè)易于訪問的sinc插值音樂文件緩存,這正是為了開發(fā)改進(jìn)的插值濾波器。這可能不是一種可能會(huì)讓你登上《時(shí)代》雜志封面的行為慈善事業(yè) — 但發(fā)燒友可能會(huì)永遠(yuǎn)尊敬你的名字。有人對(duì)此感興趣嗎?
參考文獻(xiàn)
1) Shannon, C E. 《A Mathematical Theory of Communication》, Bell System Technical Journal (1948).
圖片
Chord Electronics M Scaler
我有一種感覺,M Scaler將被證明是2018年最重要的,也可能是最有爭(zhēng)議的產(chǎn)品之一。它肯定會(huì)引起那些已經(jīng)發(fā)現(xiàn)Rob Watts的DAC設(shè)計(jì)更勝一籌的人的興趣。
M Scaler所做的就是將Chord Blu MkII升頻CD轉(zhuǎn)盤的過采樣技術(shù), 以不到一半的價(jià)格封裝在40.5×235×236mm(hwd)、2.55kg的盒子中。 數(shù)字輸入可通過兩個(gè)BNC插座上的同軸S/PDIF 獲得,光纖S/PDIF可通過兩個(gè)Toslink插座和通過B型連接器的USB實(shí)現(xiàn),以適應(yīng)各種數(shù)字源。輸出通過352.8/384kHz的單BNC、176.4/192kHz的光學(xué)S/PDIF或通過705.6/768kHz的雙BNC插座與Qutest、Hugo TT2或Dave搭配使用以獲得完整性能。
M Scaler中的關(guān)鍵組件是Xilinx XC7A200T FPGA(現(xiàn)場(chǎng)可編程門陣列)芯片,它提供740個(gè)DSP內(nèi)核。Watts最新的濾波器架構(gòu)(也用于Hugo TT2)采用了528個(gè)以4096倍采樣頻率運(yùn)行的內(nèi)核,包含50萬行控制代碼并在計(jì)算中使用56位分辨率。提供直通選項(xiàng)以允許對(duì)輸入和輸出進(jìn)行即時(shí)比較,并通過增益校正確保電平?jīng)]有差異。[過采樣可能會(huì)導(dǎo)致插值樣本值超過0dBFS(滿量程),需要降低增益以適應(yīng)它們。] 對(duì)512,000 taps的初始測(cè)試給出了Watts所描述的與Dave的164,000 taps相比“完全出乎意料”的改進(jìn)幅度, 因此目標(biāo)被提高到超過一百萬次taps。在705.6/768kHz輸出采樣率 (16×44.1/48kHz) 下,這意味著當(dāng)M Scaler對(duì)第一個(gè)樣本執(zhí)行計(jì)算時(shí),延遲(輸入和輸出之間的延遲)約為0.6秒。因?yàn)楫?dāng)音頻伴隨視頻時(shí)這種延遲會(huì)導(dǎo)致令人無法接受的口型同步問題,M Scaler提供了一個(gè)視頻輸入,它使用非對(duì)稱插值濾波器來將延遲減少到可接受的0.1秒。
由此獲得的音質(zhì)優(yōu)勢(shì)是什么?Watts說,更長(zhǎng)的濾波器提高了瞬態(tài)準(zhǔn)確度,使樂器音色更清晰,低音收緊,并“戲劇性地”展開了聲場(chǎng)。“在你聽過 M Scaler 之后”,他說,“很難再聽得下Hugo TT2或Dave。”他對(duì)更多濾波器taps的渴望現(xiàn)在得到滿足了嗎?并沒有:“我的直覺是我們需要更進(jìn)一步發(fā)展。”