FIR濾波�的種類目前,F(xiàn)IR濾波器的硬件實現(xiàn)有以下幾種方式:一種是使用單片通用�(shù)字濾波器集成電路,這種電路使用簡單,但是由于字長和階數(shù)的規(guī)格較�,不易完全滿足實際需�。雖然可采用多片擴展來滿足要�,但會增加體積和功�,因而在實際應用中受到限制。另一種是使用DSP芯片。DSP芯片有專用的�(shù)字信號處�函數(shù)可調用,實現(xiàn)FIR濾波器相對簡�,但是由于程序順序執(zhí)�,速度受到限制�
目前,F(xiàn)IR濾波器的硬件實現(xiàn)有以下幾種方式:
1.1、數(shù)字集成電路FIR濾波�
一種是使用單片通用�(shù)字濾波器集成電路,這種電路使用簡單,但是由于字長和階數(shù)的規(guī)格較�,不易完全滿足實際需�。雖然可采用多片擴展來滿足要�,但會增加體積和功�,因而在實際應用中受到限制�
1.2、DSP芯片F(xiàn)IR濾波�
另一種是使用DSP芯片。DSP芯片有專用的�(shù)字信號處理函�(shù)可調�,實�(xiàn)FIR濾波器相對簡�,但是由于程序順序執(zhí)�,速度受到限制。而且,就是同一公司的不同系�(tǒng)的DSP芯片,其編程指令也會有所不同,開�(fā)周期較長�
1.3、可編程FIR濾波�
還有一種是使用可編程邏輯器�,F(xiàn)PGA/CPLD。FPGA有著�(guī)整的�(nèi)部邏輯塊整列和豐富的連線資源,特別適合用于細粒度和高并行度結構的FIR濾波器的實現(xiàn),相對于串行運算主導的通用DSP芯片來說,并行性和可擴展性都更好�
帶有常系�(shù)的FIR濾波器是一種LTI�(shù)字濾波器。z階或者長度為z的∏R輸出對應于輸入時間序列x[n]的關系由一種有限卷積數(shù)量形式給�,具體形式如下:
其中從f�0]≠0—直到f[L�1]≠0均是濾波器的z階的系數(shù),同時也對應于ΠR的脈沖響�。對于LTI系統(tǒng)可以更為方便地將�3�2)表示成z域內(nèi)的形式:
其中F(z)是FIR的傳遞函�(shù),其z域內(nèi)的形式如下:
�1給出了z階LTI型FIR濾波器的圖解??梢钥闯觯癛濾波器是由一個“抽頭延遲線”加法器和乘法器的集合構成的。傳給每個乘法器的操作數(shù)就是一個FIR系數(shù),顯然也可以稱作“抽頭權重�。過去也有人將FIR濾波器稱為“橫向濾波器”,就是說它的“抽頭延遲線”結��
�1 直接形式的FIR濾波�
�3�4)中多項式F(z)的根確定了濾波器的零點。僅有零點存在也就是FIR�(jīng)常被稱作“全零點濾波器”的原因。在�5章我們將討論∏R濾波器中重要的一類(叫作CIC濾波器),它是遞歸的,但也是FIR。這是可能的,因為遞歸部分�(chǎn)生的極點已經(jīng)被濾波器的非遞歸部分消除�。有效極點/零點圖就變得只有極點�,也就是全零點濾波器或者是FIR。注意:非遞歸濾波器均是FIR,但是遞歸濾波器卻可以是FIR或者是IIR。圖2說明了這一關系�
�2 結構和脈沖長度之間的關系
有限長沖激響應(FIR)濾波器在�(shù)字信號處理中是一種基本的處理單元。無限長單位沖激響應(IIR)�(shù)字濾波器的優(yōu)點是可以利用模擬濾波器設計的結果,但其缺點是不具有線性相位�。圖像處理以及數(shù)�(jù)傳輸都要求信道具有線性相位特�,F(xiàn)IR濾波器可以做成嚴格的線性相�,避免被處理信號�(chǎn)生相位失真,還可以具有任意的幅度特�。此外,F(xiàn)IR濾波器的單位沖激響應是有限長�,因而濾波器一定是�(wěn)定的�
在數(shù)字濾波器的研究中,已�(jīng)提出多種FIR濾波器的設計和實�(xiàn)方法,如并行結構、流水線結構、分布式結構等[1-3]。FIR濾波器計算量�,且要求實時實現(xiàn)。如何提高速度以滿足信號處理的高效性和實時性一直是人們研究的重點和熱�。脈動陣列是一種新型的流水線結�,所有處理單元是相同且全流水�,并且有模塊化和�(guī)則化的特�,這對于硬件設計是很重要的。脈動陣列結構可以很好地滿足高速實時信號處理的需要,提高�(shù)�(jù)的通過率及電路的執(zhí)行速度。該結構結合了并行結構和流水線的�(yōu)勢,使FIR濾波器達到了更高的處理速度�
�(shù)字濾波器�(xiàn)在大多在DSP芯片上實�(xiàn)[4]。隨著集成電路技術的�(fā)�,現(xiàn)在已有多種專用DSP芯片用于實現(xiàn)濾波、FFT等運�。另�,F(xiàn)PGA�(nèi)部的�(guī)整的邏輯塊陣列,很適合實�(xiàn)脈動陣列這種高度并行的運�。Altera公司新推出的Stratix系列FPGA�(nèi)部有豐富的邏輯陣列資源及高性能嵌入式DSP�,能夠高效地實現(xiàn)�(shù)字信號處理功能[5]�
本文首先介紹了FIR濾波器和脈動陣列的原�,然后設計了脈動陣列結構的FIR濾波�,畫出電路的結構框圖,并進行了時序分�,在FPGA上進行驗證。結果表�,脈動陣列的模塊化和高度流水線的結構使FIR濾波器在FPGA上獲得了很好的性能,比串行結構的運算速度更快,呵以更好地滿足�(shù)字信號處理中高效、實時的要求�
2 FIR濾波器及脈動陣列原理
2.1 FIR濾波器原�
�(shù)字濾波器用于改變輸入信號X(n)的頻譜特性以滿足某種特定的設計要�。一個因果的�(shù)字濾波器可以用它的單位沖激響應h(n)、傳輸函�(shù)H(z)或者差分方程來表達。其中單位沖激響應和傳輸函�(shù)描述了系�(tǒng)的時域和頻域性質,差分方程則反映了實�(xiàn)該濾波器所需的運��
一個線性時不變因果濾波器可以用�(1)的差分方程描述:
如果1≤k≤N�,ak=0,則�
這就是一個M階的FIR濾波�,是非遞歸運��
2.2 脈動陣列
脈動陣列結構�1978年由Carneige-Mellon大學的H.T.Kung等人�(fā)展起來的一種專用處理器設計模型,是一種新的流水線結構,表示一種有節(jié)奏地汁算并通過系統(tǒng)傳輸�(shù)�(jù)的處理單元網(wǎng)�。這些處理單元�(guī)則地泵入泵出�(shù)�(jù)以維持規(guī)則的�(shù)�(jù)流[6]。由于其�(shù)�(jù)運算與傳送方式類似于心臟或脈搏有節(jié)奏地跳動,因此被稱為心動陣列或脈動陣列。利用脈動陣列可設計出一系列適合�(shù)字信號處理應用的模塊�、規(guī)則且有效的運算結�。脈動陣列結構的基本特性如下:
(1)脈動�
�(shù)�(jù)在一個全局時鐘的精確控制下,有節(jié)奏地�(jīng)過計算和傳遞過程,通過�(wǎng)��
(2)模塊性和�(guī)則�
陣列由模塊化的處理單元組�,各處理單元之間的互連方式均勻一�,并且計算網(wǎng)絡可任意擴大�
(3)空間局部性和時間局部�
表現(xiàn)在數(shù)�(jù)從一個計算節(jié)點傳遞到下一個計算節(jié)點至少需要一個單元時��
(4)有效的流水線結構
脈動陣列免除了形成數(shù)�(jù)流所需的控制開�。陣列內(nèi)處理單元間的局部連接方式使陣列中負載均勻、連線極短,限度地減小了系�(tǒng)�(nèi)部的通信延時,提高了處理單元的利用率,使整個陣列的系統(tǒng)性能得到充分�(fā)揮�
脈動結構是將線性映射技術用于規(guī)則依賴圖上進行設計�。依賴圖的邊表示�(yōu)先約�。脈動陣列設計中的基本矢量有�
(1)投影矢量�
(2)處理器矢量:PT=(p1 p2)
(3)調度矢量:ST=(S1 S2)
(4)硬件利用率:HUE=1/│STd �
3 FlR濾波器的脈動結構設計
3.1 FIR濾波器的脈動陣列結構
用調度不等式選擇可行的調度矢量ST,并根據(jù)脈動結構的可行性限制條件選擇投影矢量d和處理器空間矢量PT,然后用線性映射技術設計脈動列�
選擇投影矢量、處理器矢量和調度矢量如下:
于是,節(jié)點IT=(i,j)被處理為�
節(jié)點IT=(i,j)的執(zhí)行時間為�
硬件利用率:
以五階FIR濾波器為例:
其中,d0,d1,d2和d3作為延時單元,m0,m1,…,m4為固定乘�(shù)的乘法器,乘�(shù)分別為�0,�1,�,�4。乘法器m0和加法器a0構成處理器P0;乘法器m1和加法器a1構成處理器P1;類似�,m4和a4構成處理器P4�5個處理器同時工作,x(n)輸入后同時到�5個處理器,分別和權重ωi相乘�,經(jīng)不同的延時相加得到結果y(n)�
該設計框圖很好地體現(xiàn)�2.2節(jié)提到的脈動陣列的4個基本特性。數(shù)�(jù)在網(wǎng)絡中有節(jié)奏的輸入、計算、傳遞并輸出�
該結構由5個相同的模塊化處理器構成,容易擴�,可實現(xiàn)任意階的FIR濾波�。數(shù)�(jù)的輸�、和權重的相�、中間結果的寄存、數(shù)�(jù)的輸出各需要一個單元時�,但這幾種操作可同時進行,不會互相干�。該脈動陣列結構以高度的流水線方式運行�
需要注意的�,在乘法器輸出的時候需要對輸出的數(shù)�(jù)進行一位擴展,以避免加法器的溢出問��
3.2 時序分析
該結構的空問時間表示如圖2所示。橫軸為時間�,縱軸為處理器軸。圖中的每一行對應一個處理器??梢钥吹皆跁r間軸的某一點上,輸入數(shù)�(jù)x(n)在同一時間劍達所有處理器,即輸入"廣播";在處理器軸的某一點上,權重ωi在各處理器中處于相同的空間坐�,因此權�"保持";而輸出數(shù)�(jù)y(n)在不同的空間和時間得�,所以輸�"移動"。該FIR濾波器為輸入廣播、權重保持、輸出移動型的脈動陣列結��
借助于脈動陣列技�,輸入和輸出之間的處理可以同時進行,因此,總的�(zhí)行時間變得最�。對該結構進行時序分析,如�3所�。在個時鐘周期x(0)送到各處理器,和權重分別相乘后在第二個時鐘周期得到y(tǒng)(0)=ω0x(0),在此同時數(shù)�(jù)x(1)已經(jīng)輸入;第三個時鐘周期輸入x(2),在處理器P0得到ω0x(1),此時處理器P1的結果�1x(0)�(jīng)一級延時后和P0的結果相加得到y(tǒng)(1)=ω0(1)+ω1x(O)。同理,第四個周期得到y(tǒng)(2)=ω0x(2)+ω1x(1)+ω2x(0),第五個周期得到y(tǒng)(3)=ω0x(3)+ω1x(2)+ω2x(1)+ω3x(O)…�
4 FPGA驗證
以一個輸入輸出均�8 b的五階FIR濾波器為�,對該脈動陣列結構的FIR濾波器在FPGA上進行驗證。目標器件選用Stratix系列器件,編譯軟件為Quartus�4.2�
Stratix系列器件是Altera公司推出的新型FPGA,其�(nèi)部有豐富的嵌入式存儲�、優(yōu)化的�(shù)字信號處�(DSP)塊和高性能I/O能力。Stratix器件是設計復雜的高性能系統(tǒng)的理想選�。StratiX器件使用DSP塊實�(xiàn)大計算量應用所需的大�(shù)�(jù)吞吐�。DSP塊由硬件乘法�、加法器、減法器、累加器和流水線寄存器組成[6]。從�1中可以看出,每個處理器單元由一個乘法器和一個加法器構成,這種結構很適合用FPGA�(nèi)部的DSP塊實�(xiàn)�
實驗結果如表1所�。為了便于比�,使用相同的器件,還給出了串行結構FIR濾波器的實驗結果。在串行結構中,每次計算1個x(n),需�3個時鐘周�。脈動陣列結構每次計�5個x(n),需�5個時鐘周期。每個x(n)�8 b�(shù)�(jù)。運算速度可以由下面的公式得出�
運算速度=(每次處理�(shù)�(jù)長度/運算耗用的時鐘周期數(shù))×系統(tǒng)時鐘頻率
從表中可以看�,在占用邏輯單元的數(shù)量上二者基本相�,雖然串行結構只占用了一個DSP塊,脈動陣列結構占用�5�,但串行結構的運算速度只能達到284.93 Mb/s,脈動陣列可以達�1 840.32 Mb/s。顯然脈動陣列結構更具優(yōu)勢,可以更好地滿足數(shù)字信號處理中高效、實時的要求。本文基于脈動陣列技�,設計了高效的FIR濾波�,具有模塊化和流水線的結�,并充分利用了FPGA資源,達到了較高的工作頻��
5 � �
FIR濾波器是�(shù)字信號處理中的一種基本運�,有著廣泛的應用。基于脈動陣列結�,本文設計了高效的FIR濾波�。模塊化和高度流水線的結構使得其在FPGA上獲得了較好的性能,完全可以滿足系�(tǒng)高效、實時處理的要求,提高了系統(tǒng)運算速度并充分合理地利用了FPGA資源。另外,由于脈動陣列自身的特點,各級結構相同,方便擴�,可以實�(xiàn)任意階的FIR濾波��
1. 引言
隨著�(shù)字信號處理理論及應用技術的迅速發(fā)�,在一個數(shù)字系�(tǒng)中只用一個采樣頻率已 �(jīng)很難滿足要求。在實際的應用中,經(jīng)常會遇到采樣率的轉換問題,即要求一個數(shù)字系�(tǒng)� 工作在“多采樣率”狀�(tài)。近年來,建立在采樣率轉換基礎上的“多采樣率數(shù)字信號處理� 已成為數(shù)字信號處理學科中的主要研究內(nèi)容之一。直觀地考慮,首先將以采樣率 F1 采集� �(shù)字信號進行�(shù)模轉換,這樣就變成模擬信�,再按采樣率 F2 進行模數(shù)轉換,從而實�(xiàn)� 從F1 到F2 的采樣率轉換,這就是變換采樣率的最簡單方法。但是這樣較麻�,且易使� 號受到損�,所以在實際應用的變采樣系統(tǒng)�,改變采樣頻率并不經(jīng)過模擬信�,而是完全 在數(shù)字域中實�(xiàn)的。在�(shù)字信號處理中,濾波占有極其重要的作用,適用于變采樣率系統(tǒng) 中的�(shù)字濾波器就是本文要談論的主要�(nèi)��
2.FIR �(shù)字濾波器的設計過程及結構
�(shù)字濾波器根據(jù)其沖擊響應函�(shù)的時域特性,可分為兩種:無限長沖激響應(IIR)濾波器和有限長沖激響應(FIR)濾波器。FIR 濾波器被廣泛應用于各類數(shù)字信號處理系�(tǒng)� 它的系統(tǒng)總是�(wěn)定的,可以滿足濾波器對幅度和相位特性的嚴格要求,避免模擬濾波器溫漂 和噪聲等問題,易實現(xiàn)線性相位且易用硬件實現(xiàn),這些都是FIR 系統(tǒng)的突出優(yōu)點,也是IIR 系統(tǒng)不易實現(xiàn)�。盡管IIR 濾波器系�(tǒng)比FIR 濾波器系�(tǒng)易取得較好的通帶和阻帶衰減特�� FIR 系統(tǒng)若要取得較好的衰減特�,一般要求系�(tǒng)函數(shù)H(z)階次要高,也即濾波器長度M 要大。綜合以上考慮,本文選用FIR 濾波器來完成設計�
2.1FIR �(shù)字濾波器的基本原理及設計基礎
�1 中x(n)是輸入信號,x(n-i)是延時了i 個采樣周期的輸入信號,h(i)(i = 0,1,�,n-1)是第i 個延時節(jié)的加權值(即濾波器系數(shù)),y(n)是時刻t = nT 時濾波器的輸出信��
FIR �(shù)字濾波器的設計一般要�(jīng)過三步[2]:確定目標、逼近和計算機實現(xiàn)。通常在設� 濾波器之�,應該先根據(jù)具體的應用確定一些技術指�。指標的形式一般在頻域中給出幅� 和相位響�。幅度指標主要有2 種方�,分別是指標和相對指�。在確定了技術指標之 后,就可以根�(jù)�(shù)學知識和濾波器的基本原理確定濾波器的模型來逼近給定的指�。上兩步 的結果通常是得到以差分或系�(shù)函數(shù)或沖擊響應描述的濾波�,根�(jù)這個描述用硬件或軟� 實現(xiàn)并分析其頻率特性和相位特性。至此完成了一個濾波器設計的全過程�
2.2 利用Matlab 實現(xiàn)FIR �(shù)字濾波器
Matlab 是一個交互式的以矩陣為基礎的軟件,它被廣泛應用與教學、科研和工程設計 等各個領域。隨著Matlab 軟件的發(fā)�,尤其是Matlab 的信號處理工具箱的不斷完�,不� �(shù)字濾波器的計算機輔助設計有了可能,而且還可以使設計達到��
在數(shù)字信號處理領域里,采樣頻率轉換就是將信號采樣頻率從一個給定的頻率F1=1/T1 轉換到另一頻率F2=1/T2 的過�,它是一個非線性過�。當新的采樣頻率高于原始頻率,即 F2 > F1 �,稱為升采樣率或插值;反之,當新的采樣頻率低于原始頻率,稱為降采樣率或 抽取�
設對某限帶時間波形x(t),以采樣率fs(在滿足采樣定理的條件下)進行采樣,得到時
基于半帶濾波器的�(yōu)�,在半帶濾波器的基礎上設計FIR 濾波器一般采用等波紋逼近 �,該方法對同樣的技術指�,能使誤差均勻分布在整個頻帶,而且這種逼近法需要的濾波 器階�(shù)�,且誤差最小�
給定半帶濾波器的設計指標�
通帶截止頻率�20KHz,采樣頻率為88.2KHz,通帶波紋�0.001,阻帶衰�70dB�
根據(jù)上述指標,結合其�(yōu)點,利用Matlab 的信號處理工具中的remez 函數(shù)進行FIR � 波器的設�。remez 函數(shù)利用Parks-McClellan 算法,該算法利用remez 交換算法和切比雪 夫逼近理論來設計濾波器,使實際濾波器的幅頻響應地擬合理想濾波器的幅頻響�,使 它們之間誤差最小化�
調用remezord 和remez 函數(shù)設計此濾波器� 由調用格� [N,fo,ao,w]=remezord(f,m,,rip,Fs)[3]知道,首先根�(jù)設計指標確定remezord 函數(shù)的調用參�(shù)� 估算出濾波器的階�(shù)N ,其返回函數(shù)再作為remez 函數(shù)的調用參�(shù),再直接編寫程序 調用remez 函數(shù)得到濾波器單位脈沖響應h(n),得到如�2 所示的幅頻響應�
通過分析該半帶濾波器的幅頻響應,可以�(fā)�(xiàn)該濾波器的通帶和阻帶波紋俱� 0.0015dB 以內(nèi),阻帶衰減達到了70dB� 程序運行結果顯示,濾波器階數(shù)N=43,基本符合設計要��
3.FIR �(shù)字濾波器的FPGA 硬件實現(xiàn)
由前面的Matlab 設計已經(jīng)求得了要求的FIR 濾波器的濾波系數(shù)及階�(shù),下面利用FPGA來完成濾波器的硬件實�(xiàn)。FIR 濾波器主要是由乘加單元組�,如果按照直觀結構直接構� FIR 濾波器會占用大量資源,這顯然是不經(jīng)濟的?,F(xiàn)提出一種利用FPGA 硬件實現(xiàn)濾波� TOP-DOWN 結構�,如�3 所示。它采用串行結構實現(xiàn)硬件[4]即將輸入�(shù)�(jù)直接與其對應的濾 波系�(shù)相乘,但不需像并行結構中那樣,必須所有的�(shù)都相乘完才能相加,而是將前一級乘 積鎖�,直接與后一級乘積累加,這樣就可以極大地節(jié)約硬件資�,提高執(zhí)行速度。FIR �(shù) 字濾波器系統(tǒng)主要分為�(shù)�(jù)存儲和數(shù)�(jù)運算兩大模塊。數(shù)�(jù)存儲模塊主要功能是以時鐘去控 制片選信號和地址譯碼,在ROM 查找表中讀出與ROM 地址相對應的�(shù)�(jù),即為濾波系�(shù),并 將它與對應的輸入信號同步輸出至數(shù)�(jù)運算模塊。數(shù)�(jù)運算模塊主要功能就是完成輸入信號 與對應濾波系�(shù)的相乘和累加�
4 結論
由于FPGA 具有速率�,面積小,性能可靠等特�,成為數(shù)字濾波器工作在很高頻率上 的首先硬件實�(xiàn)方案。本文利用Matlab 設計了一個給定指標的適用于變采樣率FIR 濾波器, 并對它進行了FPGA 硬件實現(xiàn)�
本文的創(chuàng)新點:提出一種基于FPGA 實現(xiàn)變采樣率FIR �(shù)字濾波器的硬件實�(xiàn)方案,節(jié) 約了硬件資源,降低設計成本,具有實用價��
FIR�(shù)字濾波器在數(shù)字信號處理的各種應用中發(fā)揮著十分重要的作�,它能夠提供理想的線性相位響應,在整個頻帶上獲得常數(shù)群時�,從而得到零失真輸出信號,同時它可以采用十分簡單的算法予以實�(xiàn)。這些�(yōu)點使FIR濾波器成為設計工程師�。在采用VHDL或VerilogHDL等硬件描述語言設計�(shù)字濾波器�。由于程序的編寫往往不能達到良好�(yōu)化而使濾波器性能表現(xiàn)一般,而采用調試好的IP Core需要向Al-tera公司購買。在�,采用一種基于DSP Builder的FPGA設計方法,使FIR濾波器設計較為簡單易行,并能滿足設計要求�
1 FIR濾波器介�
1�1 FIR濾波器原�
對于一個FIR濾波器系�(tǒng),它的沖激響應總是有限長的,體的FIR濾波器可用下式表示:
式中:r是FIR濾波器的抽頭�(shù);x(n-r)是延時,r個抽頭的輸入信號;b(r)是第r級抽頭數(shù)(單位脈沖響應);M是濾波器的階�(shù);y(n)表示濾波器的輸出序列。濾波器就是尋求一個可實現(xiàn)的系�(tǒng)函數(shù)H(z),使其頻率響應H(ejω)滿足所希望得到的頻域信�,也可以用卷積的形式來表示:
y(n)=z(n)*h(n)
典型的直接I型FIR濾波器如�1表示,其輸出序列y(n)滿足下式�
1�2 設計要求
�(shù)字濾波器實際上是一個采用有限精度算法實�(xiàn)的線性非時變離散系統(tǒng)。它的設計步驟是先根�(jù)需要確定其性能指標,設計一個系�(tǒng)函數(shù)h(n)逼近所需要的性能指標,濾波器的系�(shù)計算可以借助Matlab強大的計算功能和�(xiàn)成濾波器設計工具來完�,采用有限的精度算法實現(xiàn)。該系統(tǒng)的設計指標為:設計一�16階的低通濾波器,選模擬信號的采樣頻率Fs�5 kHz,要求信號的截止頻率Fc=1 kHz,輸入序列的位寬�9�(最寬位為符號位)。激勵源為幅值為27,頻率為800 Hz�1 600 Hz兩個信號的混頻信號�
2 基于DSP Builder設計FIR濾波�
2�1 DSP Builder介紹
DSP Builder是美國Al-tera公司推出的一個面向DSP開發(fā)的系�(tǒng)級設計工�,它在QuartusⅡ設計環(huán)境中集成了Matlab和SimuIinkDSP開發(fā)軟件。以往使用的Matlab工具僅僅作為DSP算法的建模和基于純數(shù)學的仿真,其�(shù)學模型無法為硬件DSP應用系統(tǒng)直接�(chǎn)生實用的程序代碼,仿真測試的結果也往往是基于數(shù)學的算法結果。而以往的FPGA所需要的傳統(tǒng)基于硬件描述語言的設計因考慮了FPGA硬件的延時與VHDL遞歸算法的銜接,以及補碼運算和乘積結果截取等問題,所以相當繁�。而對于DSP Builder而言,它作為Matlab的一個Simulink工具�,使得用FPGA設計的DSP系統(tǒng)完全可以通過Simulink的圖形化界面進行建模、系�(tǒng)級仿�。設計模型可直接向VHDL硬件描述語言轉換,并自動調用QuartusⅡ等EDA設計軟件,完成綜�、網(wǎng)表生成以及器件適配乃至FPGA的配置下�,使得系�(tǒng)描述與硬件實�(xiàn)有機地融�,充分體�(xiàn)了現(xiàn)代電子技術自動化開發(fā)的特點與�(yōu)勀�
2�2 FIR濾波器的設計
2�2�1 FIR濾波器參�(shù)選取
采用Matlab提供的濾波器專用設計工具FDAtool仿真設計的濾波器,可滿足要求的FIR濾波器幅頻特性,由于浮點小數(shù)在FPGA中實�(xiàn)得比較困�,且代價太大,因而需要將濾波器的系數(shù)和輸人數(shù)�(jù)轉化為整�(shù),其中量化后的系�(tǒng)可以在Matlab主窗口中直接轉化,對于輸入數(shù)�(jù),乘�28的增益用Altbus控制位寬轉化為整�(shù)輸入�
2�2�2 FIR濾波器模型的建立
根據(jù)FIR濾波器原�,可以利用FPGA來實�(xiàn)FIR濾波電路。DSP Builder設計流程的步是在Matlab/Simulink中進行設計輸入的,即在Matlab的Simulink�(huán)境中建立一個MDL模型文件,用圖形方式調用DSP Builder和其他Simulink庫中的圖形模塊,構成系統(tǒng)級或算法級設計框�,如�2所示�
2�2�3 在Simulink中的仿真并生成VHDL代碼
完成模型設計之后,可以先在Simulink中對模型進行仿真,可以通過Simulink中的示波器模塊查看各個步驟的中間結果。輸入信號采�800 Hz�1 600 Hz,幅值相同的兩個正弦信號的疊加。仿真結果如�3所�。從仿真波形可以看出,通過濾波器之��1 600 Hz的信號能夠被很好地濾��
雙擊SignalCompiler可對以上的設計模型進行分析,選擇相應的芯片,將以上設計模塊圖文件“翻譯”成VHDL語言�
2�2�4 Modelsim的RTL仿真
在Simulink中進行的仿真屬于系�(tǒng)驗證性質�,是對mdl文件進行的仿�,并沒有對生成的VHDL代碼進行仿真。事實上,生成VHDL描述的是RTL級的,是針對具體的硬件結�,而在Matlab的Simulink中的模型仿真是算法級的,兩者之間有可能存在軟件理解上的差異,轉化后的VHDL代碼實現(xiàn)可能與mdl模型描述的情況不完全相符。這就需要針對生成的RTL級VHDL代碼進行功能仿真,仿真結果如�4所��
仿真結果說明,在Modelsim中仿真結果和Simulink里的仿真結果基本一�,該濾波器有較好的濾波效�??梢钥闯?,輸入正弦波�(jīng)過數(shù)字化過程以后,能夠在Modelsim中還原出模擬波形.符合設計的要求,可以在QLtortusⅡ的�(huán)境下進行硬件設計�
2�2�5 濾波器在FPGA上的實現(xiàn)
在QuartusⅡ環(huán)境中,打開DSP Builder建立的QuartusⅡ項目文�,在QuartusⅡ中再進行一次仿�,由此可以看到符合要求的時序波形。然后指定器件引�,并進行編譯,下載到FPGA器件�,就可以對硬件進行測試,加上clok信號和使能信�,用信號�(fā)生器�(chǎn)生所要求的兩個不同頻率的正弦信號,就可以在示波器上看到濾波后的結�。需要設計不同的濾波器電路是僅修改FIR濾波器模型文件就可以實現(xiàn),這樣不僅避免了繁瑣的VHDL語言編程,而且便于進行調整�
3 � �
在利用FPGA進行�(shù)字濾波器開發(fā)�,采用DSPBuilder作為設計工具,能加快進度。當�,在實際應用�,受精度、速度和器件選擇方面的影響,可能對其轉化的VHDL進行進一步的�(yōu)��
維庫電子�,電子知�,一查百��
已收錄詞�156845