新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于分布式算法的低通FIR濾波器

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

作者: 時間:2010-10-21 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://m.butianyuan.cn/article/151412.htm

  2 的軟件實現(xiàn)

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

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

  

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

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

  

  利用Verilog硬件描述語言設(shè)計本系統(tǒng)軟件,系統(tǒng)主要分為以下4個部分。包括頂層文件、A/D采樣、實現(xiàn)和D/A轉(zhuǎn)換。系統(tǒng)總體結(jié)構(gòu)如圖2所示。

  

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

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

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



關(guān)鍵詞: 濾波器 FIR 算法 分布式 基于

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