《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 多制式語音編碼及其DSP實現(xiàn)

多制式語音編碼及其DSP實現(xiàn)

2008-09-02
作者:楊 璐 張春茂 崔慧娟 唐

  摘? 要: 介紹了一種多制式語音編解碼" title="編解碼">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器,在單片TMS320VC5409上完成4路話音的全雙工通信,并實現(xiàn)G.729a,、CVSD、ADPCM算法之間的編碼轉(zhuǎn)換,給出了算法的軟硬件實現(xiàn)、算法的運算量及所占用的硬件資源,。

  關(guān)鍵詞: 多制式語音編解碼? TMS320VC5409? G.729a? CVSD? ADPCM

?

  在各種通信設(shè)備中,實時的語音壓縮通常在DSP上實現(xiàn)。單一的編碼算法,由于碼率和算法固定,系統(tǒng)的靈活性較差。越來越多的通信服務(wù)要求能實現(xiàn)多種、多路編碼算法,提供一定范圍內(nèi)的編碼速率和編碼算法的多種選擇,例如軟件無線電,、IP電話、多媒體終端等,。

  G.729a是ITU制定的一種高質(zhì)量的中速率語音編碼" title="語音編碼">語音編碼標(biāo)準(zhǔn),編碼速率為8kbps,,目前已在許多通信系統(tǒng)中得到了應(yīng)用。16/32kbps的CVSD是一種抗信道誤碼非常好的語音編碼算法,在軍事通信,、宇航通信中得到了廣泛的應(yīng)用,。32kbps的ADPCM是一種算法較簡單的波形編碼,具有很好的話音質(zhì)量和抗噪性能,在衛(wèi)星通信、數(shù)字話路倍增系統(tǒng)中得到了廣泛應(yīng)用,。綜合了這三種算法的編碼系統(tǒng),在8kbps~32kbps碼率具有較高的靈活性,。

  由于語音壓縮的運算量、存儲量和精度要求都不太高,在考慮價格因素的基礎(chǔ)上,定點DSP足以勝任語音編解碼的要求,。本文采用了TI公司的TMS320VC5409定點DSP實現(xiàn)了上述三種語音編解碼算法,。算法DSP的實現(xiàn)通過了有關(guān)測試。其中G.729a和ADPCM采用ITUT有關(guān)建議提供的測試序列進(jìn)行了測試,CVSD按照我國有關(guān)標(biāo)準(zhǔn)進(jìn)行了測試,。

  本文對以上三種語音編碼和TMS320VC5409做簡單介紹后,對算法的軟件和硬件實現(xiàn)進(jìn)行介紹,并給出算法所需運算量以及所占用的硬件資源。

1 DSP芯片和語音編碼算法

  (1)TMS320VC5409簡介

