于增輝,黑勇,薛金勇,于伽,陳黎明,周玉梅
(中國科學(xué)院微電子研究所 專用集成電路與系統(tǒng)研究室,北京 100029)
數(shù)字助聽器因具有高精度、低噪聲、抗干擾、可控性好、算法靈活等優(yōu)點,成為聽障患者康復(fù)的新希望.但是我國數(shù)字助聽器的研究遠(yuǎn)落后于國際先進(jìn)水平[1],目前國內(nèi)還沒有數(shù)字助聽器專用DSP流片成功的報道.
作為便攜式醫(yī)療電子設(shè)備,數(shù)字助聽器對功耗開銷有著極為嚴(yán)格的要求:整機(jī)功耗1 mW左右,其中數(shù)字部分一般小于500μW[2].聽力補(bǔ)償是數(shù)字助聽器中最重要的功能,通常采用多通道寬動態(tài)范圍壓縮(WDRC)算法實現(xiàn)[3-7].但是該算法的增益計算需要在線性刻度和分貝刻度間來回轉(zhuǎn)換,涉及較多的非線性運(yùn)算(對數(shù)、指數(shù)),硬件實現(xiàn)時功耗開銷較大.關(guān)于簡化增益計算中的非線性運(yùn)算,文獻(xiàn)[8]給出了一種基于泰勒級數(shù)展開的近似計算方法.但是該方法在輸入信號范圍較寬時,會引起較大的誤差.文獻(xiàn)[9]給出一種通過查表法簡化對數(shù)和指數(shù)運(yùn)算的方法,但是該方法仍然沒有避免分貝刻度和線性刻度的轉(zhuǎn)換,仍存在較多的運(yùn)算開銷.
由于WDRC增益計算所依據(jù)的信號聲壓級(SPL)檢測本身存在較大的波動性和不準(zhǔn)確性,從而允許采用一定的近似方法來簡化運(yùn)算.據(jù)此提出一種多通道WDRC的低功耗硬件實現(xiàn)方法.該方法基于查表實現(xiàn)了輸入信號的平均能量和線性刻度的WDRC增益之間的直接映射,完全避免了指數(shù)和對數(shù)運(yùn)算.并且,所采用的表格區(qū)間劃分方法,使得查表誤差遠(yuǎn)小于SPL檢測本身的波動和誤差;對查表結(jié)果進(jìn)行遞歸平滑,在較好的抑制增益波動的同時,可通過靈活調(diào)整平滑常數(shù)來滿足啟動時間和釋放時間的要求.仿真結(jié)果表明,在啟動時間、釋放時間相同的情況下,該方法得到的WDRC增益與直接計算的結(jié)果比較吻合,同時波動較小.此外,因無需對WDRC的輸入輸出(I/O)曲線作分段線性的約束,該方法可用于多種形狀I(lǐng)/O曲線的配置,且不會增加控制復(fù)雜度以及存儲和計算開銷,相比文獻(xiàn)[8-9]給出的方法而言有較大的優(yōu)勢.
在SMIC的0.13μm工藝條件下,基于該方法,完成了數(shù)字助聽器DSP芯片中32通道WDRC模塊的低功耗VLSI設(shè)計,并進(jìn)行了流片.
聽障患者的聽力損失一般表現(xiàn)為聽閾(人耳可感知的聲壓最小值)高于正常人,而痛閾(引起人耳痛覺的聲壓閾值)卻不比正常人高.并且,在不同的頻段上聽力損失也不同,往往是高頻部分的損失比較嚴(yán)重.聽覺區(qū)域(聽覺動態(tài)范圍)是介于聽閾和痛閾之間的聲壓范圍[10].多通道WDRC算法,可在不同頻段上,有針對性地對輸入聲音進(jìn)行壓縮或者放大,將正常人聽覺動態(tài)范圍內(nèi)的聲音,“映射”到聽障患者的聽覺動態(tài)范圍內(nèi)[11],從而能有效的提高患者對語音的辨識度.
圖1和圖2分別給出了基于多通道WDRC聽力補(bǔ)償?shù)臄?shù)字助聽器系統(tǒng)結(jié)構(gòu)框圖和WDRC模塊的結(jié)構(gòu)圖[5].圖1中的分析、綜合濾波器組,分別實現(xiàn)對信號的多頻率通道分離與合成.
圖1 基于多通道WDRC的數(shù)字助聽器Fig.1 Digital hearing aid based on multi-channel WDRC
圖2 WDRC模塊結(jié)構(gòu)圖Fig.2 Structure of the WDRC module
多通道WDRC的特性通常用通道數(shù)、I/O曲線以及啟動時間、釋放時間來描述.通道數(shù)反映了助聽器對聲音信號按頻段處理的細(xì)致程度.I/O曲線描述的是輸出與輸入信號SPL的關(guān)系.2種常見的分段線性的I/O曲線如圖3所示[2].啟動時間和釋放時間描述的是WDRC對輸入信號能量發(fā)生變化時的反應(yīng)速度.對于常用的音節(jié)壓縮方式,啟動時間和釋放時間一般分別取5~10ms和50~100ms[2,5,12].通常要求助聽器的I/O曲線和啟動時間、釋放時間是可配置的,以滿足不同病人的需要.
圖3 常見WDRC聽力補(bǔ)償I/O曲線Fig.3 Common type of I/O curves for WDRC
下面具體說明多通道WDRC算法的實現(xiàn)流程.
1)輸入信號的 SPL 檢測[5].
首先計算輸入信號的平均能量p(n):
則聲壓級SPL為:
式中:n為時間幀標(biāo)號,x(n)為輸入信號(省略了通道標(biāo)號),常數(shù)α和β用來調(diào)節(jié)啟動時間和釋放時間.圖4給出了啟動時間和釋放時間分別取為5 ms和75 ms時,在輸入信號的2.5 kHz處SPL檢測的仿真結(jié)果.圖中縱坐標(biāo)為分貝刻度的信號瞬時能量和SPL檢測結(jié)果.
圖4 SPL檢測結(jié)果Fig.4 The SPL detection result
2)增益值gain計算.
WDRC的增益是根據(jù)輸入信號的SPL和對應(yīng)通道的I/O曲線計算得到.以圖3(a)為例,當(dāng)輸入信號的SPL小于th1時,處于線性放大區(qū),增益為預(yù)先設(shè)定的固定值.當(dāng)th1≤SPL(n)<th2時,處于壓縮區(qū),設(shè)該區(qū)的壓縮比為 CR,I/O曲線斜率k=1/CR,則分貝刻度的增益計算方法為[6]
若SPL(n)≥th2,則處于限幅區(qū),增益為:
由gdB(n)計算線性刻度的增益:
3)對輸入信號進(jìn)行壓縮/放大.
經(jīng)過WDRC后輸出的信號y(n)為
4)對每一個通道按照上述過程進(jìn)行處理,然后經(jīng)過綜合濾波器組合并為一路信號,即得到聽力補(bǔ)償后的輸出.
根據(jù)上述實現(xiàn)過程,WDRC的增益計算需在分貝刻度和線性刻度間來回轉(zhuǎn)換,涉及較多對數(shù)和指數(shù)運(yùn)算,開銷很大.如何簡化或消除這些非線性運(yùn)算,是多通道WDRC低功耗硬件實現(xiàn)的關(guān)鍵.
根據(jù)文獻(xiàn)[2]以及上一節(jié)的仿真結(jié)果顯示,SPL檢測具有如下特點:
1)通過選擇較長的啟動/釋放時間可以減小SPL檢測結(jié)果的波動,但該波動不可完全消除(如圖4的信號波峰處,SPL的波動幅度達(dá)3 dB以上);
2)較長的釋放時間,使得在信號能量下降階段的SPL檢測結(jié)果明顯大于信號實際的SPL;
3)SPL的檢測結(jié)果隨啟動時間和釋放時間設(shè)定的不同,也存在較大的變化.
上述特點造成SPL檢測結(jié)果必然存在較大的波動性和不準(zhǔn)確性,依據(jù)該檢測結(jié)果對WDRC增益進(jìn)行完全精確的直接計算,是沒有必要的.在滿足啟動時間、釋放時間要求,并且保證較小的計算誤差和增益波動的前提下,可采用適當(dāng)?shù)暮喕嬎愕姆椒?基于此,提出一種基于查表法計算WDRC增益的方法,完全避免了線性刻度和分貝刻度的轉(zhuǎn)換,從而徹底消除非線性運(yùn)算.具體如下:
1)按照SPL劃分表格區(qū)間.
首先,將助聽器每個通道輸入信號的SPL范圍(一般不大于120 dB)均分為64個區(qū)間,每個區(qū)間包含的SPL范圍小于2 dB.以區(qū)間中心的SPL值代表整個區(qū)間的SPL,則最大誤差小于1 dB,且該誤差遠(yuǎn)小于上文提到的SPL檢測結(jié)果大約3 dB的波動.
以每個區(qū)間中心的SPL值對應(yīng)的增益作為該區(qū)間的增益.預(yù)先根據(jù)患者的聽力補(bǔ)償I/O曲線將每一個通道的64個增益值計算出來,并作為表格參數(shù)存放在存儲器中,從而不占用硬件計算資源.
2)查找Leading位確定信號SPL所處區(qū)間.
在設(shè)計中采用的輸入輸出數(shù)據(jù)為16 bit(含1 bit符號位),平均能量p(n)以32 bit表示.這里p(n)的計算方法同式(1).為了查表方便,先將p(n)平方得p2(n),p2(n)為64 bit.則聲壓級SPL計算如下:
設(shè)p2(n)的Leading位(這里是最高非零位)是第 M 位,M=0,1,2,……63.則滿足
即:
則p2(n)對應(yīng)的SPL處于第M區(qū)間內(nèi).因此,可以用查找Leading位的方法(見圖5),由p2(n)直接確定信號的SPL所處區(qū)間,避免了對數(shù)運(yùn)算.同時,查找Leading位操作本身的硬件和功耗開銷均很小.
圖5 查找Leading位Fig.5 The leading bit searching
3)查表求WDRC增益.
設(shè)通道標(biāo)號為k,則增益查表地址Alut為
式中:k=0,1,2……K -1,K 為通道總數(shù).實際上直接將M作為地址Alut的低6位,通道標(biāo)號k直接作為高位即可,從而無需加法運(yùn)算.
以此地址讀取增益參數(shù)存儲器,即可得到對應(yīng)的增益值glut(n).并且該增益值直接以線性刻度表示,避免了指數(shù)運(yùn)算.
4)增益平滑與啟動/釋放時間調(diào)整.
增益值較大的波動會造成失真,影響聽力補(bǔ)償后的音質(zhì)[2].因為信號的SPL檢測本身存在較大的誤差和波動,加上查表帶來的誤差,由上述過程所得到的增益值不可避免的存在波動.為了減少波動,采用下式對glut(n)進(jìn)行遞歸平滑,得到最終的增益:
式中:αg和βg是平滑常數(shù).該式除了可平滑增益,還可與式(1)一起調(diào)整啟動時間和釋放時間.此時,啟動時間和釋放時間可通過靈活選擇αg、βg、α、β這4個平滑常數(shù)的值來調(diào)整.
5)通道組合減小存儲及計算開銷.
考慮到濾波器組的硬件實現(xiàn)復(fù)雜度和線性相位等方面的要求,目前的多通道處理一般采用等帶寬通道劃分方式.但由于人耳對聲音頻率的感知與頻率高低近似為對數(shù)關(guān)系[10],高頻部分無需在每個通道計算增益.因此,助聽器設(shè)計中常常在將高頻通道進(jìn)行組合后計算增益,降低參數(shù)存儲和增益計算的開銷[2].
高端數(shù)字助聽器的輸入采樣率一般為16 kHz,為了在低頻部分達(dá)到較細(xì)致的頻段劃分,設(shè)計中采用32通道劃分方案(K=32).同時,采用將高頻通道按照倍頻程進(jìn)行組合的方式,將32個通道合并為10個頻帶,以每個頻帶內(nèi)各通道的總平均能量來查表計算該頻帶的WDRC增益.這樣存儲和計算開銷僅為通道組合前的10/32.
圖6(a)是在輸入信號2.5 kHz頻率處的SPL檢測結(jié)果,圖6(b)和(c)分別是對應(yīng)的按照直接計算法和所提出的方法仿真得到的WDRC增益.其中啟動時間和釋放時間分別設(shè)置為5 ms和75 ms.由圖可見,采用所提出方法得到的增益和直接計算得到增益比較吻合,同時波動也比較小.
圖6 增益計算仿真結(jié)果分析Fig.6 Simulation results analysis of gain computing
表1是采用所提出的低功耗硬件實現(xiàn)方法和文獻(xiàn)[9]給出的方法進(jìn)行一次WDRC增益計算(按照圖3的分段線性I/O曲線),在運(yùn)算和存儲器讀寫方面的開銷比較(包含了增益平滑的開銷).所提出的方法無需對輸入信號的SPL所處的區(qū)段(線性區(qū)、壓縮區(qū)、限幅區(qū)等)進(jìn)行判斷,從而在所有SPL值情況下的開銷完全相同.從表1可以看到,在每個區(qū)段,該方法均比文獻(xiàn)[9]給出的方法開銷要小.
表1 所提出的方法與文獻(xiàn)[9]方法的開銷比較Table 1 Comparison of operating costs between the proposed method and the method in reference[9]
另外,直接計算法以及文獻(xiàn)[8]和[9]給出的實現(xiàn)方法,在計算增益時,均需對I/O曲線作分段線性的約束,且分段越多,控制就越復(fù)雜,存儲和計算的開銷也越大.而所提出的方法,實現(xiàn)過程無需對I/O曲線作任何約束,從而除了圖3給出的I/O曲線外,該方法還可以用于非分段線性等多種形狀的I/O曲線配置,并且不會增加控制復(fù)雜度以及存儲和計算開銷.因此,在I/O曲線配置的靈活性方面,所提出的方法遠(yuǎn)比文獻(xiàn)[8]和[9]給出的方法有優(yōu)勢.
綜上,所提出的WDRC實現(xiàn)方法在確保較小的查表誤差和增益波動的前提下,實現(xiàn)了輸入信號的平均能量和線性刻度的WDRC增益之間的直接映射,完全避免了非線性運(yùn)算,降低了總體計算開銷.而啟動時間和釋放時間的要求,可以通過靈活調(diào)整α、β,αg、βg這4 個平滑常數(shù)來滿足.最后,相比文獻(xiàn)[8]和[9]給出的方法而言,該方法還具有I/O曲線配置比較靈活的優(yōu)勢.
所提出的多通道WDRC低功耗硬件實現(xiàn)的具體電路結(jié)構(gòu)以及與數(shù)字助聽器中其他主要模塊的連接如圖7所示,其中白線框內(nèi)的為多通道WDRC模塊.基于第2部分給出的低功耗實現(xiàn)方法進(jìn)行設(shè)計,該模塊僅涉及乘法、加法、查找Leading位、存儲器讀寫等簡單的操作.
圖7 所提出的多通道WDRC硬件實現(xiàn)結(jié)構(gòu)圖Fig.7 The proposed hardware realization framework for multi-channel WDRC
圖7中計算p(n)以及遞歸平滑子模塊分別按照式(1)和(12)進(jìn)行,累加運(yùn)算實現(xiàn)對需要組合的通道的能量進(jìn)行累加.M0~M3為位寬和深度各不相同的存儲器,其中M2中的增益參數(shù),采用在系統(tǒng)上電瞬間由片外FLASH加載的方式實現(xiàn)配置.控制子模塊提供其余各個子模塊的操作時序控制信號;地址產(chǎn)生及譯碼子模塊產(chǎn)生各存儲器的讀寫地址,因為采用通道組合后M3只有10個地址單元,設(shè)計中采用了開銷極小的譯碼電路實現(xiàn)地址范圍從0~31到0~9的轉(zhuǎn)換.
此外,數(shù)據(jù)從M0讀出直到增益gain寫入M3的處理過程,采用流水線的方式,減少了總體運(yùn)算時間的開銷,從而有助于降低系統(tǒng)時鐘頻率和時鐘樹的翻轉(zhuǎn)功耗.在此基礎(chǔ)上,利用Design Compiler綜合工具自動插入時鐘門控,關(guān)斷不工作的子模塊,減少無用翻轉(zhuǎn),進(jìn)一步降低動態(tài)功耗.
最后,基于上述方法,在SMIC的0.13μm工藝條件下完成了32通道WDRC模塊的低功耗VLSI設(shè)計,并作為整個數(shù)字助聽器專用DSP芯片Aid101的一部分進(jìn)行了流片.圖8為Aid101芯片的版圖,其中白線框內(nèi)的是所設(shè)計的32通道WDRC模塊,該模塊的版圖面積為 0.45 ×0.55 mm2.
圖8 數(shù)字助聽器DSP芯片Aid101的版圖Fig.8 Layout of the digital hearing aid DSP Aid101
圖9為Aid101芯片的板級測試系統(tǒng).經(jīng)過測試,該系統(tǒng)能較好的實現(xiàn)數(shù)字助聽功能.圖10是多通道WDRC模塊的性能測試結(jié)果(顯示的是某時刻的頻譜分析).從聽力補(bǔ)償功能開啟與關(guān)閉狀態(tài)下的語音處理結(jié)果的頻譜曲線對比可知,該模塊能在不同的頻段根據(jù)聽力損失和SPL的不同,對信號能量進(jìn)行不同程度的補(bǔ)償,同時很好的保持了頻譜原有的形狀.最后,在1.3 V內(nèi)核工作電壓和2.3 MHz的系統(tǒng)工作頻率下,所設(shè)計的32通道WDRC聽力補(bǔ)償模塊的功耗僅為19.2μW.
圖9 Aid101芯片的PCB測試系統(tǒng)Fig.9 PCB testing system for Aid101
圖10 WDRC功能測試結(jié)果Fig.10 Testing result of WDRC
在分析了數(shù)字助聽器多通道WDRC算法中聲壓級檢測特點的基礎(chǔ)上,提出一種基于查表法的低功耗硬件實現(xiàn)方法.
1)該方法實現(xiàn)了輸入信號的平均能量和線性刻度的WDRC增益之間的直接映射,同時采用合適的表格區(qū)間劃分和對查表結(jié)果進(jìn)行遞歸平滑的方法,可以保證較小的查表誤差和較小的增益波動.與中已有方法相比,該方法完全避免了非線性運(yùn)算,在計算開銷方面優(yōu)勢明顯;另外,在不增加控制復(fù)雜度以及存儲和計算開銷的前提下,可實現(xiàn)比較靈活的I/O曲線配置.
2)由于每個通道需要存儲64個增益參數(shù),盡管可以采用通道組合的方法,但是仍需要較多的存儲器開銷,這是該方法的一個主要缺點.
3)在SMIC的0.13μm工藝條件下,基于該實現(xiàn)方法,完成了數(shù)字助聽器 DSP芯片中32通道WDRC模塊的低功耗VLSI設(shè)計,并進(jìn)行了流片.實測結(jié)果表明,該模塊能很好地實現(xiàn)聽力補(bǔ)償?shù)墓δ?,并且正常工作的功耗僅為19.2μW.現(xiàn)[D].北京:清華大學(xué),2010:1-18.WENG Haibo.Study on digital hearing aid algorithm with dual microphone inputs and its embedded implementation[D].Beijing:Tsinghua University,2010:1-18.
[1]翁海波.雙麥克風(fēng)輸入的數(shù)字助聽算法研究與嵌入式實
[2]JAMESM K.Digital hearing aids[M].Oxfordshire:Plural Publishing,2008:1-16,221-262.
[3]WILILIAM E Y,CHRISTINA M R,HELEN J S,et al.Acclimatization in wide dynamic range multichannel compression and linear amplication hearing aids[J].Journal of Rehabilitation Research & Development,2006,43(4):517-536.
[4]GARININ.Compression techniques for digital hearing aids[D].Patras:University of Patras,2009:1-19.
[5]KUO Yu,LIN Tayi,CHANGW.Complexity-effective auditory compensation for digital hearing aids[C]//IEEE International Symposium on Circuits and Systems(ISCAS).Washington DC,USA,2008:1472-1475.
[6]KIM N,SIMON D,ANN S,et al.An integrated approach for noise reduction and dynamic range compression in hearing aids[C]//16th European Signal Processing Conference(EUSIPCO).Lausanne,Switzerland,2008.
[7]WEI Chengwen,KUO Yuting,CHANG Kuochiang,et al.A low-power mandarin-specific hearing aid chip[C]//IEEE Asian Solid-State Circuits Conference. Beijing,China,2010.
[8]NEERAJM,SANMATIK,F(xiàn)RANK L,et al.Development and fixed-point implementation of a multiband dynamic range compression(MDRC)algorithm[C]//Proc ACSSC.Pacific Grove,California,USA,2000.
[9]CHANG K,KUO Y,LIN T,et al.Complexity-effective dynamic range compression for digital hearing aids[C]//IEEE International Symposium on Circuits and Systems(ISCAS).Paris,F(xiàn)rance,2010.
[10]王青云,趙力,趙立業(yè),等.一種數(shù)字助聽器多通道響度補(bǔ)償方法[J].電子與信息學(xué)報,2009,31(4):832-835.WANG Qingyun,ZHAO Li,ZHAO Liye,et al.A multichannel loudness compensation method for digital hearing aids[J].Journal of Electronics& Information Technology,2009,31(4):832-835.
[11]BRIAN D P.Dynamic compression in a hearing aid[P].USA:US 7305100 B2,2007.
[12]SHIL F.Effect of dynamic compression characteristics on aided perception of reverberant speech[D].Syracuse:Syracuse University,2006:1-114.