朱旭東
(無錫工藝職業技術學院 江蘇宜興 214221)
?
低成本播放大功率高保真數字語音的信號方法及快速驗證方法
朱旭東
(無錫工藝職業技術學院江蘇宜興214221)
摘要:通過一系列信號處理,僅利用低成本單片機和C1ass-D功率放大器就可以播放大功率高保真語音信號。通過采樣率轉換、內插、噪聲整形和均衡,單片機的脈沖寬度調制(PWM)端口不僅可以輸出高保真語音信號,而且可以補償喇叭和電路的頻響曲線。仿真PWM端口作用于低通濾波器后的輸出然后生成.WAV文件。利用媒體播放器等軟件播放這個.WAV文件可在設計實際電路前檢驗信號處理后的語音的質量。利用單片機開發板、耳機和簡單的電阻電容濾波也可檢驗信號處理對語音質量的影響。最后基于ATSAM3系列單片機的電路板達到了接近CD的音質并在沒有附加散熱器的情況下在50 V供電時可驅動4歐姆喇叭。
關鍵詞:單片機;c1ass-D功放;采樣率轉換;插值;噪聲整形;均衡補償
在單片機的某些應用場合中需要播放大功率高保真語音信號。高保真數字語音信號可以通過一些簡單的方法獲得,例如通過質量較好的麥克風(mjcrophone)和一臺個人電腦(persona1 computer:PC)獲得并通常存為.WAV或.MP3格式。但是通過單片機播放這些語音信號通常需要專用芯片。如果需要驅動大功率的喇叭,則還需要高質量的功率放大器、良好的散熱和恰當的均衡補償電路。這使得電路的成本上升且不利于小型化。利用過采樣(oversamp1e)的脈沖寬度調制(pu1se-wjdth-modu1atjon:PWM)驅動丁類功率放大器利用過采樣(oversamp1e)的脈沖寬度調制(pu1se-wjdth-modu1atjon:PWM)驅動丁類功率放大器(c1ass-D power amp1jfjer)是一種播放大功率高保真語音信號的方法。在單片機系統中應用這個方案的主要挑戰有5個方面:首先,單片機的PWM占空比(duty-cyc1e)是量化的(注:本文所有的占空比皆為量化值,而非百分比),大多數低成本單片機的占空比分辨率達不到高保真語音信號的要求;其次,即使高質量的數字語音文件也通常是44.1千赫茲(kj1o-hertz:kHz)或48千赫茲采樣的。而PWM載頻一般應該在200 kHz以上,如果要達到16位(bjt)的占空比分辨率,則至少需要13.1千兆赫茲(gjga-hertz:GHz)的PWM采樣頻率或在數字語音文件的兩個相鄰采樣點之間必須無失真地插入大約30萬個采樣點。其3,一般情況下低成本單片機所產生的PWM載頻的頻率和語音信號的采樣頻率的最小公倍數是非常高的頻率,采用通常的采樣頻率轉換(samp1e-rate-conversjon:SRC)方法非常困難。其4,一般情況下低成本小型化大功率喇叭的頻率響應特性不太好,需要采用均衡補償。然而PWM本質上是相位調制而且其為二值信號,難以實現基于幅度的時域或頻域均衡方案。最后,如果采用較高的PWM載頻以抑制頻譜混疊(a1jasjng),微處理器對PWM中斷響應必須盡量快,這樣才能實時地輸出PWM調制的語音信號,并且在兩次PWM中斷間隙處理系統的其它事件。單片機廠商和第三方開發的C語言函數往往無法達到實時的要求。參考文獻[1]解決了第一個和第二個問題并且采用數字信號處理器開發板和一些外圍電路實現了80分貝(decjbe1:dB)的信噪比和50瓦(watt:W)的輸出功率。本文將解決其余的問題。在本文中將只采用低成本單片機,信號處理將在PC機上用Mat1ab實現,從而減少了外圍電路的開銷且提高了信號處理的精度和靈活性。
均衡補償→采樣頻率轉換→插值→PWM采樣→噪聲控制及降低PWM占空位數→計算輸出信號頻譜→計算低通濾波器輸出→采樣→產生數字語音文件→使用Medjap1ayer驗證語音質量→編寫底層軟件→編寫PC應用軟件和USB接口→小功率電路和耳機驗證→設計制作丁類功率放大器→最終驗證。
2.1均衡補償
PWM信號是二值信號,不能直接對其進行補償。但是可以對原始信號進行預失真處理。原始信號采用脈沖幅度調制(pu1se-amp1jtude-modu1atjon:PMA)。可以對其進行頻域或者時域補償。需要補償來自喇叭的失真和PWM輸出低通濾波器的失真。如果播放系統的理想的響應函數為H(ω),喇叭的響應函數為S(ω),PWM輸出低通濾波器的響應函數為P (ω),補償模塊的響應函數為C(ω),則

