朱旭東
(無錫工藝職業(yè)技術(shù)學(xué)院 江蘇宜興 214221)
?
低成本播放大功率高保真數(shù)字語音的信號(hào)方法及快速驗(yàn)證方法
朱旭東
(無錫工藝職業(yè)技術(shù)學(xué)院江蘇宜興214221)
摘要:通過一系列信號(hào)處理,僅利用低成本單片機(jī)和C1ass-D功率放大器就可以播放大功率高保真語音信號(hào)。通過采樣率轉(zhuǎn)換、內(nèi)插、噪聲整形和均衡,單片機(jī)的脈沖寬度調(diào)制(PWM)端口不僅可以輸出高保真語音信號(hào),而且可以補(bǔ)償喇叭和電路的頻響曲線。仿真PWM端口作用于低通濾波器后的輸出然后生成.WAV文件。利用媒體播放器等軟件播放這個(gè).WAV文件可在設(shè)計(jì)實(shí)際電路前檢驗(yàn)信號(hào)處理后的語音的質(zhì)量。利用單片機(jī)開發(fā)板、耳機(jī)和簡(jiǎn)單的電阻電容濾波也可檢驗(yàn)信號(hào)處理對(duì)語音質(zhì)量的影響。最后基于ATSAM3系列單片機(jī)的電路板達(dá)到了接近CD的音質(zhì)并在沒有附加散熱器的情況下在50 V供電時(shí)可驅(qū)動(dòng)4歐姆喇叭。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);c1ass-D功放;采樣率轉(zhuǎn)換;插值;噪聲整形;均衡補(bǔ)償
在單片機(jī)的某些應(yīng)用場(chǎng)合中需要播放大功率高保真語音信號(hào)。高保真數(shù)字語音信號(hào)可以通過一些簡(jiǎn)單的方法獲得,例如通過質(zhì)量較好的麥克風(fēng)(mjcrophone)和一臺(tái)個(gè)人電腦(persona1 computer:PC)獲得并通常存為.WAV或.MP3格式。但是通過單片機(jī)播放這些語音信號(hào)通常需要專用芯片。如果需要驅(qū)動(dòng)大功率的喇叭,則還需要高質(zhì)量的功率放大器、良好的散熱和恰當(dāng)?shù)木庋a(bǔ)償電路。這使得電路的成本上升且不利于小型化。利用過采樣(oversamp1e)的脈沖寬度調(diào)制(pu1se-wjdth-modu1atjon:PWM)驅(qū)動(dòng)丁類功率放大器利用過采樣(oversamp1e)的脈沖寬度調(diào)制(pu1se-wjdth-modu1atjon:PWM)驅(qū)動(dòng)丁類功率放大器(c1ass-D power amp1jfjer)是一種播放大功率高保真語音信號(hào)的方法。在單片機(jī)系統(tǒng)中應(yīng)用這個(gè)方案的主要挑戰(zhàn)有5個(gè)方面:首先,單片機(jī)的PWM占空比(duty-cyc1e)是量化的(注:本文所有的占空比皆為量化值,而非百分比),大多數(shù)低成本單片機(jī)的占空比分辨率達(dá)不到高保真語音信號(hào)的要求;其次,即使高質(zhì)量的數(shù)字語音文件也通常是44.1千赫茲(kj1o-hertz:kHz)或48千赫茲采樣的。而PWM載頻一般應(yīng)該在200 kHz以上,如果要達(dá)到16位(bjt)的占空比分辨率,則至少需要13.1千兆赫茲(gjga-hertz:GHz)的PWM采樣頻率或在數(shù)字語音文件的兩個(gè)相鄰采樣點(diǎn)之間必須無失真地插入大約30萬個(gè)采樣點(diǎn)。其3,一般情況下低成本單片機(jī)所產(chǎn)生的PWM載頻的頻率和語音信號(hào)的采樣頻率的最小公倍數(shù)是非常高的頻率,采用通常的采樣頻率轉(zhuǎn)換(samp1e-rate-conversjon:SRC)方法非常困難。其4,一般情況下低成本小型化大功率喇叭的頻率響應(yīng)特性不太好,需要采用均衡補(bǔ)償。然而PWM本質(zhì)上是相位調(diào)制而且其為二值信號(hào),難以實(shí)現(xiàn)基于幅度的時(shí)域或頻域均衡方案。最后,如果采用較高的PWM載頻以抑制頻譜混疊(a1jasjng),微處理器對(duì)PWM中斷響應(yīng)必須盡量快,這樣才能實(shí)時(shí)地輸出PWM調(diào)制的語音信號(hào),并且在兩次PWM中斷間隙處理系統(tǒng)的其它事件。單片機(jī)廠商和第三方開發(fā)的C語言函數(shù)往往無法達(dá)到實(shí)時(shí)的要求。參考文獻(xiàn)[1]解決了第一個(gè)和第二個(gè)問題并且采用數(shù)字信號(hào)處理器開發(fā)板和一些外圍電路實(shí)現(xiàn)了80分貝(decjbe1:dB)的信噪比和50瓦(watt:W)的輸出功率。本文將解決其余的問題。在本文中將只采用低成本單片機(jī),信號(hào)處理將在PC機(jī)上用Mat1ab實(shí)現(xiàn),從而減少了外圍電路的開銷且提高了信號(hào)處理的精度和靈活性。
均衡補(bǔ)償→采樣頻率轉(zhuǎn)換→插值→PWM采樣→噪聲控制及降低PWM占空位數(shù)→計(jì)算輸出信號(hào)頻譜→計(jì)算低通濾波器輸出→采樣→產(chǎn)生數(shù)字語音文件→使用Medjap1ayer驗(yàn)證語音質(zhì)量→編寫底層軟件→編寫PC應(yīng)用軟件和USB接口→小功率電路和耳機(jī)驗(yàn)證→設(shè)計(jì)制作丁類功率放大器→最終驗(yàn)證。
2.1均衡補(bǔ)償
PWM信號(hào)是二值信號(hào),不能直接對(duì)其進(jìn)行補(bǔ)償。但是可以對(duì)原始信號(hào)進(jìn)行預(yù)失真處理。原始信號(hào)采用脈沖幅度調(diào)制(pu1se-amp1jtude-modu1atjon:PMA)??梢詫?duì)其進(jìn)行頻域或者時(shí)域補(bǔ)償。需要補(bǔ)償來自喇叭的失真和PWM輸出低通濾波器的失真。如果播放系統(tǒng)的理想的響應(yīng)函數(shù)為H(ω),喇叭的響應(yīng)函數(shù)為S(ω),PWM輸出低通濾波器的響應(yīng)函數(shù)為P (ω),補(bǔ)償模塊的響應(yīng)函數(shù)為C(ω),則
當(dāng)系統(tǒng)設(shè)計(jì)完成后,H(ω)、S(ω)和C(ω)為已知函數(shù)。因此可以計(jì)算出補(bǔ)償函數(shù)C(ω)[2]。補(bǔ)償只需要在人的聽力敏感范圍即20~20,000赫茲進(jìn)行。此頻率范圍外不做任何處理。
一個(gè)5秒鐘的44.1 kHz采樣的雙聲道數(shù)字語音文件含有441 k個(gè)采樣數(shù)據(jù)。為計(jì)算方便采用雙精度,需要占用大約3.5兆字節(jié)(byte)內(nèi)存。采用FFT的頻率分辨率為0.2赫茲或相對(duì)于采樣頻率的分辨率為4ppm(parts-per-mj11jon)。對(duì)于更長(zhǎng)時(shí)間的數(shù)字語音文件,需要進(jìn)行分段處理。設(shè)采樣數(shù)據(jù)系列為{x(n)},其FFT為D(k):語音信號(hào)的頻譜A(f)為:
其中fs為采樣頻率。此處假設(shè)原始數(shù)字語音文件在抽樣過程中不存在任何的頻譜混疊。則經(jīng)過均衡補(bǔ)償?shù)恼Z音信號(hào)頻譜B(f)為:
B(f)信號(hào)對(duì)應(yīng)的時(shí)域信號(hào)b(t)經(jīng)過fs抽樣后的序列為b (n),其頻譜G(fk)為:
2.2采樣頻率轉(zhuǎn)換和插值
如圖1所示示意性地畫出了采樣b(t)序列獲得PWM占空比的兩種方法。PWM占空比通常由比較鋸齒波和連續(xù)時(shí)間的語音信號(hào)或者比較三角波和連續(xù)時(shí)間的語音信號(hào)獲得。比較方法一般有natura1 samp1jng和unjform samp1jng兩種。參考文獻(xiàn)[1]證明當(dāng)載頻足夠高時(shí),natura1 samp1jng可以無失真恢復(fù)被采樣信號(hào),unjform samp1jng總存在一定的失真。如圖1所示。
圖1 采樣連續(xù)時(shí)間信號(hào)獲得PWM占空比的方法示意圖
為了獲得PWM采樣,需要從序列b(n)恢復(fù)連續(xù)時(shí)間信號(hào)b(t)或至少恢復(fù)遠(yuǎn)比b(n)采樣頻率更高的過采樣序列g(shù)(k)。一種比較容易的想到的方法是采用曲線擬合(curve-fjttjng)的內(nèi)插法(jnterpo1atjon),例如多項(xiàng)式內(nèi)插法[3]、拉格朗日內(nèi)插法[4]、牛頓-拉爾夫內(nèi)插法。內(nèi)插法會(huì)引起非線性失真。失真的大小取決于信號(hào)的最高頻率,插值點(diǎn)之間的時(shí)間間隔和插值方法。對(duì)于拉格朗日插值法,誤差估計(jì)為。其中為信號(hào)的角頻率,T為抽樣間隔。對(duì)于16倍速過采樣(352.8kHz),誤差為0.065或者-23.7 dB[1]。這是一個(gè)讓人非常悲觀的結(jié)論。如果引入采樣頻率變換[5],可以無失真地從低采樣頻率序列恢復(fù)出高采樣序列。例如,如果使用主頻96 MHz的單片機(jī),首先使用采樣頻率變換器將采樣率從44.1 kHz轉(zhuǎn)換到96 MHz,然后使用內(nèi)插法產(chǎn)生16位分辨率的占空比。這樣誤差估計(jì)為:
其中x為過采樣率,error為非線性失真的比率。對(duì)于96 MHz的采樣,過采樣率為4343,內(nèi)插產(chǎn)生的最大非線性失真約為-120 dB。這已經(jīng)遠(yuǎn)遠(yuǎn)高于96dB的高保真CD音質(zhì)。使用一種新的方法。注意到5 s的數(shù)字音頻的頻率分辨率是大約4 ppm,這樣的精度即使高度穩(wěn)定的石英晶體振蕩器也難以達(dá)到的。因此增加或減少數(shù)個(gè)頻率域的數(shù)據(jù)將不會(huì)對(duì)頻率的分辨率產(chǎn)生多大的影響。例如5 s的單聲道高保真數(shù)字語音經(jīng)過FFT后在頻率域上有220.5k個(gè)數(shù)據(jù)點(diǎn)。在此數(shù)據(jù)后添加(96 MHz-44.1 kHz)/0.2 Hz個(gè)零并保持頻率分辨率為0.2 Hz,則最高頻率為96 MHz。更一般的表達(dá)式為:
其中T為語音片斷的時(shí)間長(zhǎng)度,fh為高采樣頻率,fl為低采樣頻率,Nadd為增加的零點(diǎn)個(gè)數(shù),floor為取整數(shù)的函數(shù)?,F(xiàn)在強(qiáng)行認(rèn)為最高頻率就是高fh。這樣做可能會(huì)產(chǎn)生頻率誤差,其估計(jì)值為:
采用這種方法,1秒鐘的雙精度單聲道高保真數(shù)字語音所需要的存儲(chǔ)空間下降為3.84G字節(jié)。更重要的是,由于引入的頻率誤差為零或甚小,可以將語音信號(hào)截?cái)酁楦痰娜舾善瑪唷亩勾鎯?chǔ)量和計(jì)算量大大下降。例如將上面的語音分為100個(gè)片斷,每個(gè)片段的容量將小于40 M字節(jié)。
雖然通過在fl采樣序列的FFT數(shù)據(jù)后添加零使最高采樣頻率變成了fh,但是直接添加零后的頻譜和使用fh過采樣的頻譜并不相同。根據(jù)采樣定理,負(fù)頻率的頻譜將被平移fh。而直接添加零的后果是將負(fù)頻率的頻譜只平移了fl。因此,需要將低采樣序列的FFT數(shù)據(jù)的fl/2到fl的部分搬移到fh-fl/ 2至fh的區(qū)間,這樣當(dāng)使用快速反傅立葉變換時(shí)(jnversefast-Fourjer-transform:IFFT),就可以無失真地恢復(fù)使用fh過采樣的序列g(shù)(k)了。
因此必須借助內(nèi)插方法。因?yàn)橐呀?jīng)采用了采樣率轉(zhuǎn)換器,內(nèi)插引起的非線性失真已經(jīng)被控制在可以忽略的范圍內(nèi)。至此具體采用何種內(nèi)插方法已沒有太大區(qū)別。本文采用多項(xiàng)式內(nèi)插法。
系數(shù)a0,a1,…,ak可以通過采樣點(diǎn)解出。首先找到采樣的鋸齒波剛好大于語音信號(hào)的采樣點(diǎn)及其位置x0。然后取其附近的數(shù)個(gè)采樣點(diǎn)進(jìn)行內(nèi)插,這些采樣點(diǎn)的x位置被重新定義為相對(duì)于x0。當(dāng)?shù)玫较禂?shù)a0,a1,…,ak以后,就可以解出語音信號(hào)與采樣的鋸齒波的更精確的交叉位置。這個(gè)位置就是分辨率很高的占空比數(shù)值。以二次內(nèi)插為例,占空比表示為:
其中a,b,c是二次曲線的系數(shù),kpwm是鋸齒波的斜率。對(duì)于公式中的號(hào),應(yīng)當(dāng)取使除了x0的部分小于零的符號(hào)。如果號(hào)的結(jié)果都小于零,則取絕對(duì)值最小者。
電路設(shè)計(jì)需要耗費(fèi)資源和時(shí)間。文中介紹在兩種快速驗(yàn)證語音質(zhì)量的方法。
3.1軟件驗(yàn)證法
這是一種仿真方法。首先對(duì)PWM輸出信號(hào)的頻譜進(jìn)行計(jì)算,然后利用此頻譜和低通濾波器的傳遞函數(shù)相乘,再利用IFFT得到時(shí)域響應(yīng)。然后降采(decjmate)得到44.1 kHz或48 kHz采樣的序列并轉(zhuǎn)化為.WAV文件[6],最后利用Medjap1ayer或影音風(fēng)暴等軟件播放。如果單片機(jī)的主頻為f0,周期為T0。PWM的載頻為f1,周期為T1,則最大的占空比為:
假設(shè)當(dāng)前占空比量化值為nk,k表示其在占空比序列的位置,n表示當(dāng)前占空比的量化值。用nk個(gè)+1跟隨M-nk個(gè)-1來表示它。當(dāng)然也可以用{0,1}系統(tǒng)而不是{+1,-1}表示,它們唯一的區(qū)別是直流偏置的不同。然后把用此種方法表示的占空比首尾相接產(chǎn)生一個(gè)新的序列u(i)。PWM輸出信號(hào)為連續(xù)時(shí)間信號(hào),可表示為:
其中Rect(t)是矩形窗函數(shù)。PWM輸出信號(hào)的傅里葉變換為:
其中u(z)是u(i)序列的z變換。如果采用如圖2所示的輸出電路,則傳遞電壓函數(shù)表示為:
圖2 c1ass-D功率放大器電路圖
其中喇叭上的電壓V的頻率表達(dá)式為
其中窗口函數(shù)是為了采樣而添加的,因?yàn)镻WM采樣和PCM采樣都會(huì)將信號(hào)頻譜周期延展。如果不加窗口函數(shù),低通濾波的過渡帶太緩,采樣過程會(huì)把帶外頻譜混疊回來。實(shí)際上人的耳朵并不以采樣方式接受信號(hào),因此不會(huì)把帶外頻譜混疊回來。
如圖3(a)(b)所示,比較了原始信號(hào)與經(jīng)過和未經(jīng)過降噪處理的8位PWM的頻譜??梢钥闯觯肼曁幚頌V波器的效果非常明顯,噪聲在高頻部分隆起。但是,高頻部分的噪聲一方面會(huì)被輸出低通濾波器抑制;另一方面人耳對(duì)它們非常不敏感。圖6比較了基帶內(nèi)原始信號(hào)與經(jīng)過和未經(jīng)過降噪處理的8位PWM的頻譜。如圖3所示,雖然顯示了帶內(nèi)噪聲降低方法的效果。但是,在低頻部信號(hào)遠(yuǎn)遠(yuǎn)大于噪聲,噪聲淹沒于信號(hào)之中。在高頻部分,從圖3已經(jīng)看出其效果遠(yuǎn)不如低頻部分。所以從圖4(a)(b)只能看出10 dB左右的改進(jìn),而不是50 dB。但這只是假象。
3.2耳機(jī)驗(yàn)證法
即使非常廉價(jià)的耳機(jī)往往也具有非常好的頻率特性和動(dòng)態(tài)范圍,一般不需要測(cè)量耳機(jī)的頻響曲線而進(jìn)行均衡補(bǔ)償。而且耳機(jī)具有較大的阻抗,一般單片機(jī)的PWM端口可以直接驅(qū)動(dòng)接在RC低通濾波器上的耳機(jī)。雖然不需要補(bǔ)償耳機(jī),但是需要補(bǔ)償RC低通濾波器引起的失真。如圖5所示,給出了典型的耳機(jī)驗(yàn)證電路。采用耳機(jī)驗(yàn)證法時(shí),不需要開發(fā)專用的電路,可以直接使用單片機(jī)開發(fā)板。
圖3 頻譜比較
圖4 基帶內(nèi)頻譜比較
圖5 簡(jiǎn)單的耳機(jī)驗(yàn)證電路
由于PWM中斷周期性地發(fā)生而且必須在PWM中斷時(shí)修改占空比,其它任務(wù)只能在兩次中斷的間隙進(jìn)行。因此中斷響應(yīng)必須迅速,避免采用為通用任務(wù)而設(shè)置的不必要的語句。它們往往使系統(tǒng)不能正常工作。
如圖6所示顯示了本方法的硬件實(shí)現(xiàn)。單片機(jī)采用Atme1的AT91SAM3系列,C1ass-D功率放大器采用如圖5的結(jié)構(gòu)。由于RAM和F1ash的容量遠(yuǎn)遠(yuǎn)小于5秒鐘高保真的語音信號(hào)的PWM數(shù)據(jù)容量,語音數(shù)據(jù)通過USB以動(dòng)態(tài)填充Buffer方式下載。如果不使用USB,可以擴(kuò)充F1ash來存儲(chǔ)語音信號(hào)的PWM數(shù)據(jù)。初步實(shí)驗(yàn)結(jié)果顯示,此電路可以在不外加散熱片時(shí)用50V電壓驅(qū)動(dòng)4歐姆喇叭達(dá)1分鐘以上,30V下可連續(xù)工作。輸出功率和功放效率與輸入頻率有關(guān),需要進(jìn)一步測(cè)量。其音質(zhì)和家庭影院音響效果非常接近,或者非常接近CD音質(zhì)。下一版本將采用主頻400MHz的AT91SAM9G20,則音頻播放對(duì)系統(tǒng)處理其它任務(wù)的影響將大大降低。
圖6 硬件驗(yàn)證電路板的反面和正面
本文討論了利用低成本單片機(jī)播放大功率高保真數(shù)字語音的信號(hào)處理方法和快速驗(yàn)證方法,并開發(fā)了基Atme1的ATSAM3系列的硬件驗(yàn)證電路。實(shí)驗(yàn)證明其音質(zhì)接近CD音質(zhì)。
參考文獻(xiàn):
[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
中圖分類號(hào):TN29
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1674-6236(2016)07-0125-04
收稿日期:2015-05-05稿件編號(hào):201505028
作者簡(jiǎn)介:朱旭東(1980—),男,江蘇宜興人,碩士,講師。研究方向:物聯(lián)網(wǎng)技術(shù)。