如何設計用於插值和抽取的IIR濾波器

2020-12-14 電子發燒友

如何設計用於插值和抽取的IIR濾波器

David Wheeler 發表於 2017-11-18 13:32:04

在佔用極低資源的情況下輕鬆創建適合在DSP48E1Slice或邏輯中實現的高階多相IIR濾波器。

設計人員常常為自己的應用選擇有限脈衝響應(FIR)濾波器,因為此類濾波器易於理解掌握且得到出色的設計與IP實現工具的支持。賽靈思FIR編譯器是一種用於將MATLAB®生成的係數映射到DSP和FPGA邏輯資源中的理想工具。不過在大幅降低FPGA資源佔用的情況下設計出能夠滿足特定濾波規範要求的無限脈衝響應(IIR)濾波器是可行的。選用IIR濾波器的主要弊端就是使用設計工具時需要掌握一些專業知識,通常後續還需要手動編寫RTL代碼。不過只要您完成濾波器的架構設計並以定點方式表達出來,利用像賽靈思System Generator這樣的新型工具就能自動為您生成HDL。賽靈思的一篇相關白皮書中全面介紹了各種傳統IIR濾波器[1]。

現在我們來了解一下如何在佔用極低FPGA資源的情況下實現高性能多相IIR濾波器。這些濾波器結構特點在於NK+1階的濾波器僅用K次相乘就能實現。此類濾波器對係數量化敏感度低,故可有效地以定點方式實現。此外濾波器級上任何節點的最大增益都是有界的,即中間計算只需要1位餘量。這裡我們提供的是一種通用架構,適合於實現流水線化並映射到賽靈思7系列器件中的DSP48E1Slice中。該架構包括一定數量的無乘法器五階橢圓濾波器設計,適合在少量FPGA邏輯片中高效完成多相插值和抽取處理。

MATLAB能夠將IIR濾波器設計分解成較低階級聯。這種較低階級聯與直接實現高階差分方程的做法相比,擁有更加理想的數值特性。一般來說低階濾波器選用的是二階雙象限段(SOS),其採用的是直接型1結構。每個SOS需要完成四次相乘、三次相加和部分捨入,以減少進入級聯中用於下一個濾波器的位寬。對於定點實現一般還需要增加一個乘法器來實現段間縮放。

不過級聯分解法對插值器或者抽取器來說並非是一種有效的架構,因為它沒有發揮多相分解的作用。例如在插值過程中,在將輸入數據應用到濾波器之前,需要先在樣本之間插入N-1個零,實現輸入數據上採樣並將輸入採樣率提高到與輸出採樣率相等。但級聯IIR濾波器由於每個SOS內存在的反饋路徑,就無法通過插入零來降低計算量。

用於多相分解的IIR濾波器
本文介紹的濾波器採用圖1中所示的並聯濾波器分解架構。在並聯方式下,每個分支上的濾波器依次比上一分支多延遲1。此外每個分支中的濾波器限制為N帶。每個分支的延遲數由輸入/輸出採樣率決定,但每個An(zN)濾波器的項只涉及z-N冪數,就是說差分方程式只對每第N個輸入/輸出樣本進行計算,而對之間的全部樣本忽略不計。

傳輸函數為被延遲的N帶全通濾波器An(zN)之和。即:

此外還可以把每一個全通濾波器表達為基本全通段的級聯,如圖1所示。設全通段的總段數為K,則H(z)的階數為NK+1。即有:

圖1:上面是IIR濾波器的並聯形式;下面是由級聯的基本濾波器組成的每個分支。

圖2是在直接型1中實現的基本全通段。它由兩個N-樣本延遲元和一個單係數乘法器組成。除了便於使用標準的乘法器,使用直接型1還有其他優勢。它能夠高效地映射到DSPSlice中並在級聯條件下共享延遲資源。

圖2:基本全通段

插值和抽取
這種濾波器架構可以自然地映射為圖3所示的抽取和插值結構中。這裡用換向開關在更高採樣率下切換到每個樣本,取代了圖1中所採用的延遲元。

