基于ARM處理器的低功耗的語音去噪系統(tǒng)設(shè)計(jì)
譜減法作為一種很有效的語音信號(hào)處理手段,廣泛應(yīng)用于現(xiàn)代語音增強(qiáng)系統(tǒng)中。針對(duì)低功耗設(shè)計(jì)的要求,本系統(tǒng)采用功耗低且功能強(qiáng)大的ARM芯片,用C語言編程將算法成功移植到ARM系統(tǒng)中,該系統(tǒng)功耗低,并有效地減小了嗓聲,改善了語音通信質(zhì)量,有較好的實(shí)用性。
近年來,電子技術(shù)的發(fā)展促進(jìn)了多媒體設(shè)備的繁榮,同時(shí)隨著人們對(duì)便攜式設(shè)備和可移動(dòng)終端的廣泛需求,使得低功耗成為了這類電子設(shè)備最大的技術(shù)難題之一。低功耗意味著在同一時(shí)間段內(nèi)在相同條件下移動(dòng)終端消耗的能量更少,使得此類設(shè)備有更長的續(xù)航工作時(shí)間。低功耗設(shè)計(jì)降低了系統(tǒng)功耗,提高了能量利用率。
ARM微處理器因其高性能和低功耗的特性,特別適合于便攜式設(shè)備的開發(fā)與應(yīng)用。本文設(shè)計(jì)了一種基于ARM的低功耗語音去噪系統(tǒng),為應(yīng)用于便攜式移動(dòng)的語音去噪設(shè)備提供了一種很好的設(shè)計(jì)思路和方法。
1 算法設(shè)計(jì)
譜減法的原理就是在頻域?qū)⒃肼暤念l譜分量從帶噪語音信號(hào)的頻譜中減去。其設(shè)計(jì)思想是在假設(shè)加性噪聲與短時(shí)平穩(wěn)的語音信號(hào)相互獨(dú)立的條件下,從帶噪語音信號(hào)的功率譜中減去噪聲的功率譜,進(jìn)而得到去噪后較純凈的語音頻譜。
如果帶噪語音信號(hào)為
y(i)=s(i)+n(i) (1)
上式中,y(i)為帶噪語音,s(i)為純凈語音,n(i)為噪聲信號(hào)。經(jīng)過FFT變換,頻域表達(dá)式為:
Y(k)=S(k)+N(k) (2)
由式(2)可得:
因?yàn)樽V減法的前提是語音信號(hào)與噪聲信號(hào)是不相關(guān)的,且S(k})、N(k)服從高斯分布,均值為零,于是對(duì)式(3)求期望可得:
由此可得原始語音的估計(jì)值。針對(duì)人耳對(duì)相位的不敏感這一特點(diǎn),可以用原始帶噪語音的相位譜代替去噪后語音信號(hào)的相位譜。
整個(gè)算法的流程如圖1所示。
2 硬件設(shè)計(jì)
2.1 主控CPU芯片選型
本系統(tǒng)要求低功耗,傳統(tǒng)的信號(hào)處理系統(tǒng)大多采用DSP,DSP芯片雖然數(shù)據(jù)處理能力強(qiáng)大,但是本身功耗太高,因此不適用于低功耗設(shè)計(jì)的要求,加之DSP內(nèi)部外設(shè)種類很少,如不具有A/D和D/A等模塊,對(duì)于系統(tǒng)設(shè)計(jì),增加這些功能模塊無疑又會(huì)增加功耗。
LPC1756是NXP(恩智浦)公司推出的高度集成和低功耗的32位嵌入式處理器,內(nèi)核構(gòu)架為32位高性能ARM Cortex-M3 CPU,具有3級(jí)流水線和哈佛結(jié)構(gòu)總線,LPC756具有256 kB片上Flash和32 kB SRAM,時(shí)鐘頻率可高達(dá)120MHz,指令執(zhí)行速度最高為150 MIPS,工作在最高頻率時(shí),所耗電流也僅為數(shù)十毫安。LPC1756具有大量豐富的外設(shè):一個(gè)12位模數(shù)轉(zhuǎn)換器(ADC),高達(dá)8個(gè)輸入通道;一個(gè)10位數(shù)模轉(zhuǎn)換器(DAC);4個(gè)32位通用定時(shí)器;8個(gè)DMA通道等。此外,具有80個(gè)引腳的LPC1756的封裝體積為12x12x1.4 mm??傊?,該芯片具備處理速度快、功能豐富、體積小和性價(jià)比高等優(yōu)點(diǎn)。因此符合本系統(tǒng)設(shè)計(jì)要求。
為了適應(yīng)低功耗設(shè)計(jì)的要求采用LPC1756片內(nèi)ADC模塊和DAC模塊。為了節(jié)約CPU處理數(shù)據(jù)的時(shí)間,在采集端和輸出端均采用DMA傳輸模式。
2.2 大電壓差電源設(shè)計(jì)
在本系統(tǒng)中,要求輸入電壓為26 V直流電壓,輸出電流不超過60 mA。ARM處理器所需供電電壓為2.4~3.3 V。目前流行的電源壓降模塊普遍采用線性穩(wěn)壓源和開關(guān)電源。線性穩(wěn)壓源常見的如LDO(低壓差輸出)模塊,LDO原理是利用三極管基極電壓來控制輸入輸出端的電壓差來獲得輸出所需電壓的目的,而系統(tǒng)電流也要流經(jīng)三極管,因此LDO在降壓的同時(shí),其自身的功耗也很大,LDO芯片的功耗:
P=(VIN-VOUT)*I (6)
式(6)中VIN為輸入電壓(轉(zhuǎn)換前),VOUT為輸出電壓(轉(zhuǎn)換后),I為輸出電流。假設(shè)本系統(tǒng)電流為50mA,因此由式(6)可得LDO自身功耗P=(26-3.3)*50 mW=1 135mW,可見在這種高壓差的LDO系統(tǒng)中,損失的功率太大使得電源轉(zhuǎn)換效率很低,這樣在LDO芯片上會(huì)產(chǎn)生很大的熱量,很容易燒壞電源芯片,不僅會(huì)使整個(gè)系統(tǒng)癱瘓,而且會(huì)造成安全隱患。但是LDO具有輸出電壓穩(wěn)定、紋波小等優(yōu)點(diǎn),適合低壓差電源轉(zhuǎn)換。
開關(guān)電源常見的如DC-DC模塊,開關(guān)電源的原理是利用開關(guān)的特性,經(jīng)反饋網(wǎng)絡(luò)輸出對(duì)應(yīng)占空比的PWM信號(hào)來控制MOS管的柵極電壓,從而達(dá)到輸出預(yù)期電壓的目的,MOS管的漏源極間的導(dǎo)電溝道電阻非常小,因此消耗在開關(guān)電源上的功耗很小。因此鑒于開關(guān)電源輸入電源范圍寬、功耗小等優(yōu)點(diǎn),廣泛在系統(tǒng)設(shè)計(jì)時(shí)被采用。需要指出的是在用開關(guān)電源時(shí),由于開關(guān)電源頻繁的開關(guān)特性,會(huì)使得輸出電壓的紋波和噪聲較大,因此在設(shè)計(jì)時(shí)需考慮濾波和PCB布線等情況。
鑒于上述原因,本系統(tǒng)電源模塊采用開關(guān)電源和LDO共同作用的架構(gòu),先用開關(guān)電源將輸入電壓(DC26V)轉(zhuǎn)換至適合LDO輸入電壓(DC5V)范圍內(nèi),這樣可以有效降低在LDO上的功耗;然后再利用LDO模塊轉(zhuǎn)換至系統(tǒng)所需的穩(wěn)定電壓(DC3.3V),確保系統(tǒng)不受電源紋波的干擾。開關(guān)電源芯片選用美國國家半導(dǎo)體公司的LM2576開關(guān)電源,其具有電壓輸入范圍寬、轉(zhuǎn)換效率高以及帶負(fù)載能力強(qiáng)等優(yōu)點(diǎn);LDO芯片采用美國TI公司的TPS79133芯片,其具有輸出電壓穩(wěn)定、紋波小等特點(diǎn)。
2.3 信號(hào)調(diào)理模塊設(shè)計(jì)
輸入為語音信號(hào),經(jīng)麥克風(fēng)轉(zhuǎn)換為電壓信號(hào),但這種電壓信號(hào)很徽弱,一般為幾十毫伏,需要經(jīng)過放大才能被A/D有效采集,為了提高放大后信號(hào)的信噪比,在放大前端應(yīng)對(duì)信號(hào)進(jìn)行濾波處理,語音信號(hào)分布在300~3400 Hz之間,因此可對(duì)輸入信號(hào)進(jìn)行低通率波。又由于譜減算法的特性,去噪后信號(hào)的幅度較去噪前信號(hào)的幅度減小很多,所以對(duì)去噪后的語音信號(hào)也應(yīng)當(dāng)放大和濾波處理。
本系統(tǒng)采用飛思卡爾半導(dǎo)體公司的MC34119集成運(yùn)放,該芯片具有寬電壓輸入(2.0~16 V)、對(duì)語音信號(hào)具有自適應(yīng)增益功能以及不需外部加直流偏置等特點(diǎn)。由于LPC1756內(nèi)部A/D和D/A參考電壓為3.3 V,因此運(yùn)放的輸入(參考)電壓也應(yīng)為3.3 V,信號(hào)增益是通過反饋電阻與輸入電阻之比來確定。即:
Gain=RF/RI (7)
在本系統(tǒng)中,輸入增益設(shè)為10倍,輸出增益設(shè)為3倍。低通濾波器采用美信半導(dǎo)體公司MAX7427集成芯片,該芯片具有功耗低(僅需0.8 mA)、外圍電路簡單等特點(diǎn),且通過外接振蕩電容來計(jì)算上限截止頻率,適用頻率范圍1~12 000 Hz,符合本系統(tǒng)頻率范圍。
3 系統(tǒng)整體框架
語音信號(hào)頻率范圍為300~3400Hz,根據(jù)奈奎斯特采樣定理,采樣率至少為信號(hào)頻率的兩倍時(shí),信號(hào)才能被不失真采集。在本系統(tǒng)中,采樣率是通過LPC1756內(nèi)部的32位高精度定時(shí)器模塊來控制,每間隔125μs對(duì)A/D轉(zhuǎn)換結(jié)果進(jìn)行一次讀數(shù),即采樣率設(shè)定為8 000 Hz,讀取的數(shù)據(jù)通過DMA模塊傳輸至預(yù)處理地址中,這樣提高了CPU的處理效率。同理,為了保證輸入輸出的同步性,在定時(shí)器中斷函數(shù)里,每采集一個(gè)信號(hào)點(diǎn),就必須輸出一個(gè)信號(hào)點(diǎn)。為了提高CPU利用率,去噪后的語音信號(hào)也是通過DMA通道傳輸。在信號(hào)的采集與輸出端,均通過放大濾波電路,都是為了提高語音信號(hào)的信噪比。在濾波電路中,截止頻率設(shè)定為4 000 Hz。其實(shí)物的PCB布線如圖3所示。
4 系統(tǒng)測(cè)試結(jié)果
在上述設(shè)計(jì)的條件下,輸入電壓為26 V(DC)的情況下,系統(tǒng)正常工作時(shí),所耗電流為20 mA,滿足低功耗的要求。對(duì)系統(tǒng)去噪效果進(jìn)行主觀試聽,分別試聽了0 dB、3 dB、5 dB、10 dB和20 dB情況下帶噪語音經(jīng)過系統(tǒng)后的去噪效果,聽者都認(rèn)為系統(tǒng)的去噪效果良好,有較好的語音自然度和清晰度。
3 dB帶噪語音去噪前后示波器對(duì)比圖如圖4所示。
如圖4所示,示波器上通道1(上半部分)顯示的是去噪后的語音信號(hào),通道2(下半部分)顯示的是去噪前的3 dB帶噪語音信號(hào)。
5 結(jié)束語
文中基于ARM處理器,設(shè)計(jì)出了具有低功耗的語音去噪系統(tǒng)。用C語言編程將譜減算法成功移植到ARM平臺(tái)上,并且效果較好。譜減算法在語音去噪應(yīng)用中非常成熟,因此本文著重介紹了該系統(tǒng)的硬件設(shè)計(jì),與傳統(tǒng)的基于DSP的系統(tǒng)設(shè)計(jì)相比,大大降低了系統(tǒng)功耗和成本,為以后的低功耗和高性價(jià)比系統(tǒng)設(shè)計(jì)提供了一種很好的思路和方法。