??? TMS320VC5409是TI公司生產(chǎn)的一種性價比較高的定點DSP芯片,運算速度為80MIPS/100MIPS。它擁有改進(jìn)的哈佛結(jié)構(gòu),、一個CPU,、片上存儲區(qū)(32KB的ROM和64KB的DARAM)、片上外設(shè)以及專用的指令結(jié)構(gòu),。它具有以下主要優(yōu)點:

  ·1條程序總線和3條數(shù)據(jù)總線,。配合存儲區(qū)的雙操作數(shù)讀取能力,可以支持單周期,三操作數(shù)指令,提高了程序的運行效率和通用性;

  ·先進(jìn)的針對應(yīng)用設(shè)計的CPU硬件邏輯提高了芯片的性能;

  ·高度專用的指令結(jié)構(gòu)提供了更快的算法實現(xiàn)和更方便的優(yōu)化;

  ·片上外設(shè)包括3個McBSP(多通道緩沖串口" title="串口">串口)、一個6通道的DMA控制器,、8bit HPI口及鎖相環(huán)時鐘發(fā)生器;

  ·模塊化結(jié)構(gòu)方便了快速的后續(xù)發(fā)展,;

  ·先進(jìn)的IC處理技術(shù)實現(xiàn)了高性能和低功耗,5V靜態(tài)CMOS技術(shù)進(jìn)一步降低了功耗。

????(2)G.729a算法

  G.729是ITU在8kbps速率上的標(biāo)準(zhǔn),采用“共軛結(jié)構(gòu)代數(shù)碼本激勵線性預(yù)測編碼方案”(C-ASCELP)算法,。這種算法綜合了波形編碼和參數(shù)編碼的優(yōu)點,以線性預(yù)測編碼技術(shù)為基礎(chǔ),采用了矢量量化,、分析合成和感覺加權(quán)等技術(shù)。G.729a只在G.729的基礎(chǔ)上減少了一些運算量,保持了兼容性,質(zhì)量也基本沒有下降,。

  (3)32kbps ADPCM算法

  G726是ITU制定的自適應(yīng)差分脈沖編碼算法標(biāo)準(zhǔn),有4種速率,。在此項目中,使用32kbps的速率。ADPCM算法是一種波形編碼,它在PCM編碼的基礎(chǔ)上引入了預(yù)測和差分的概念,僅對實際值與預(yù)測值之間的差值進(jìn)行編碼,。在編碼過程中,用過去樣點的值對當(dāng)前樣點進(jìn)行預(yù)測,并自適應(yīng)地調(diào)整預(yù)測系數(shù),使預(yù)測誤差很小,從而在降低碼率的同時,保持了很高的編碼質(zhì)量,。

  (4)CVSD(32kbps/16kbps)算法

  連續(xù)可變斜率增量調(diào)制,是一種1bit的差分波形編碼方式。自適應(yīng)的量階隨信號統(tǒng)計特性的變化而變化,,在信號很大動態(tài)范圍內(nèi),,可獲得最大信噪比。并且易于實現(xiàn),,電路結(jié)構(gòu)簡單,。

  主要技術(shù):三連0/三連1檢測,即若檢測到碼流中有三連0或三連1,則表示信號在驟升或驟降,調(diào)整量階以適應(yīng)信號變化。

2 硬件系統(tǒng)

  (1)硬件板介紹

在發(fā)端,模擬信號通過前端處理電路和A/D采樣,轉(zhuǎn)換成8bit A-law PCM信號,。對數(shù)PCM信號在TMS320VC5409中轉(zhuǎn)成線性碼,并進(jìn)行壓縮編碼,。輸出的G.729a/ADPCM/CVSD碼流在信道上傳輸。

  接收端接收到的壓縮碼流在DSP中被解碼成對數(shù)PCM信號,再經(jīng)過D/A變換和用戶電路,最終得到模擬話音,。其中CPLD用來產(chǎn)生8kHz的幀同步" title="幀同步">幀同步信號,使各硬件芯片之間協(xié)同工作,。

????A/D、D/A部分采用單片MC14557芯片,。單路信號的硬件系統(tǒng)框圖如圖1所示,。

?

????(2)算法的硬件選擇

  程序定義了兩個標(biāo)志變量flag1、flag2,。利用VC5409提供的可屏蔽中斷INT0~I(xiàn)NT3[1],在中斷服務(wù)例程中對2個標(biāo)志位進(jìn)行設(shè)置,從而控制主程序的跳轉(zhuǎn),。

  系統(tǒng)加電后,INT0~I(xiàn)NT3其中一個管腳給出中斷請求信號,程序執(zhí)行中檢測到哪個中斷,就執(zhí)行該中斷對應(yīng)的編碼算法。接著,主程序?qū)MR寄存器置位以屏蔽這些中斷,直至下一次系統(tǒng)復(fù)位,。其中INT0中斷在測試中是無編碼轉(zhuǎn)換的跳轉(zhuǎn),但在應(yīng)用中用于選擇32kbps的CVSD算法,。表1是算法選擇的硬件中斷與標(biāo)志位設(shè)置,。

?

?

  (3)數(shù)據(jù)流輸入和輸出

  VC5409提供了3個McBSP (Multichannel Buffered Serial Ports)[2],并在其中集成了硬件對數(shù)PCM編解碼器。串口的雙緩沖區(qū)發(fā)送,、三緩沖區(qū)接收能保證數(shù)據(jù)的連續(xù)性,。收發(fā)的數(shù)據(jù)流字長可以是8、12,、16,、20、24,、32bit,每幀最多可以有128個字,。表2是本項目采用的串口配置。

?

?

  對每種算法,4路編解碼器都要求全雙工工作,因此,對3個McBSP都進(jìn)行了配置,。其中,McBSP0負(fù)責(zé)PCM碼流的收發(fā),。PCM碼流是4路8bit的A-law信號,因此定義字長為8位;McBSP1收發(fā)G.729的碼流。G.729分幀編碼,幀長10ms,每幀80bit,。為了數(shù)據(jù)能夠方便,、有效地收發(fā),定義串口的字長為16bit,這樣,每5個幀同步收全一個G.729幀,共16×5×4(路)=80×4bit。

  為了取得數(shù)據(jù)格式的一致性,方便串口收發(fā)碼流,對ADPCM和CVSD定義了相同的碼流格式,并由McBSP2收發(fā),。如圖2所示,。

