基于ADPCM算法的汽車(chē)智能語(yǔ)音報(bào)警系統(tǒng)設(shè)計(jì)
低通濾波器的設(shè)計(jì)指標(biāo)為:通帶截止頻率fp=3 400 Hz,通帶允許最大衰減αp≤3 dB;為抑制采樣混疊失真,確定阻帶截止頻率fs=4 000 Hz,阻帶允許最小衰減as≥40 dB。由于橢圓濾波器可以獲得較其他濾波器窄的過(guò)渡帶寬,故適用該系統(tǒng)設(shè)計(jì)。利用濾波器輔助設(shè)計(jì)軟件Filter Wiz Pro獲得五階橢圓低通濾波器電路如圖4、仿真結(jié)果如圖5所示。
級(jí)聯(lián)高通和低通濾波器,即可得到300 Hz~3.4 kHz帶通濾波器,實(shí)驗(yàn)表明,該濾波器效果良好,達(dá)到設(shè)計(jì)指標(biāo)。后向通道的帶通濾波器的設(shè)計(jì)與此相同。
4 系統(tǒng)軟件的設(shè)計(jì)
4.1 FPGA部分
選用Altera公司的Cyclone系列的EPlC6Q-240C8實(shí)現(xiàn)ADPCM編碼器和解碼器。該器件含有120 000典型門(mén)資源、5 980個(gè)邏輯單元、6個(gè)RAM模塊、92 160 Bit RAM或ROM、2個(gè)數(shù)字PLL、185個(gè)可編程I/O口,最高工作時(shí)鐘可達(dá)300 MHz以上,并通過(guò)JTAG接口實(shí)現(xiàn)在系統(tǒng)配置。
ADPCM是一種利用樣本間的高度相關(guān)性和量化階自適應(yīng)壓縮數(shù)據(jù)的波形編碼技術(shù)。ADPCM綜合了APCM的自適應(yīng)特性和DPCM的差分特性。它的核心思想是利用自適應(yīng)改變量化階的大小,即就是使用小的量化階編碼小的差值,使用大的量化階來(lái)編碼大的差值;使用過(guò)去的樣本值估算下一個(gè)輸入樣本的預(yù)測(cè)值,實(shí)際樣本值和預(yù)測(cè)值之間的差值總是最小。ADPCM編解碼器的輸入信號(hào)是G.711 PCM代碼,若采樣頻率為8 kHz,每個(gè)代碼為8位,則它的數(shù)據(jù)率為64 Kb/s,而ADPC M的輸出代碼是“自適應(yīng)量化器”的輸出,該輸出是4位的差分信號(hào),它的采樣頻率仍是8 kHz,數(shù)據(jù)率為32 Kb/s,這樣就獲得了2:1的數(shù)據(jù)壓縮。
編碼過(guò)程:計(jì)算8位的二進(jìn)制補(bǔ)碼的當(dāng)前采樣值Sc和上一預(yù)測(cè)采樣值Sp之間的差值d,該差值經(jīng)量化編碼輸出4位ADPCM代碼I。在算法中,定義一個(gè)結(jié)構(gòu)變量存儲(chǔ)預(yù)測(cè)采樣值Sp和量化步長(zhǎng)q,并制定了兩個(gè)表:一個(gè)表為索引調(diào)整表,其輸入為差值量化編碼I,用于更新步長(zhǎng)索引;另一個(gè)表為步長(zhǎng)調(diào)整表,其輸入為步長(zhǎng)索引,輸出為步長(zhǎng)q。編碼時(shí),首先用上一個(gè)采樣點(diǎn)的步長(zhǎng)索引查步長(zhǎng)調(diào)整表求出步長(zhǎng)q,然后根據(jù)下式來(lái)確定4位ADPCM編碼值I:
再將編碼值I作為索引調(diào)整表的輸入,查表輸出索引調(diào)整,并和結(jié)構(gòu)變量中原步長(zhǎng)索引相加,產(chǎn)生新的步長(zhǎng)索引,在下一個(gè)采樣值的編碼中使用。編碼器輸出I后,還需要重復(fù)進(jìn)行與解碼完全一樣的計(jì)算過(guò)程,求出新的預(yù)測(cè)采樣值Sp。
解碼過(guò)程:首先通過(guò)步長(zhǎng)索引查步長(zhǎng)調(diào)整表得到量化步長(zhǎng),差值量化編碼I經(jīng)逆量化得到語(yǔ)音差值d,這是求I的逆過(guò)程;然后與前次預(yù)測(cè)值Sp。一起重建當(dāng)前語(yǔ)音信號(hào)Sc;最后利用Sp=Sc,更新預(yù)測(cè)值Sp,用I更新量化步長(zhǎng)索引。
評(píng)論