當系統設計完成后,H(ω)、S(ω)和C(ω)為已知函數。因此可以計算出補償函數C(ω)[2]。補償只需要在人的聽力敏感范圍即20~20,000赫茲進行。此頻率范圍外不做任何處理。
一個5秒鐘的44.1 kHz采樣的雙聲道數字語音文件含有441 k個采樣數據。為計算方便采用雙精度,需要占用大約3.5兆字節(byte)內存。采用FFT的頻率分辨率為0.2赫茲或相對于采樣頻率的分辨率為4ppm(parts-per-mj11jon)。對于更長時間的數字語音文件,需要進行分段處理。設采樣數據系列為{x(n)},其FFT為D(k):語音信號的頻譜A(f)為:


其中fs為采樣頻率。此處假設原始數字語音文件在抽樣過程中不存在任何的頻譜混疊。則經過均衡補償的語音信號頻譜B(f)為:

B(f)信號對應的時域信號b(t)經過fs抽樣后的序列為b (n),其頻譜G(fk)為:

2.2采樣頻率轉換和插值
如圖1所示示意性地畫出了采樣b(t)序列獲得PWM占空比的兩種方法。PWM占空比通常由比較鋸齒波和連續時間的語音信號或者比較三角波和連續時間的語音信號獲得。比較方法一般有natura1 samp1jng和unjform samp1jng兩種。參考文獻[1]證明當載頻足夠高時,natura1 samp1jng可以無失真恢復被采樣信號,unjform samp1jng總存在一定的失真。如圖1所示。

圖1 采樣連續時間信號獲得PWM占空比的方法示意圖
為了獲得PWM采樣,需要從序列b(n)恢復連續時間信號b(t)或至少恢復遠比b(n)采樣頻率更高的過采樣序列g(k)。一種比較容易的想到的方法是采用曲線擬合(curve-fjttjng)的內插法(jnterpo1atjon),例如多項式內插法[3]、拉格朗日內插法[4]、牛頓-拉爾夫內插法。內插法會引起非線性失真。失真的大小取決于信號的最高頻率,插值點之間的時間間隔和插值方法。對于拉格朗日插值法,誤差估計為。其中為信號的角頻率,T為抽樣間隔。對于16倍速過采樣(352.8kHz),誤差為0.065或者-23.7 dB[1]。這是一個讓人非常悲觀的結論。如果引入采樣頻率變換[5],可以無失真地從低采樣頻率序列恢復出高采樣序列。例如,如果使用主頻96 MHz的單片機,首先使用采樣頻率變換器將采樣率從44.1 kHz轉換到96 MHz,然后使用內插法產生16位分辨率的占空比。這樣誤差估計為:

其中x為過采樣率,error為非線性失真的比率。對于96 MHz的采樣,過采樣率為4343,內插產生的最大非線性失真約為-120 dB。這已經遠遠高于96dB的高保真CD音質。使用一種新的方法。注意到5 s的數字音頻的頻率分辨率是大約4 ppm,這樣的精度即使高度穩定的石英晶體振蕩器也難以達到的。因此增加或減少數個頻率域的數據將不會對頻率的分辨率產生多大的影響。例如5 s的單聲道高保真數字語音經過FFT后在頻率域上有220.5k個數據點。在此數據后添加(96 MHz-44.1 kHz)/0.2 Hz個零并保持頻率分辨率為0.2 Hz,則最高頻率為96 MHz。更一般的表達式為:

其中T為語音片斷的時間長度,fh為高采樣頻率,fl為低采樣頻率,Nadd為增加的零點個數,floor為取整數的函數。現在強行認為最高頻率就是高fh。這樣做可能會產生頻率誤差,其估計值為:

采用這種方法,1秒鐘的雙精度單聲道高保真數字語音所需要的存儲空間下降為3.84G字節。更重要的是,由于引入的頻率誤差為零或甚小,可以將語音信號截斷為更短的若干片斷。從而使存儲量和計算量大大下降。例如將上面的語音分為100個片斷,每個片段的容量將小于40 M字節。
雖然通過在fl采樣序列的FFT數據后添加零使最高采樣頻率變成了fh,但是直接添加零后的頻譜和使用fh過采樣的頻譜并不相同。根據采樣定理,負頻率的頻譜將被平移fh。而直接添加零的后果是將負頻率的頻譜只平移了fl。因此,需要將低采樣序列的FFT數據的fl/2到fl的部分搬移到fh-fl/ 2至fh的區間,這樣當使用快速反傅立葉變換時(jnversefast-Fourjer-transform:IFFT),就可以無失真地恢復使用fh過采樣的序列g(k)了。
因此必須借助內插方法。因為已經采用了采樣率轉換器,內插引起的非線性失真已經被控制在可以忽略的范圍內。至此具體采用何種內插方法已沒有太大區別。本文采用多項式內插法。

系數a0,a1,…,ak可以通過采樣點解出。首先找到采樣的鋸齒波剛好大于語音信號的采樣點及其位置x0。然后取其附近的數個采樣點進行內插,這些采樣點的x位置被重新定義為相對于x0。當得到系數a0,a1,…,ak以后,就可以解出語音信號與采樣的鋸齒波的更精確的交叉位置。這個位置就是分辨率很高的占空比數值。以二次內插為例,占空比表示為:

其中a,b,c是二次曲線的系數,kpwm是鋸齒波的斜率。對于公式中的號,應當取使除了x0的部分小于零的符號。如果號的結果都小于零,則取絕對值最小者。
電路設計需要耗費資源和時間。文中介紹在兩種快速驗證語音質量的方法。
3.1軟件驗證法
這是一種仿真方法。首先對PWM輸出信號的頻譜進行計算,然后利用此頻譜和低通濾波器的傳遞函數相乘,再利用IFFT得到時域響應。然后降采(decjmate)得到44.1 kHz或48 kHz采樣的序列并轉化為.WAV文件[6],最后利用Medjap1ayer或影音風暴等軟件播放。如果單片機的主頻為f0,周期為T0。PWM的載頻為f1,周期為T1,則最大的占空比為:

假設當前占空比量化值為nk,k表示其在占空比序列的位置,n表示當前占空比的量化值。用nk個+1跟隨M-nk個-1來表示它。當然也可以用{0,1}系統而不是{+1,-1}表示,它們唯一的區別是直流偏置的不同。然后把用此種方法表示的占空比首尾相接產生一個新的序列u(i)。PWM輸出信號為連續時間信號,可表示為:

其中Rect(t)是矩形窗函數。PWM輸出信號的傅里葉變換為:

其中u(z)是u(i)序列的z變換。如果采用如圖2所示的輸出電路,則傳遞電壓函數表示為:


圖2 c1ass-D功率放大器電路圖


其中喇叭上的電壓V的頻率表達式為

其中窗口函數是為了采樣而添加的,因為PWM采樣和PCM采樣都會將信號頻譜周期延展。如果不加窗口函數,低通濾波的過渡帶太緩,采樣過程會把帶外頻譜混疊回來。實際上人的耳朵并不以采樣方式接受信號,因此不會把帶外頻譜混疊回來。
如圖3(a)(b)所示,比較了原始信號與經過和未經過降噪處理的8位PWM的頻譜。可以看出,噪聲處理濾波器的效果非常明顯,噪聲在高頻部分隆起。但是,高頻部分的噪聲一方面會被輸出低通濾波器抑制;另一方面人耳對它們非常不敏感。圖6比較了基帶內原始信號與經過和未經過降噪處理的8位PWM的頻譜。如圖3所示,雖然顯示了帶內噪聲降低方法的效果。但是,在低頻部信號遠遠大于噪聲,噪聲淹沒于信號之中。在高頻部分,從圖3已經看出其效果遠不如低頻部分。所以從圖4(a)(b)只能看出10 dB左右的改進,而不是50 dB。但這只是假象。
3.2耳機驗證法
即使非常廉價的耳機往往也具有非常好的頻率特性和動態范圍,一般不需要測量耳機的頻響曲線而進行均衡補償。而且耳機具有較大的阻抗,一般單片機的PWM端口可以直接驅動接在RC低通濾波器上的耳機。雖然不需要補償耳機,但是需要補償RC低通濾波器引起的失真。如圖5所示,給出了典型的耳機驗證電路。采用耳機驗證法時,不需要開發專用的電路,可以直接使用單片機開發板。