32kbps ADPCM每樣點用4bit編碼,規(guī)定其碼流為每樣點的碼字重復(fù)2次,即占8bit。4路信號共32bit;16kbps和32kbps的CVSD是每樣點2bit和4bit編碼,故規(guī)定其碼流為每比特編碼碼字分別重復(fù)4次和2次,即均占8bit,。4路信號也是32bit,。

?

  (4)數(shù)據(jù)流的傳輸(串口與存儲區(qū))

  VC5409提供了6個DMA[2]通道,用戶可以設(shè)置每個DMA通道的源地址、目的地址,、一次傳輸?shù)臄?shù)據(jù)量,、同步事件和中斷方式等。

  表3是本項目中各DMA通道的配置情況,。

?

  (5)數(shù)據(jù)傳輸?shù)目刂?/P>

  如圖3所示,串行數(shù)據(jù)流在McBSP的DR管腳接收,DX管腳發(fā)送,。數(shù)據(jù)收發(fā)由幀同步信號觸發(fā)。幀同步由CPLD提供,位時鐘由外部晶振提供,。

?

  串口與存儲區(qū)之間的數(shù)據(jù)交換由CPU或DMA控制器完成,。接收寄存器DRR滿(發(fā)送寄存器DXR空)時,串口向DMA發(fā)出同步事件(REVT/XEVT)或向CPU發(fā)出中斷請求(RINT/XINT),通知DMA或CPU數(shù)據(jù)傳輸已準(zhǔn)備好。

  對PCM和G.729碼流,串口(McBSP0/McBSP1)的數(shù)據(jù)讀寫為DMA方式,。

  由于G.729采用分幀編碼,一次編解碼待處理的數(shù)據(jù)量較大,。為了避免DMA讀取數(shù)據(jù)過程中連續(xù)碼流溢出,設(shè)計緩沖區(qū)為雙倍大小。這2塊緩沖區(qū)以乒乓方式工作,即DMA傳遞其中一塊緩沖區(qū)數(shù)據(jù)時,另一塊緩沖區(qū)接收來自串口或CPU的下一組數(shù)據(jù),。由于VC5409的DMA支持緩沖區(qū)全滿或半滿都產(chǎn)生中斷的方式,所以只要將這2塊緩沖區(qū)設(shè)計成連續(xù)的,就可以方便地實現(xiàn)乒乓工作,而不產(chǎn)生數(shù)據(jù)溢出,。

  對ADPCM/CVSD碼流,由于每次處理的碼流長度較短(32bit),故在中斷服務(wù)例程中由CPU直接讀寫串口(McBSP2),而不采取DMA方式。

