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

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于分布式算法的低通FIR濾波器

    基于分布式算法的低通FIR濾波器

    作者: 時間:2010-10-21 來源:網絡 收藏

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

      2 的軟件實現

      從式(5)和式(7)可以看出,利用實現一個N項乘積和,關鍵是如何實現式(4)中乘積項及各乘積項之和。

      在FPGA中可以預先設定一個N位輸入的查找表來實現部分乘積項,即預先設定N階濾波系統查找表,實現向量x(i)={x0(i),x1(i),x2(i),…,xN-1(i))到p(i)的一個映射。由于查找表的地址空間與階數成指數關系(2N),完全用查找表來實現部分乘積項需要容量很大的存儲器,這就需要占用巨大的資源,而且功耗增加、速度降低。因此為了減小設計規模,可以將一個大的查找表分為幾個較小的查找表來實現。例如,本系統采用的8階,則用一個查找表來實現需要256(28)位地址空間的ROM,將8階分成兩個4階濾波器實現,只需要2個16(24)位地址空間的ROM,這樣大大地降低了設計規模和資源使用量。把輸入x(i)作為地址,分為高四位和低四位地址進行查找。表1給出了8階濾波系統的低四位地址x(i)與p(i)的映射關系。

      

    8階濾波系統的低四位地址x(i)與p(i)的映射關系 www.elecfans.com

      本系統中濾波器系統函數采用Matlab中的fdatool工具,并根據設計要求采用了kaiser窗設計出濾波器的系統函數h(n),其采樣頻率為500 kHz,通頻帶帶寬為100 Hz。設計的低通濾波器如圖1所示。若需實現高通或帶通濾波器,只需在設計時利用高通或帶通濾波器代替低通濾波器即可。

      

      利用Verilog硬件描述語言設計本系統軟件,系統主要分為以下4個部分。包括頂層文件、A/D采樣、實現和D/A轉換。系統總體結構如圖2所示。

      

      由于FPGA頻率為100 MHz,采用的ADC0809轉換頻率必須小于1 MHz,所以在頂層文件對系統時鐘進行200分頻,提供外圍所需時鐘。然后對各模塊進行例化,使之成為完整的系統。

      對A/D采樣輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿時啟動A/D轉換,之后EOC輸出信號變低,指示轉換正在進行。直到完成A/D轉換,EOC變為高電平,指示A/D轉換結束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態門打開,轉換結果的數字量輸出到數據總線上。CLK為時鐘輸入信號線。由頂層文件的分頻時鐘提供500 kHz時鐘,對信號進行采集。

      主體的實現主要由以下幾個部分組成:數據接收存儲、數據選擇器、2個存儲器、加法和控制部分。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 华容县| 阿尔山市| 工布江达县| 兖州市| 扬中市| 西藏| 利津县| 沙田区| 赤壁市| 曲阜市| 巫溪县| 山东省| 孝昌县| 隆回县| 伊通| 古丈县| 徐水县| 中江县| 延长县| 新民市| 临清市| 同德县| 罗城| 班玛县| 平安县| 祁连县| 宜宾市| 同德县| 遂平县| 徐州市| 喜德县| 桦甸市| 陕西省| 龙门县| 昌宁县| 乌鲁木齐县| 旬阳县| 报价| 青河县| 西贡区| 应用必备|