對隔N插值和抽取的操作,我們既可以圍繞圖3提供的理想結構開展設計,也可以設計由質因數採樣率轉換組成的級聯。分解為質因數[2]可以簡化係數優化問題,因為自由變量的數量較少,且得到的濾波器級聯十分接近理想狀態。在許多應用中,需要的採樣率轉換為2的冪,可通過反覆隔2插值或抽取來實現。為不失普遍性,我們先來驗證N=2時的特例。

根據圖3所示,N=2時低通濾波器總階數為5,雖然它由兩個二階全通段和一個延遲元組成。現在應該明確的是,與使用SOS實現該五階IIR濾波器所需的十個乘法器和八個加法器相比,在理想情況下本例只需要兩個乘法器和五個加法器。如果考慮到是隔2抽取,即對每個輸入樣本只有一個分支處於活躍狀態,那麼還可以有更大程度的節省。這相當於把輸入序列分為兩個半採樣率序列,分別為奇次樣本和偶次樣本。然後將這些樣本應用到全通分支並加總。此外每個基本段內的延遲元可以在較低速率下運行 ,從而讓存儲需求減半。這個設計可以高效地實現流水線化並映射到一個DSPSlice,因為兩個分支的輸出濾波器可使用外部加法器進行累加。所以實現一個如圖4所示的五階隔2抽取IIR濾波器,只需要一個DSP48E1Slice。插值也存在類似的情況,由每個分支濾波器依次提供一個交織器的的樣本。另外,支持隔2插值也只需要一個DSPSlice。

A、B、C、D和P埠依據賽靈思7系列命名法[3]。您可以級聯DSPSlice來實現更高階的濾波器,而且由於採用雙分支結構,每個分支的流水線延遲相等。需要注意的是因為反饋路徑只能延遲2,需要使用三個內部寄存器的DSPSlice無法完全實現流水線化且。與在輸入端寄存相比,使用M寄存器可以在更高頻率下運行且功耗更小。當N=3或者更大的數時,既可以採用讓DSPSlice在最大頻率下運行的做法,也可以採用讓DSPSlice最大限度地實現流水線化的做法。後者可以通過讓濾波器在雙通道TDM模式下工作來實現,此時延遲元數量翻倍,A輸入反饋路徑使用Slice中的寄存器A1和A2,這樣C輸入之前的延遲就從3增加到5。

圖3:抽取(左圖)與插值(右圖)

圖4:隔2抽取,映射到賽靈思DSP48E1

量化和裕量
此類N帶結構已被命名為波數字濾波器(WDF),因為它們可以模擬經典模擬濾波器中的雙端無損梯形網絡。文獻中對此類含有橢圓響應的濾波器設計有全面的介紹。這種設計與用於模擬、數字域間轉換的雙線性變換相結合,為設計數字橢圓濾波器和巴特沃斯濾波器提供了有力的方法。使用梯形濾波器的另一個優勢在於此類結構沿襲了對係數量化低敏感度的特性。這意味著要在不含劣化等紋波特性的情況下實現能滿足100dB阻帶需求的濾波器,係數使用18位的字長度綽綽有餘。對基本段[4]穩態增益特性的分析,發現增益最低的算術節點的最大增益為2.0,且發生在預加法器的輸出處。這對定點設計而言有著顯著的意義,因為它意味著我們只需要在預加法器輸出增加1位即可。在賽靈思DSP48E1Slice內的預加法器輸出沒有飽和邏輯存在,故將A和D的輸出限制為24位可以防止濾波器的運行發生數字溢出,以及更為重要的是,讓運行達到DSPSlice的最大內部精度。雖然穩態增益被限制在2.0,階梯響應下的瞬態會超過2.0,因此建議只使用23位,為安全運行留出裕量。對某些數據源,比如說24位音樂而言,您可利用預先知曉的信號特性,應用完全的動態範圍。

如果輸入數據不足24位,應在字中左對齊,因此會產生部分分數位。例如,對於16位輸入數據而言,理想的選擇是留出1位保護位、16位數據位和7位分數位。與浮點相比,一般只需要3到4位分數位就足以實現理想的精度。

