基于ADPCM的數(shù)字語音存儲與回放系統(tǒng)設計方案
0 引言
由單片機與FPGA共同完成語音的錄制與回放,可以擁有豐富的接口資源和運算能力,鑒于PCM 的存儲冗余值過大和DPCM 的量化噪聲問題,ADPCM 成為了不錯的壓縮算法。同時為了擁有較高的共模抑制比、低失真、高功率和高輸入阻抗,本文采用儀表放大器、立體聲功率放大和控制芯片,結合ADPCM編碼,設計并實現(xiàn)了具有采集速度快、存儲時間長、語音回放質量良好的數(shù)字語音存儲與回放系統(tǒng)。
1 系統(tǒng)設計框圖
系統(tǒng)主要包括采集、處理與語音回放模塊三個部分。對于采集模塊,一般由麥克風或者耳機輸入的語音通過前置放大和低通濾波等預處理之后,完成A/D 轉化。對于語音處理模塊來說,進行ADPCM 的編碼以及FFT運算,可將數(shù)字化的語音存儲于外部介質。對于回放模塊來說,可提取存儲的語音內容,并且通過解碼、D/A轉換,最后驅動揚聲器來完成回放功能。系統(tǒng)整體框圖如圖1所示。
其中的立體聲ADC和立體聲DAC組成部分都集成在芯片PCM3010 內部。通過立體聲音量控制芯片PGA3010實現(xiàn)立體聲音量的調節(jié),最后由功率放大器驅動揚聲器完成語音播放功能。同時,通過在FPGA內部對采樣數(shù)據(jù)進行短時傅里葉變換,可在示波器上實時顯示語音信號的頻譜。
2 理論分析計算
2.1 ADPCM編碼的理論分析
ADPCM 的原理是對相鄰兩采樣值的差值進行編碼,利用自適應的思想改變量化階的大小。ADPCM 編碼法結合了DCM 與ADM,其實是差分算法原理的自適應方向改進。對于輸入的信號Si 與自適應輸出值Sp 存在差值,根據(jù)自適應量化步長d 對此差值進行量化,輸出ADPCM 四位量化碼I.對于量化碼I 又重新計算量化步長d .其原理圖如圖2所示。
另外一方面對于量化碼I,又要送入反量化器,根據(jù)計算的步長d 進行差別斷定,生成新的解碼值,進行下一輪的語音編碼。其原理圖如圖3所示。
通過ADPCM的編碼,可以達到1/6的壓縮比率。也就是說,對于24 b的采樣數(shù)據(jù),4 b的存儲率即可達成要求,可以大大延長存儲的時間。當采樣速率為46 kHz時,數(shù)據(jù)傳輸速率為184 Kb/s,由于外部存儲器BQ4015大小為512×8 Kb,故能夠存儲的最長時間為22 s.當采樣速率為8 kHz時,能夠存儲的最長時間為128 s.
2.2 信噪比計算
一般認為,通話的語音頻率一般不超過3.4 kHz,所以低通濾波器選取3.4 kHz作為其截至頻率,同時保證A/D采樣頻率高于8 kHz,根據(jù)奈奎斯特定律,即可滿足語音量化不損失。對于耳機聲道聲音,其頻率范圍為20 Hz~20 kHz,所以對于上述的濾波器以及A/D 采樣頻率也能滿足其要求。根據(jù)如下信噪比(單位:dB)公式:
若假定語音信號服從拉普拉斯分布,則xmax = 4σx .
所以可以計算出:
表明量化器中每個比特字長對信噪比的貢獻大約為6 dB.選用24 b A/D 轉換器PCM3010,理論上可以達到137 dB的信噪比。
評論