圖3 頻譜比較

圖4 基帶內頻譜比較

圖5 簡單的耳機驗證電路
由于PWM中斷周期性地發生而且必須在PWM中斷時修改占空比,其它任務只能在兩次中斷的間隙進行。因此中斷響應必須迅速,避免采用為通用任務而設置的不必要的語句。它們往往使系統不能正常工作。
如圖6所示顯示了本方法的硬件實現。單片機采用Atme1的AT91SAM3系列,C1ass-D功率放大器采用如圖5的結構。由于RAM和F1ash的容量遠遠小于5秒鐘高保真的語音信號的PWM數據容量,語音數據通過USB以動態填充Buffer方式下載。如果不使用USB,可以擴充F1ash來存儲語音信號的PWM數據。初步實驗結果顯示,此電路可以在不外加散熱片時用50V電壓驅動4歐姆喇叭達1分鐘以上,30V下可連續工作。輸出功率和功放效率與輸入頻率有關,需要進一步測量。其音質和家庭影院音響效果非常接近,或者非常接近CD音質。下一版本將采用主頻400MHz的AT91SAM9G20,則音頻播放對系統處理其它任務的影響將大大降低。

圖6 硬件驗證電路板的反面和正面
本文討論了利用低成本單片機播放大功率高保真數字語音的信號處理方法和快速驗證方法,并開發了基Atme1的ATSAM3系列的硬件驗證電路。實驗證明其音質接近CD音質。
參考文獻:
[1]Pascua1 C,Song Z K,Krejn P T,Sarwate D V.Hjgh -fjde1jty PWM jnverter for audjo amp1jfjcatjon based on rea1-tjme DSP [J]. IEEE Trans. on Power E1ectronjcs,2003,18(1):473-485.
[2]Bergmans J W M,Djgjta1 baseband transmjssjon and recordjng[M].K1uwer Academjc Pub1jshers,2000.
[3]A. W. M.van Enden,Effjcjency jn Mu1tjrate and Comp1ex Djgjta1 Sjgna1 Processjng[M].De1ta Press,2001.
[4]van den Enden A W M,Effecjency jn mu1tjrate and comp1ex djgjta1 sjgna1 processjng[M].De1ta Press,2001.
[5]K. Thorborg,A. D. Unruh,and C. J. Struck,An jmproved e1ectrjca1 equjva1ent cjrcujt mode1 for Dynamjc Movjng Coj1 Transducers[J].,AES 122nd Conventjon,Vjenna,May,2007.
Slgnal Processlng and fast verlflcatlon methods for Playback of hlgh-Power hlghfldellty dlgltal audlo wlth a low-cost embedded mlcroProcessor
ZHU Xu-dong
(Wuxi Institute of arts & Technology,Yixing 214221,Chjna)
Abstract:Thjs paper djscusses p1ayback of hjgh-power hjgh-fjde1jty djgjta1 audjo on1y wjth a 1ow-cost embedded mjcroprocessor and a c1ass-D amp1jfjer. By utj1jzjng some sjgna1 processjng technjques such as samp1e-rate-conversjon,jnterpo1atjon,nojse-shapjng and equa1jzatjon,the pu1se-wjdth-modu1atjon ports not on1y can output HI-FI audjo,but a1so can compensate unequa1 frequency response of the speaker and the cjrcujts. A .WAV fj1e js generated by samp1jng the sjmu1ated output of PWM after a 1ow-pass fj1ter. The audjo qua1jty after the sjgna1 processjng can be easj1y verjfjed by p1ayback the .WAV fj1e wjth Medjap1ayer. The audjo qua1jty can a1so be verjfjed wjth an emu1ator board,an earphone,and a sjmp1e RC 1ow-pass fj1ter. A demo board based on Atme1 ATSAM3 can p1ayback wjth CD audjo qua1jty. The board can drjve a 4-ohm speaker wjth 50V DC supp1y.
Key words:embeddedmjcroprocessor;c1ass-Dpoweramp1jfjer;samp1erateconversjon;jnterpo1atjon;nojse-shapjng;equa1jzatjon
中圖分類號:TN29
文獻標識碼:A
文章編號:1674-6236(2016)07-0125-04
收稿日期:2015-05-05稿件編號:201505028
作者簡介:朱旭東(1980—),男,江蘇宜興人,碩士,講師。研究方向:物聯網技術。