圖5:滿足相同阻帶(左圖)和通帶(右圖)規範的21階FIR濾波器和五階WDF

生成濾波器係數
R.A. Valenzuela和A.G. Constantinides[5]的專著中已充分介紹了採用雙分支結構實現為任何階數橢圓濾波器生成係數的方法。圖5所示的是一種標準化通帶為0.125的五階(兩個係數a0=0.1380,a1=0.5847)WDF濾波器,與使用帕克斯-麥克萊倫算法設計的22抽頭FIR濾波器相比,它能夠滿足相同的通帶紋波和阻帶衰減指標。結果表明濾波器階數通常下降到原來的1/4,且與FIR所用的11個乘法器相比(考慮對稱因素),WDF只需要兩個乘法器。

在半帶WDF中,阻帶和通帶紋波並非互不相干。不過通過合理設置阻帶衰減就能得到可忽略不計的通帶紋波。例如圖5中的濾波器的通帶紋波為10-6dB。FIR的優勢在於能夠單獨設定這兩個設計參數,這樣在給定階數的情況下,可以設定較高的通帶紋波來幫助滿足阻帶需求。

接下來我們來驗證一下如果不使用DSP48E1,而是通過高度量化係數在部分LE中實現濾波器情況會得到什麼。回顧一下,由於WDF濾波器以模擬梯形濾波器原型為基礎,那麼針對特定的通帶我們應該能夠找到低位密度的係數。比特 應儘量以標準分解方法寫入,從而最大程度地減少加法器的數量,如表1所示。

表1 - 三種樣本通帶的量化係數

雖然0.19通帶的五階濾波器的阻帶衰減已經不錯了,但是將兩個這樣的濾波器簡單級聯就可以得到阻帶為-78dB的10階濾波器。例如表1中的第一個抽取器可以用圖6中給出的少許幾行Verilog代碼來實現。

圖6:實現表1中第一個抽取濾波器的Verilog代碼

有效資源
我們已經展示了自然而然映射到插值和抽取中的IIR濾波器構建。該結構比IIR二階段甚至FIR都擁有更多有效資源。它能充分映射到DSP48E1Slice的預加法器/乘法器/後加法器中,且對於18位係數的定點量化效應十分穩健,從而給出可控制的100dB阻帶。一些無乘法器五階設計可允許用於特定通帶寬,可將其映射到一些邏輯寄存器和加法器中以降低DSP資源佔用。

