摘要:數(shù)字信號憑借其在傳輸、存儲和計算上的便捷性,正在得到越來越廣泛的應用。在現(xiàn)代數(shù)字系統(tǒng)中往往會存在多種采樣頻率,這就需要改變采樣頻率,進行頻率轉(zhuǎn)換。本文主要介紹利用現(xiàn)場可編程邏輯器件(FPGA)實現(xiàn)變采樣率FIR數(shù)字濾波器的方案。首先簡單分析了FIR數(shù)字濾波器的基本結(jié)構(gòu),在此基礎上,以一個適用于變采樣率的半帶濾波器的設計為例,結(jié)合利用MATLAB為輔助設計工具,完成對給定指標的FIR濾波器的設計,最后提出了利用FPGA硬件實現(xiàn)濾波的TOP-DOWN結(jié)構(gòu)圖。此方案使性能和資源占有率得到較好的突破,最大限度的減少資源消耗。
1. 引言
隨著數(shù)字信號處理理論及應用技術(shù)的迅速發(fā)展,在一個數(shù)字系統(tǒng)中只用一個采樣頻率已 經(jīng)很難滿足要求。在實際的應用中,經(jīng)常會遇到采樣率的轉(zhuǎn)換問題,即要求一個數(shù)字系統(tǒng)能 工作在“多采樣率”狀態(tài)。近年來,建立在采樣率轉(zhuǎn)換基礎上的“多采樣率數(shù)字信號處理” 已成為數(shù)字信號處理學科中的主要研究內(nèi)容之一。直觀地考慮,首先將以采樣率 F1 采集的 數(shù)字信號進行數(shù)模轉(zhuǎn)換,這樣就變成模擬信號,再按采樣率 F2 進行模數(shù)轉(zhuǎn)換,從而實現(xiàn)了 從F1 到F2 的采樣率轉(zhuǎn)換,這就是變換采樣率的最簡單方法。但是這樣較麻煩,且易使信 號受到損傷,所以在實際應用的變采樣系統(tǒng)中,改變采樣頻率并不經(jīng)過模擬信號,而是完全 在數(shù)字域中實現(xiàn)的。在數(shù)字信號處理中,濾波占有極其重要的作用,適用于變采樣率系統(tǒng) 中的數(shù)字濾波器就是本文要談論的主要內(nèi)容。
2.FIR 數(shù)字濾波器的設計過程及結(jié)構(gòu)
數(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é)的加權(quán)值(即濾波器系數(shù)),y(n)是時刻t = nT 時濾波器的輸出信號。
FIR 數(shù)字濾波器的設計一般要經(jīng)過三步[2]:確定目標、逼近和計算機實現(xiàn)。通常在設計 濾波器之前,應該先根據(jù)具體的應用確定一些技術(shù)指標。指標的形式一般在頻域中給出幅度 和相位響應。幅度指標主要有2 種方式,分別是絕對指標和相對指標。在確定了技術(shù)指標之 后,就可以根據(jù)數(shù)學知識和濾波器的基本原理確定濾波器的模型來逼近給定的指標。上兩步 的結(jié)果通常是得到以差分或系數(shù)函數(shù)或沖擊響應描述的濾波器,根據(jù)這個描述用硬件或軟件 實現(xiàn)并分析其頻率特性和相位特性。至此完成了一個濾波器設計的全過程。
2.2 利用Matlab 實現(xiàn)FIR 數(shù)字濾波器
Matlab 是一個交互式的以矩陣為基礎的軟件,它被廣泛應用與教學、科研和工程設計 等各個領域。隨著Matlab 軟件的發(fā)展,尤其是Matlab 的信號處理工具箱的不斷完善,不僅 數(shù)字濾波器的計算機輔助設計有了可能,而且還可以使設計達到最優(yōu)化。
在數(shù)字信號處理領域里,采樣頻率轉(zhuǎn)換就是將信號采樣頻率從一個給定的頻率F1=1/T1 轉(zhuǎn)換到另一頻率F2=1/T2 的過程,它是一個非線性過程。當新的采樣頻率高于原始頻率,即 F2 > F1 時,稱為升采樣率或插值;反之,當新的采樣頻率低于原始頻率,稱為降采樣率或 抽取。
設對某限帶時間波形x(t),以采樣率fs(在滿足采樣定理的條件下)進行采樣,得到時
基于半帶濾波器的優(yōu)點,在半帶濾波器的基礎上設計FIR 濾波器一般采用等波紋逼近 法,該方法對同樣的技術(shù)指標,能使誤差均勻分布在整個頻帶,而且這種逼近法需要的濾波 器階數(shù)低,且最大誤差最小。
給定半帶濾波器的設計指標:
通帶截止頻率為20KHz,采樣頻率為88.2KHz,通帶波紋為0.001,阻帶衰減70dB。
根據(jù)上述指標,結(jié)合其優(yōu)點,利用Matlab 的信號處理工具中的remez 函數(shù)進行FIR 濾 波器的設計。remez 函數(shù)利用Parks-McClellan 算法,該算法利用remez 交換算法和切比雪 夫逼近理論來設計濾波器,使實際濾波器的幅頻響應最優(yōu)地擬合理想濾波器的幅頻響應,使 它們之間最大誤差最小化。
調(diào)用remezord 和remez 函數(shù)設計此濾波器, 由調(diào)用格式 [N,fo,ao,w]=remezord(f,m,,rip,Fs)[3]知道,首先根據(jù)設計指標確定remezord 函數(shù)的調(diào)用參數(shù), 估算出濾波器的最低階數(shù)N ,其返回函數(shù)再作為remez 函數(shù)的調(diào)用參數(shù),再直接編寫程序 調(diào)用remez 函數(shù)得到濾波器單位脈沖響應h(n),得到如圖2 所示的幅頻響應:
通過分析該半帶濾波器的幅頻響應,可以發(fā)現(xiàn)該濾波器的通帶和阻帶波紋俱在 0.0015dB 以內(nèi),阻帶衰減達到了70dB。 程序運行結(jié)果顯示,濾波器階數(shù)N=43,基本符合設計要求。
3.FIR 數(shù)字濾波器的FPGA 硬件實現(xiàn)
由前面的Matlab 設計已經(jīng)求得了要求的FIR 濾波器的濾波系數(shù)及階數(shù),下面利用FPGA來完成濾波器的硬件實現(xiàn)。FIR 濾波器主要是由乘加單元組成,如果按照直觀結(jié)構(gòu)直接構(gòu)造 FIR 濾波器會占用大量資源,這顯然是不經(jīng)濟的。現(xiàn)提出一種利用FPGA 硬件實現(xiàn)濾波的 TOP-DOWN 結(jié)構(gòu)圖,如圖3 所示。它采用串行結(jié)構(gòu)實現(xiàn)硬件[4]即將輸入數(shù)據(jù)直接與其對應的濾 波系數(shù)相乘,但不需像并行結(jié)構(gòu)中那樣,必須所有的數(shù)都相乘完才能相加,而是將前一級乘 積鎖存,直接與后一級乘積累加,這樣就可以極大地節(jié)約硬件資源,提高執(zhí)行速度。FIR 數(shù) 字濾波器系統(tǒng)主要分為數(shù)據(jù)存儲和數(shù)據(jù)運算兩大模塊。數(shù)據(jù)存儲模塊主要功能是以時鐘去控 制片選信號和地址譯碼,在ROM 查找表中讀出與ROM 地址相對應的數(shù)據(jù),即為濾波系數(shù),并 將它與對應的輸入信號同步輸出至數(shù)據(jù)運算模塊。數(shù)據(jù)運算模塊主要功能就是完成輸入信號 與對應濾波系數(shù)的相乘和累加。
4 結(jié)論
由于FPGA 具有速率高,面積小,性能可靠等特點,成為數(shù)字濾波器工作在很高頻率上 的首先硬件實現(xiàn)方案。本文利用Matlab 設計了一個給定指標的適用于變采樣率FIR 濾波器, 并對它進行了FPGA 硬件實現(xiàn)。
本文的創(chuàng)新點:提出一種基于FPGA 實現(xiàn)變采樣率FIR 數(shù)字濾波器的硬件實現(xiàn)方案,節(jié) 約了硬件資源,降低設計成本,具有實用價值。
參考文獻:
[1].F1 datasheethttp://www.dzsc.com/datasheet/F1+_2060738.html.
[2].ROM datasheethttp://www.dzsc.com/datasheet/ROM+_1188413.html.
來源:xinxin0次