《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 數(shù)字濾波器輸入輸出的設(shè)計(jì)與實(shí)現(xiàn)

數(shù)字濾波器輸入輸出的設(shè)計(jì)與實(shí)現(xiàn)

2013-07-19
關(guān)鍵詞: FPGA 數(shù)字濾波器
濾波器是任何信號處理系統(tǒng)的關(guān)鍵組成部分,隨著現(xiàn)代應(yīng)用的日趨復(fù)雜,濾波器設(shè)計(jì)的復(fù)雜程度也日益提高。采用 FPGA 設(shè)計(jì)和實(shí)現(xiàn)的高性能濾波器的能力是模擬方法所望塵莫及的。另外,采用FPGA 設(shè)計(jì)的數(shù)字濾波器可以避免模擬設(shè)計(jì)中存在的某些問題,特別是組件漂移和容差(在高可靠應(yīng)用中,由溫度過高、老化和輻射問題造成)。這些模擬問題會顯著降低濾波器的性能,特別是在通帶紋波等方面。
當(dāng)然, 數(shù)字模型也有自身的缺陷。濾波器數(shù)學(xué)運(yùn)算中的舍入可能會帶來問題,因?yàn)樯崛胝`差會被累加,給性能造成不良影響,比如增大濾波器的噪聲基底。工程師可以采取多種方法最大程度地減輕這種影響,例如使用收斂舍入可以獲得比傳統(tǒng)舍入更好的性能。最終, 舍入誤差問題的嚴(yán)重性與模擬器件相比得到了顯著降低。
將 FPGA 作為濾波器構(gòu)建模塊的主要優(yōu)勢之一在于,如果因?yàn)榧稍蚧蛘咝枨笞儎釉蛐枰{(diào)整性能,允許在設(shè)計(jì)過程的后期修改或者更新濾波器的參數(shù),且產(chǎn)生的影響很小。
濾波器類型和拓?fù)浣Y(jié)構(gòu)
大多數(shù)熟知數(shù)字信號處理的工程師都知道濾波器的主要類型有四種。低通濾波器只允許頻率低于預(yù)設(shè)截止頻率的信號通過。高通濾波器與低通濾波器相反,只允許頻率高于截止頻率的信號通過。帶通濾波器只允許頻率在預(yù)設(shè)帶寬內(nèi)的信號通過,不允許其它頻率的信號通過。帶阻濾波器與帶通濾波器相反,不允許頻率在預(yù)設(shè)帶寬內(nèi)的信號通過,但允許其它頻率的信號通過。
大多數(shù)數(shù)字濾波器都采用下列兩種方法之一來實(shí)現(xiàn): 有限脈沖響應(yīng)(FIR) 和無限脈沖響應(yīng) (IIR)。首先我們深入探討如何設(shè)計(jì)和實(shí)現(xiàn) FIR 濾波器。這種濾波器也常被稱為窗口 sinc濾波器。
為什么我們首先以 FIR 濾波器為重點(diǎn)呢?兩種濾波器的最大區(qū)別在于有無反饋。對未采用反饋的 FIR 濾波器,在給定的輸入響應(yīng)下,濾波器的輸出最終會穩(wěn)定為 0。而對采用反饋的IIR 濾波器,在相同的給定輸入下,輸出不會穩(wěn)定為 0。
FIR 濾波器的設(shè)計(jì)由于未采用反饋,故天生具有穩(wěn)定性,因?yàn)闉V波器的所有極點(diǎn)都與原點(diǎn)重合。IIR 濾波器就沒有這么幸運(yùn)。由于在設(shè)計(jì) IIR 濾波器的時候,必須精心考慮其穩(wěn)定性,這樣窗口 sinc 濾波器對新接觸 DSP 技術(shù)的工程師來說,更加易于理解和實(shí)現(xiàn)。
如果要求工程師繪制理想低通濾波器在頻域中的原理框圖,大多數(shù)工程師會畫出和圖 1 一樣的圖。
圖 1 所示的頻率響應(yīng)一般稱為“磚墻型”濾波器。這是因?yàn)橥◣Ш妥鑾еg的過渡非常陡峭,要比現(xiàn)實(shí)中能夠?qū)崿F(xiàn)的陡峭很多。這種頻率響應(yīng)還具備其它“理想”特性,例如沒有通帶波紋以及具有理想的阻帶衰減。
如果將該圖圍繞 0 Hz 進(jìn)行對稱擴(kuò)展,同時擴(kuò)展到 +/- FS Hz(FS 指采樣頻率),然后對響應(yīng)進(jìn)行離散傅里葉逆變換 (IDFT),就可以得到該濾波器的脈沖響應(yīng),如圖 2 所示。
這就是圖 1 所示理想濾波器頻率響應(yīng)的時域表示法,也稱為濾波器內(nèi)核。FIR 或窗口 sinc 濾波器正是由這個響應(yīng)而得名,因?yàn)楫嫵?sinc 函數(shù)的曲線可以得到脈沖響應(yīng):

結(jié)合濾波器階躍響應(yīng), 頻率響應(yīng)、脈沖響應(yīng)和階躍響應(yīng)提供了有關(guān)濾波器性能的所有信息,可用于判斷濾波器是否滿足設(shè)計(jì)要求。

頻率響應(yīng)
頻率響應(yīng)是工程師在考慮濾波器時所習(xí)慣關(guān)注的問題。它代表著濾波器改變頻域信息的性能。

通過頻率響應(yīng)可以觀察到截止頻率、阻帶衰減和通帶波紋。在該響應(yīng)中還可以清晰地觀察到通帶和阻帶之間的滾降,也稱為過渡帶。通帶中的波紋會給濾波信號造成影響。阻帶衰減則表明濾波器輸出中存在多少不必要的頻率。這對需要抑制特定頻率的應(yīng)用意義重大,比如在通信系統(tǒng)中為頻分多路復(fù)用通道濾波。

脈沖響應(yīng)
從脈沖響應(yīng)中可以抽象出濾波器的系數(shù)。但是,要實(shí)現(xiàn)濾波器的最佳性能,標(biāo)準(zhǔn)的方法是采用窗函數(shù)。窗函數(shù)指給截?cái)嗟拿}沖響應(yīng)應(yīng)用額外的數(shù)學(xué)函數(shù),以求減輕截?cái)鄮淼母弊饔谩?/p>

在圖 2 中,由于紋波的存在,脈沖響應(yīng)向外無限延伸,盡管紋波的振幅顯著降低,但永遠(yuǎn)不會降低至 0。因此,必須圍繞位于中心的主瓣,在兩側(cè)對稱地按 N+1 的系數(shù)截?cái)嗝}沖響應(yīng),這里 N 是期望的濾波器長度(切記 N應(yīng)為偶數(shù))。脈沖響應(yīng)被突然截?cái)鄷o濾波器的頻域性能帶來不良影響。如果對截?cái)嗟拿}沖響應(yīng)進(jìn)行離散傅里葉變換 (DFT),可以觀察到通帶和阻帶都有波紋出現(xiàn)以及滾降性能的下降。這就是為什么一般會采用窗函數(shù)來改善性能的原因。

階躍響應(yīng)
對脈沖響應(yīng)進(jìn)行積分所得的階躍響應(yīng)體現(xiàn)著濾波器的時域性能以及濾波器自身如何影響該性能。觀察階躍響應(yīng)時應(yīng)重點(diǎn)關(guān)注的三大參數(shù)分別是上升時間、過沖以及線性度。

上升時間指從振幅級的 10% 上升到 90% 所需的樣本數(shù)量,可顯示濾波器的速度。要在最終系統(tǒng)中具有實(shí)用性,濾波器必須能夠區(qū)分輸入信號中的不同事件,因此階躍響應(yīng)必須短于信號中各事件之間的間隔。

過沖是指濾波器添加至其正在處理的信號時產(chǎn)生的失真。降低階躍響應(yīng)中的過沖有助于判斷信號的失真是來自系統(tǒng),還是來自系統(tǒng)正在測量的信息。過沖不但可增大失真來源的不確定性,降低最終系統(tǒng)性能,而且還可導(dǎo)致系統(tǒng)無法滿足所需的性能要求。

如果信號的上半部分和下半部分是對稱的,則濾波器的相位響應(yīng)具有線性相位,這是確保階躍響應(yīng)的上升沿和下降沿相同的要件。

優(yōu)化濾波器,以在時域和頻域中同時實(shí)現(xiàn)良好的性能是非常困難的,在這一點(diǎn)上它也是毫無價(jià)值的。因此,必須明白需要處理的信息位于哪一個域中。對于 FIR 濾波器而言,需要處理的信息位于頻域中,因而頻率響應(yīng)占主導(dǎo)地位。

濾波器加窗
使用截?cái)嗝}沖響應(yīng)不能提供最佳性能數(shù)字濾波器,因?yàn)樗荒苷故救魏卫硐氲奶匦?。因此設(shè)計(jì)人員可采用視窗函數(shù)來改善濾波器的通帶紋波、滾降以及阻帶衰減性能。對于截?cái)嗾液瘮?shù),有許多視窗函數(shù)可以使用,如高斯、巴特利特、海明、布萊克曼以及凱塞等。不過最常用的兩種視窗函數(shù)是海明和布萊克曼。下面將詳細(xì)介紹這兩種視窗。

采用這兩種視窗不但可降低通帶紋波,而且還可提高濾波器的滾降和衰減性能。圖 3 是采用布萊克曼和海明視窗后截?cái)嗾液瘮?shù)的脈沖響應(yīng)和頻率響應(yīng)情況。如圖所示,兩種視窗均可顯著改善通帶紋波狀況。

 

濾波器的滾降不僅由視窗決定,而且還由濾波器的字長決定,即系數(shù)的數(shù)量,也就是常說的濾波器抽頭。

海明視窗:
w[i] = 0.42 – 0.52 cos (2PI*i/N)

布萊克曼視窗
w[i] = 0.42 – 0.52 cos (2PI*i/N)
+ 0.08 cos(4PI*i/N)

方程式中 i 為 1 至 N 時,總數(shù)等于 N+1個點(diǎn)。

要將這些視窗應(yīng)用于截?cái)嗝}沖響應(yīng),必須用視窗系數(shù)乘以截?cái)嗝}沖系數(shù),得出所需的濾波器系數(shù)。

雖然視窗類型決定了滾降頻率,但經(jīng)驗(yàn)法則告訴我們,對于所需的跳變帶寬,需要的抽頭數(shù)量為:
N=4/BW

其中 BW 為跳變帶寬。

實(shí)現(xiàn)不同的濾波器拓?fù)?/strong>
無論最終得到的濾波器類型是什么(是帶通、帶阻還是高通),所有這些都始于低通濾波器的初始設(shè)計(jì)。如果知道如何設(shè)計(jì)低通濾波器和高通濾波器,將兩者相結(jié)合就可得到帶阻及帶通濾波器。

 

首先看如何將低通濾波器轉(zhuǎn)化成高通濾波器。最簡單的方法叫做頻譜翻轉(zhuǎn),即將阻帶轉(zhuǎn)換為通帶,將通帶轉(zhuǎn)換為阻帶。執(zhí)行頻譜翻轉(zhuǎn)的方法是翻轉(zhuǎn)每一個樣本,同時給中心樣本添加一個樣本。第二種轉(zhuǎn)換高通濾波器的方法為頻譜倒轉(zhuǎn),即鏡像頻譜響應(yīng),方法很簡單,就是倒轉(zhuǎn)每一個其它系數(shù)。

完成低通濾波器和高通濾波器的設(shè)計(jì)之后,就可通過組合便捷地生成帶通濾波器和帶阻濾波器。生成帶阻濾波器只需將高通濾波器和低通濾波器并行布置,然后將輸出加總。生成帶通濾波器則可通過將低通濾波器和高通濾波器串行布置來實(shí)現(xiàn)。

實(shí)際設(shè)計(jì)
上面的內(nèi)容現(xiàn)已詳細(xì)說明了窗式正弦濾波器的情況、視窗應(yīng)用的重要性以及如何生成不同拓?fù)涞臑V波器。不過在 FPGA 中實(shí)現(xiàn)濾波器之前,必須使用如 Octave、MATLAB® 或者 Excel等一種軟件工具生成一組濾波器系數(shù)。許多這些工具都可提供簡化的界面和選項(xiàng),幫助用戶以最少的工作量完成濾波器設(shè)計(jì),MATLAB 中的 FDA 工具就是最好的示例。

在為所需濾波器生成一組系數(shù)后,就可在 FPGA 中實(shí)現(xiàn)濾波器。無論決定采用的抽頭數(shù)量多寡,F(xiàn)IR 濾波器每一級的基本結(jié)構(gòu)是不變的,總是由乘法器、存儲以及加法器構(gòu)成。

現(xiàn)在在許多應(yīng)用中都可看到數(shù)字濾波器的身影,而 FPGA 則可為使用它們的系統(tǒng)設(shè)計(jì)人員帶來顯著優(yōu)勢。

大多數(shù)工程師青睞的、迄今為止最簡單的方法是使用賽靈思 COREGenerator™ 工具的 FIR Compiler,其可為定制和生成高級濾波器提供多種選項(xiàng)。用戶可將生成的系數(shù)以 COE 文件形式導(dǎo)入 FIR Complier。該文件內(nèi)含已經(jīng)為基數(shù)賦值的各種濾波器系數(shù)。
Radix=10;
Coefdata =
-0.013987944,
-0.01735736,
-0.005971498,
0.012068368,
0.02190073,

將這些系數(shù)加載后,F(xiàn)IR Compiler將顯示與所提供系數(shù)相對應(yīng)的該濾波器頻率響應(yīng),以及阻帶衰減與通帶紋波等基本性能特征。

在使用 FIR Compiler 工具完成濾波器定制后,只要用戶使用的是正確的仿真庫,CORE Generator 就可生成實(shí)現(xiàn)設(shè)計(jì)以及在實(shí)現(xiàn)之前的行為仿真過程中對其仿真所需的全部文件。

如果愿意,用戶還可以使用用戶自己生成的 HDL 實(shí)現(xiàn)該濾波器。這種方法一般只有在用戶最終實(shí)施目的是ASIC,只是將 FPGA 實(shí)施用作原型設(shè)計(jì)系統(tǒng)時使用。在這種情況下,第一步是量化濾波器系數(shù),以便使用浮點(diǎn)結(jié)果的固定數(shù)字表示。由于濾波器系數(shù)可以為正,也可以為負(fù),常見的做法是采用二的補(bǔ)碼格式表示這些系數(shù)。在完成系數(shù)的量化后,就可將其當(dāng)作常數(shù)用于HDL 設(shè)計(jì)中。

現(xiàn)在在許多應(yīng)用中都可看到數(shù)字濾波器的身影,而 FPGA 則可為需要使用它們的設(shè)計(jì)人員帶來顯著優(yōu)勢。使用基本數(shù)學(xué)工具,結(jié)合 FPGA 內(nèi)核生成工具或者直接使用 HDL,可便捷設(shè)計(jì)和實(shí)現(xiàn)窗式正弦濾波器。

 

 

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。