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

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > DA算法的FIR濾波器設(shè)計(jì)

    DA算法的FIR濾波器設(shè)計(jì)

    作者: 時(shí)間:2011-06-04 來(lái)源:網(wǎng)絡(luò) 收藏

    1.引言
    在數(shù)字信號(hào)處理系統(tǒng)中,數(shù)字多采用專用DSP芯片(如TMS320CXX系列),這種基于DSP的處理系統(tǒng)存在很多優(yōu)點(diǎn),比如方案靈活、可操作性強(qiáng)、程序易于移植。但這種結(jié)構(gòu)的多是根據(jù) 的數(shù)據(jù)移位相乘累加的編寫相應(yīng)軟件,利用軟、硬件相互結(jié)合完成濾波器的。由于軟件運(yùn)行時(shí),指令都是串行執(zhí)行的,這嚴(yán)重制約了系統(tǒng)的運(yùn)行速率,不能滿足高傳輸速率,大數(shù)據(jù)吞吐量的數(shù)字信號(hào)的實(shí)時(shí)性處理要求。而基于的FPGA濾波器則是一種采用純硬件的方式實(shí)現(xiàn) 濾波器的方式,這種方法突出的優(yōu)點(diǎn)是運(yùn)算速度快,特別適合在高速、實(shí)時(shí)、快變的數(shù)字信號(hào)處理要求。

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

    2.的基本思想
    第一個(gè)討論分布式算法(distributed arithmetic,)的可以追溯到1973年Cr0i Croisier的一篇論文,并由Peled和Liu來(lái)推廣。但是直到FPGA出現(xiàn)以后,才在FPG計(jì)算乘積和中被廣泛地應(yīng)用。在FPGA 芯片中,分布式算法(distributed arithmetic,DA)是一種很重要的技術(shù)。它在乘積和的計(jì)算中已被廣泛應(yīng)用,為了理解DA算法原理,我們考慮有一個(gè)線性時(shí)不變網(wǎng)絡(luò)的輸出可以用下式表示:

    假設(shè)系數(shù)c[n]是已知常數(shù),x[n]是變量,在有符號(hào)DA系統(tǒng)中假設(shè)變量x[n]的表達(dá)式如下:

    其中xb[n]表示 x[n]的第b位,即x[n]是x第n個(gè)樣點(diǎn)。所以,內(nèi)積y 可以表示為:

    我們重新分別求和次序(這就是分布式算法的由來(lái)),結(jié)果是:
    y=(c[0]xB-1[0]+c[1]+……+c[N-1]xB-1[N-1])2B-1+(c[0]xB-2[0]+c[1]+……+c[N-1]xB-2[N-1])2B-2 (2-4)
    .
    .
    .
    +(c[0]x0[0]+c[1]x0[1]+c[N-1]x0[N-1])20
    用更緊湊的形式表示為:

    從(2—4)式可以發(fā)現(xiàn),分布式算法是一種以實(shí)現(xiàn)乘加運(yùn)算為目的的運(yùn)算方法。它與傳統(tǒng)算法實(shí)現(xiàn)乘加運(yùn)算的不同在于執(zhí)行部分積運(yùn)算的先后順序不同。分布式算法在實(shí)現(xiàn)乘加功能時(shí),是通過(guò)將各輸入數(shù)據(jù)的每一對(duì)應(yīng)位產(chǎn)生的部分積預(yù)先進(jìn)行相加形成相應(yīng)的部分積,然后再對(duì)各個(gè)部分積累加而得到最終的結(jié)果,而傳統(tǒng)算法是等到所有乘積已經(jīng)產(chǎn)生之后再來(lái)相加完成乘加運(yùn)算的。與傳統(tǒng)串行算法相比,分布式算法可極大地減少硬件電路的規(guī)模,提高電路的執(zhí)行速度。

    3.基于DA算法的FIR數(shù)字濾波器的硬件實(shí)現(xiàn)
    由上面分析可以知道,對(duì)于任何一個(gè)線性時(shí)不變網(wǎng)絡(luò)總可以將它轉(zhuǎn)換成式(2-5)那樣的形式,F(xiàn)IR濾波器是一個(gè)很典型的線性時(shí)不變網(wǎng)絡(luò),它的表達(dá)式是:

    我們可以將它轉(zhuǎn)化成下面這樣的形式:

    在本系統(tǒng)中,采用的是8 位輸入,所以B = 8 則:

    線性相位FIR濾波器滿足系數(shù)對(duì)稱條件,本系統(tǒng)設(shè)計(jì)的系統(tǒng)為16階,那么它的系數(shù)關(guān)于h[7]偶對(duì)稱,即有:
    h[n]= h[16-1-n]= h[15-n] (3-4)
    由式(3-3)和(3-4)可得到實(shí)現(xiàn)系統(tǒng)硬件框圖如圖3-1:

    4.系統(tǒng)的VHDL描述
    4.1頂層模塊設(shè)計(jì)
    Library ieee;
    Use ieee.std_logic_1164.a11;
    Use ieee.std_logic_unsigned.all;
    Entity FIR is
    Port (x: in std_logic_vector(7 downto 0);
    clk : in std_logic;
    y : out std_logic_vector(7 downto 0));
    end FIR;
    architecture behave of FIR is
    component lpfir
    port (
    in : in std_logic_vector(7 downto 0);
    clk : in std_logic;
    out : out std_logic_vector(7 downto 0));
    end component ;
    begin
    process(clk)
    begin
    u1:lpfir port map (x,clk,y);
    end process;
    end behave;

    4.2 LUT查詢表ROM的建立
    用MIF文件格式編輯的ROM初始化值
    WIDTH = 16
    DEPTH = 16
    ADDRESS_RADIX = HEX ;


    上一頁(yè) 1 2 下一頁(yè)

    關(guān)鍵詞: 設(shè)計(jì) 濾波器 FIR 算法 DA

    評(píng)論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 元阳县| 榆树市| 萝北县| 电白县| 中阳县| 汽车| 边坝县| 沂源县| 新田县| 宜兴市| 盐源县| 修文县| 徐闻县| 平罗县| 遂宁市| 崇仁县| 昭通市| 宜州市| 彰武县| 阆中市| 富平县| 陆丰市| 昌吉市| 乳源| 台湾省| 永丰县| 益阳市| 大邑县| 九龙坡区| 赤水市| 乳山市| 屏南县| 报价| 汉中市| 百色市| 崇礼县| 准格尔旗| 常德市| 隆昌县| 仁怀市| 高陵县|