• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 模擬技術 > 設計應用 > 基于Matlab的FIR帶通濾波器設計及DSP實現

    基于Matlab的FIR帶通濾波器設計及DSP實現

    作者: 時間:2012-07-25 來源:網絡 收藏

    3 數字帶通濾波器語音去噪的實現
    3.1 硬件結構
    圖3為帶通濾波器的語音去噪硬件結構框圖。系統主要由芯片(TMS320C5402)、A/D轉換器(ADS7864)和D/A轉換器(DAC7625)組成。

    本文引用地址:http://www.czjhyjcfj.com/article/186064.htm

    g.JPG


    實現的核心器件采用TI公司生產的TMS320C5402芯片。該芯片采用先進的修正哈佛結構,片內共有8條總線、CPU、在片存儲器、在片外圍電路等硬件和高度專業化的指令系統,使它的處理速度和容量大大提高,為數字濾波中的復雜算法的實現提供了良好的保證。
    A/D轉換器采用TI公司生產的ADS7864芯片,它是一個高速(轉換時間2μs)12位精度,6通道的A/D轉換器件。它的最高工作頻率可達8 MHz,采樣率為500 kHz。根據奈奎斯特定理,信號的最高頻率不能高于250 kHz,這樣才不會有失真,而這個頻率對于語音信號的處理已經足夠。
    D/A轉換芯片采用DAC7625,它是一個4路12位D/A轉換器件,每路都有輸入寄存器和DAC寄存器,構成雙緩沖結構,轉換時間為10μs。
    3.2 軟件設計
    3.2.1 數據組織方式
    若輸入信號x(n)和濾波器的單位沖激響應h(n)在頻域分別為h1.jpg,則其輸出信號的頻率響應為h2.jpg。根據離散傅氏變換的性質,可以得到濾波系統的差分方程:
    h.JPG
    從上文的仿真過程可得到濾波器的級數N和濾波器系數h(n)。從上述可知數字濾波器實現時,主要是進行乘和加運算以及數據存取操作。
    在定點上實現濾波有兩種方式:一種是用線性緩沖區實現z-1,該方式能保證新老數據在存儲器中的存放位置直接明了,新的數據存放在緩沖區的固定位置;另一種方式是循環緩沖區實現z-1,該方式新老數據在緩沖區的位置不直接明了,新的數據沒有固定位置,但可以方便地完成濾波器窗口的自動更新。考慮到本方案中使用的是匯編語言編程,還有N的階數較大,為提高速率,因此在選擇FIR濾波器的方式時選擇循環緩沖區實現z-1的方式。
    對于N級的FIR濾波器,在數據存儲器中開辟一個稱之為滑窗的N個單元的緩沖區,滑窗中存放最新的N個輸入樣本。每次輸入新的樣本時,一新樣本改滑窗中的最老數據,而滑窗中的其他數據不需要移動。利用片內BK(循環緩沖區長度)寄存器對滑窗進行間接尋址,環緩沖區地址首位相鄰。
    3.2.2 程序設計思路
    程序設計的總體思路是:啟動ADS7864對輸入的模擬信號進行A/D轉換,每采集到一個數據就送入DSP進行濾波運算,運算結果送DAC76 25轉換為模擬量。不斷地重復上述過程,在DAC7625的輸出端就得到濾波后的模擬信號。
    為了精確地控制ADS7864的采樣率,使用TMS320C5402內部的定時器控制采樣時間間隔T。設置定時器的定時時間等于采樣時間間隔T,并讓它工作在中斷方式,則定時器每過T時間間隔就向CPU發出中斷請求,CPU響應中斷請求,轉去執行中斷服務程序。在中斷服務程序中讀取A/D轉換結果,對轉換結果進行濾波運算,并將運算結果送D/A轉換器轉換為模擬量。因此,程序分為主程序和定時器中斷服務程序兩部分,流程圖如圖4,圖5所示。

    j.JPG


    3.2.3 FIR濾波源程序
    FIR濾波器指令,使用MAC指令執行FIR濾波,將濾波輸出放在累加器A中:
    i.JPG

    數字濾波器相關文章:數字濾波器原理


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 临高县| 大悟县| 盘山县| 开原市| 南开区| 固原市| 沧源| 盈江县| 玉树县| 靖州| 浮山县| 石河子市| 永吉县| 九龙城区| 西乌| 子洲县| 凭祥市| 南华县| 葫芦岛市| 莲花县| 禄劝| 盘山县| 黑山县| 信宜市| 巩留县| 长沙市| 江门市| 元朗区| 郁南县| 清水河县| 永春县| 翼城县| 博客| 亳州市| 永靖县| 合作市| 平阳县| 马山县| 石楼县| 小金县| 柳州市|