3 軟件系統(tǒng)

  (1)CVSD算法的修正

  CVSD是每樣點1bit的編碼方式,所以32kbps和16kbps的CVSD輸出信號分別由32kHz和16kHz采樣的PCM信號編碼得到,。而實際CVSD編碼器的輸入總是8kHz的采樣信號,為了滿足算法要求,對輸入PCM碼流進(jìn)行插值濾波,。

  根據(jù)插值定理,可以選擇低通濾波器無失真地恢復(fù)原始信號,。為了取得信號質(zhì)量和運算量的折中,設(shè)計了5階的橢圓型IIR濾波器。

  1:2插值 (16kbps)

  分子多項式系數(shù):

  [1.02295e-01,, 1.14533e-01,, 2.41943e-01,

  2.41943e-01,, 1.45325e-01, 1.02295e-01]

  分母多項式系數(shù):

  [1.00000e+00,, -1.26125e+00,, 1.91846e+00, -1.21680e+00,, 6.79321e+01,, -1.54358e+01]

  1:4插值 (32kbps)

  分子多項式系數(shù):

  [4.48200e+02, -6.9309e+02,, 4.68041e+02,,

  [4.68041e+02, -6.9309e+02,, 4.48200e+02]

  分母多項式系數(shù):

  [1.00000e+00,, -3.56926e+00, 5.66631e+00,, -4.83285e+00,, 2.20789e+00, -4.2822e+01]

  另外,在對編解碼后的信號進(jìn)行頻譜測試時,發(fā)現(xiàn)在3kHz處,信號的幅度超出要求3db左右,。為此在編碼端加入了譜調(diào)整的模塊,使3kHz處頻譜下降3db,作為補償,。

  

?

  (2) G.729算法的回聲抵消模塊

  G.729算法編碼延時為15ms,回聲現(xiàn)象比較明顯,必須引入回聲抵消算法加以抑制。

  自適應(yīng)回聲抵消器的一般算法中,所需運算量最大的是更新參數(shù)部分,。階數(shù)越大,運算量越大,。考慮到DSP的性能和算法的運算量要求,采用128階的自適應(yīng)濾波器進(jìn)行回聲抵消,。

  回聲抵消模塊的輸入是當(dāng)前一幀輸入語音信號與以前解碼器輸出的一段合成語音,。回聲抵消器利用解碼器輸出的合成語音信號對一幀輸入信號進(jìn)行回聲抵消,然后將抵消掉回聲的一幀輸入語音信號提供給編碼器作為輸入信號,。

  (3)存儲區(qū)的優(yōu)化[4]

 ?、儆捎谑褂肈P尋址,變量名僅指示偏移量;而4路信號分時處理,各路所用變量與程序代碼相同,所以可以使用不同頁上的同名變量,在不混淆各路信號數(shù)據(jù)存儲區(qū)的前提下,簡化程序存儲區(qū)大小。

  對于ADPCM程序,編解碼器的有狀態(tài)變量各占25字,編解碼器都使用的變量占14字,。鑒于DP一頁有128字,所以可以考慮前兩路編解碼器變量共用一頁存儲區(qū);后兩路編解碼器變量共用一頁存儲區(qū),。這樣,2路編解碼器的存儲量有25×2×2+14=114字<128字,可以存儲在同一頁上。

  為了區(qū)分同一頁上的2路變量以及同一路的編解碼器變量,它們的名稱應(yīng)有不同,。因此,編解碼的程序模塊各需要2個版本,即總的程序存儲量=單路程序量×2,。

 ?、趯VSD和ADPCM算法,由于輸入輸出信號不分幀(逐樣點處理),而碼流格式又取得了一致,所以可以共享輸入輸出存儲單元。

  (4)代碼的優(yōu)化[3]

  TMS320C54xx提供了強(qiáng)大的硬件結(jié)構(gòu)和指令體系以支持基本的數(shù)據(jù)處理操作,。對匯編語言,充分挖掘指令集的潛力,能大幅度降低程序的復(fù)雜度,提高運行速度,。如:使用乘累加指令MAC、MAS等,在一個時鐘周期內(nèi)實現(xiàn)1次乘法和1次加(減)法;使用DELAY指令,在一個周期內(nèi)實現(xiàn)變量更新,簡化了濾波器的實現(xiàn);使用循環(huán)尋址,對FIR和IIR濾波器只要在主程序中設(shè)置一次基地址,降低了開銷;使用RPT+MVDD指令,進(jìn)行塊搬移,減少頻繁內(nèi)存讀寫的開銷;使用雙字運算指令DADD,、DADSUB等指令對32位的變量進(jìn)行操作;使用EXP+NORM指令快速計算定點數(shù)的指數(shù)和尾數(shù);使用RPT+DSUBT指令高效實現(xiàn)定點數(shù)除法;使用RPT+FIRS指令高效實現(xiàn)FIR濾波計算,。

4 實現(xiàn)結(jié)果

  各算法的復(fù)雜度和存儲量如表4所示,實現(xiàn)所用資源。

?

?

  因此,一片VC5409上的硬件資源可以滿足算法要求,。實際系統(tǒng)的各算法性能也通過了相關(guān)的標(biāo)準(zhǔn)測試,。

?

參考文獻(xiàn)

1 TMS320C54x DSP Reference Set Volume 1:CPU and Peripherals. Texas Instrument, SPRU131G,, March 2001

2 TMS320C54x DSP Reference Set Volume 5: Enhanced?Peripherals. Texas Instrument,, SPRU302, June,, 1999

3 TMS320C54x DSP Reference Set Volume 2: Mnemonic?Instruction Set. Texas Instrument,, SPRU172C, March 2001

4 The Implementation of G.726 Adaptive Differential Pulse?Code Modulation (ADPCM) on TMS320C54x DSP. Texas

Instrument,, July 1997

5 Implementation of G.729 on TMS320C54x. Texas Instrument,, March 2000

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。