參考文獻:
1. 賽靈思白皮書WP330,《賽靈思FPGA中的無限脈衝響應濾波器結構》,2009年8月;
2. 作者:P.P. Vaidyanathan,《多速率系統和濾波器組》,Prentice-Hall出版社,紐約州Englewood Cliffs,1993年;
3. 《賽靈思7系列DSP48E1 Slice用戶指南》,1.5版本,2013年4月3日;
4. 作者:Artur Krukowski,Richard Morling,Izzet Kale,《多相位N路徑IIR結構量化效應》,IEEE儀器測量彙刊,第51卷第6號,2002年12月;
5. 作者:R.A. Valenzuela和A.G. Constantinides,《高效率插值抽取數位訊號處理方案》,電子電路和系統,IEEE會議記錄第G部分第130卷第6號,1983年。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 一種分數階微分IIR濾波器的設計方法和改進
    該方法利用幾種基於典型微分算子的分數階微分濾波器之間的互補性,通過相互內插結合的方式,用於提高IIR分數階數字濾波器的性能。改進後的分數階微分濾波器頻率響應更接近理想分數階微分濾波器,表明所提方法的有效性。
  • 什麼是fir數字濾波器 什麼叫FIR濾波器
    * 適合於多採樣率轉換,它包括抽取(降低採樣率), 插值(增加採樣率)操作. 無論是抽取或者插值, 運用FIR濾波器可以省去一些計算, 提高計算效率. 相反,如果使用IIR濾波器,每個輸出都要逐一計算,不能省略,即使輸出要丟棄. * 具有理想的數字特性.
  • 基於FDATool的FIR濾波器設計方法(一)
    FIR濾波器是全零點結構,系統永遠穩定;並且具有線性相位的特徵,在有效頻率範圍內所有信號相位上不失真。在無線通信收發機中的DDC/DUC模塊,抽取和內插都需要加入濾波器以防止信號在頻譜上混疊,最典型的是採用 FIR濾波器實現半帶濾波器。
  • 大神教你:FIR與IIR低通濾波器的最簡最快實現
    大神教你:FIR與IIR低通濾波器的最簡最快實現 工程師2 發表於 2018-05-25 09:08:00 在設計單片機程序的過程中,經常需要利用ADC採集外界模擬信號
  • 電能計量晶片Sigma-Delta ADC降採樣濾波器設計(二)
    3 補償濾波器的設計本文引用地址:http://www.eepw.com.cn/article/174622.htm從圖3 可以看出,CIC 濾波器幅頻特性曲線在通帶內並不平坦,在通帶內信號被衰減
  • 開關電容濾波器前置、後置濾波器的設計
    摘要:如何為開關電容濾波器(SCF)合理配置前置、後置濾波器,一直缺少系統的分析和說明。在研究SCF工作特性的基礎上,提出了SCF前置、後置濾波器的設計方法。SFC前置、後置濾波器的主要設計參數是轉角頻率和衰減量。設計時,先根據系統要求確定衰減量,再根據選定的濾波器結構的衰減係數確定轉角頻率。
  • 詳解低通濾波器的設計
    根據衝激響應的不同,將數字濾波器分為有限衝激響應(FIR)濾波器和無限衝激響應(IIR)濾波器。對於FIR濾波器,衝激響應在有限時間內衰減為零,其輸出僅取決於當前和過去的輸入信號值。對於IIR濾波器,衝激響應理論上應會無限持續,其輸出不僅取決於當前和過去的輸入信號值,也取決於過去的信號輸出值。 2.FIR:有限脈衝響應濾波器。有限說明其脈衝響應是有限的。
  • 外差式頻譜儀FFT解析度濾波器設計
    依照超外差式頻譜儀的原理可知,解析度帶寬取決於中頻濾波器的帶寬。當需要很高的頻率分辨力時,必須降低中頻濾波器的帶寬,而窄帶寬的中頻濾波器會減慢外差式頻譜儀的掃描速度並增加中頻濾波器的設計難度。所以要實現小的解析度帶寬,並且使掃描時間限制在合理的範圍,需採取其他方法。
  • 如何在 FPGA 上實現雙線性插值的計算?
    作者 | 殷慶瑜責編 | 胡巍巍本文主要討論了如何在FPGA上實現雙線性插值的計算。Interp和Resize是Yolo_v2,Yolo_v3和Faster R-CNN等目標檢測網絡的關鍵層。主要的作用是使得圖片的放大和縮小過程變得更為平滑。
  • 用於電機控制的優化∑-∆調製電流測量
    該濾波器將1位信號轉換為多位(M位)信號,並通過抽取過程降低數據更新速率。雖然濾波器抽取降低了數據速率,但速率通常仍然過高,無法匹配控制算法的更新速率。為了解決這個問題,我們增加了最後的降採樣階段。本文假設濾波器和抽取級在FPGA中實現,並且濾波器是一個三階sinc濾波器(sinc3)。
  • Spectrum儀器SBench6測量軟體全面升級,新增定製化、自動化及插值...
    以圖2為例,一個125 MS/s的16位解析度數位化儀採集到了一個振幅為1.82 V和20 MHz的正弦波。左邊黃色軌跡表示沒有插值的信號,樣本點由直線連接。右邊藍色的軌跡表示相同的信號,但使用了插值信號。圖2顯示插值功能可以顯著提升參數測量的精準度。您可以觀察和對比兩條線上頂部的正弦波。
  • 什麼是低通濾波器?無源RC濾波器基礎介紹
    濾波器也可以根據用於實現電路的組件類型進行分類。無源濾波器使用電阻器、電容器和電感器;這些元件不提供放大,因此無源濾波器只能維持或減小輸入信號的振幅。另一方面,有源濾波器既可以過濾信號又可以應用增益,因為它包括有源元件,如電晶體或運算放大器。
  • 一種小型DMS低通濾波器設計
    利用其高電感高電容低通帶阻特性設計出的低通濾波器可以用於功率放大器[1]、混頻器[2,3]等微波有源器件的諧波抑制。在L、S波段,國內外專家和學者對DMS結構在低介電常數基板材料上做了大量的研究工作,在更高頻段,高介電常數基板上的有關報導較少。為了實現將DMS的寬阻帶,小尺寸特性應用於高頻段,高介電常數材料,有必要對其進行做新的探討。
  • Delta-sigma數據轉換器的抗混濾波器設計方案
    用於Delta-sigma數據轉換器的抗混濾波器設計方案明顯不同於SAR(逐次逼近寄存器)或流水線(高速)轉換器的設計方法。在參考1中,您可以找到delta-sigma轉換器的基本抗混濾波器設計概念。圖1 這個整隻濾波器可衰減RFLT/2和CFLT的差分噪聲,以及CCM_P和CCM_N的共模噪聲。
  • 關於W波段矩形波導濾波器的設計
    基於上述需求,本文設計了一款W波段矩形波導濾波器,並使用電磁仿真軟體HFSS對其結構參數進行了參數優化與仿真,研究了濾波器的性能指標與其各個結構參數之間的內在關係,為矩形波導濾波器的設計提供了新的思路,也方便了濾波器的設計與仿真,有一定的實際意義。
  • 濾波器截止頻率如何設置
    打開APP 濾波器截止頻率如何設置 發表於 2017-11-26 09:45:41 例如, 一個0.1 dB切比雪夫濾波器的F0 可以定義為響應下降》 0.1 dB 時的頻率。 如果考察的是實際頻率與截止頻率之比,而不是實際頻率 本身,則衰減曲線的形狀(以及相位和延遲曲線,它們定 義著濾波器的時域響應)將是相同的。將濾波器歸一化至 1 rad/s,則可開發出一種簡單的濾波器設計和比較系統。 在此基礎上,用截止頻率對濾波器進行縮放,以確定實際濾波器的元件值。
  • 插值算法的特點
    如果這特定函數是多項式,就稱它為插值多項式。不同插值法的特點介紹:1、距離倒數乘方法    距離倒數乘方格網化方法是一個加權平均插值法,可以進行確切的或者圓滑的方式插值。方次參數控制著權係數如何隨著離開一個格網結點距離的增加而下降。對於一個較大的方次,較近的數據點被給定一個較高的權重份額。
  • SAW和BAW濾波器的分析
    SAW技術還支持將用於不同頻段的濾波器和雙工器整合在單一晶片上,且僅需很少或根本不需額外的工藝步驟。 存在於具有一定對稱性晶體內的壓電效應是聲濾波器的「電動機」及 「發電機」 。當對這種晶體施以電壓,晶體將發生機械形變,將電能轉換為機械能。當這種晶體被機械壓縮或展延時,機械能又轉換為電能。在晶體結構的兩面形成電荷,使電流流過端子和/或形成端子間的電壓。
  • 去塊效應濾波器的結構設計
    引言 avc/h.264 標準為新一代全球性互操作標準奠定了技術基礎,得到了廣播、電信、移動通信和流媒體等領域的廣泛關注,在低碼率傳輸中尤其表現突出。為了消除方塊效應以獲得最佳的主觀視覺效果,h. 264標準引入了去方塊濾波器。
  • 如何提高濾波器對差模噪聲的抑制能力
    打開APP 如何提高濾波器對差模噪聲的抑制能力 佚名 發表於 2019-10-31 09:31:56 所以掌握濾波器的工作原理和其實用電路的結構及其正確的應用,是微電子裝置系統設計中的一個重要環節。 2差模信號和共模信號 差模信號又稱為常模、串模、線間感應和對稱信號等,在兩線電纜傳輸迴路,每一線對地電壓用符號V1和V2來表示。差模信號分量是VDIFF。