chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

IIR數(shù)字濾波器的FPGA實(shí)現(xiàn)

電子工程師 ? 來源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2021-04-04 12:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、關(guān)于IIR數(shù)字濾波器

當(dāng)然關(guān)于IIR濾波器的知識,想必大家在教材上都已經(jīng)很熟了,這里我就簡單說一下自己的理解好了。

正如前面說的,IIR數(shù)字濾波器,即無限長單位脈沖響應(yīng)數(shù)字濾波器。所謂無限長單位脈沖響應(yīng),也就是說,對于一個(gè)系統(tǒng),我們給其輸其激勵(lì),在輸出端得到的一串序列hn是無限長的,又因?yàn)槲覀冇懻摰亩际且蚬到y(tǒng),即只考慮n大于零的部分,所以,hn可以表示為0《= hn 《 無窮大。

前面還說了,IIR區(qū)別于FIR濾波器的還一個(gè)特點(diǎn)就是他的反饋結(jié)構(gòu),即IIR濾波器的輸出,不僅與輸入激勵(lì)有關(guān),還與當(dāng)前的輸出值也有關(guān),用差分方程來表示就是

60e11814-8f65-11eb-8b86-12bb97331649.jpg

根據(jù)這個(gè)差分方程可以看出:

1、跟FIR濾波器的差分方程進(jìn)行對比的話會發(fā)現(xiàn),IIR濾波器的差分方程等式右邊的前半部分跟FIR濾波器的差分方程類似,都是對輸入信號進(jìn)行的卷積運(yùn)算,只不過FIR濾波器是將輸入信號與系統(tǒng)的單位脈沖響應(yīng)進(jìn)行卷積,而這里是輸入信號跟IIR濾波器的零點(diǎn)系數(shù)進(jìn)行卷積

2、后半部分是IIR濾波器的極點(diǎn)部分,也可以看做是一個(gè)N階的FIR濾波器,運(yùn)算對象是系統(tǒng)的輸出信號的一部分與極點(diǎn)系數(shù)的一部分。

3、因此,IIR濾波器的輸出就可以看成是 兩個(gè)FIR濾波器的運(yùn)算,即

61659aee-8f65-11eb-8b86-12bb97331649.jpg

ao即Y(n)的系數(shù)

然而IIR濾波器的表示形式還有一種方式,就是我們常說的系統(tǒng)函數(shù),即對差分方程中的輸入輸出進(jìn)行Z變換,并通過移位運(yùn)算得到H(z),而它也就是系統(tǒng)單位脈沖響應(yīng)的Z變換

61c89932-8f65-11eb-8b86-12bb97331649.jpg

二、關(guān)于零極圖

我們知道,系統(tǒng)函數(shù)的分子分母都是一個(gè)乘加多項(xiàng)式,既然這樣,分子分母就可以進(jìn)行因式分解,也就是我們書本上的系統(tǒng)的零極點(diǎn)表達(dá)式

零極圖的作用可不小,既然我們?yōu)V波器的系統(tǒng)函數(shù)完全可以用零極點(diǎn)來表示,也就是說,我們?yōu)V波器的性質(zhì),也可以通過零極圖來分析,比如可以通過零極圖來看系統(tǒng)的單位脈沖響應(yīng)的形狀,系統(tǒng)的因果性與穩(wěn)定性之類的

1、零極圖與單位脈沖響應(yīng)

629df67c-8f65-11eb-8b86-12bb97331649.jpg

看上面這張圖,現(xiàn)在假如有個(gè)IIR數(shù)字濾波器,假設(shè)只有一個(gè)極點(diǎn),極點(diǎn)位置的不同會導(dǎo)致濾波器單位脈沖響應(yīng)形狀的不同,總結(jié)如下:

1、極點(diǎn)在單位圓內(nèi)時(shí),單位脈沖響應(yīng)的形狀呈下降收斂狀,極點(diǎn)在單位圓上時(shí),單位脈沖響應(yīng)的形狀呈直線狀,極點(diǎn)在單位圓外時(shí),單位脈沖響應(yīng)的形狀呈上升發(fā)散狀,且離單位圓越遠(yuǎn),放大倍數(shù)越大

2、單位脈沖響應(yīng)的形狀主要是由濾波器的極點(diǎn)位置決定,零點(diǎn)位置主要是影響單位脈沖響應(yīng)的幅度特性和相位特性(上圖中雖然沒有畫出零點(diǎn),大家可以通過matlab仿真總結(jié)出這條結(jié)論)

2、零極圖與濾波器的因果性,穩(wěn)定性

通過教材我們已經(jīng)知道了,我們所研究的都是因果系統(tǒng),而因果系統(tǒng)的收斂域不包括任何一個(gè)極點(diǎn)。為什么呢?因?yàn)闃O點(diǎn)是導(dǎo)致系統(tǒng)函數(shù)趨于無窮大的點(diǎn),一旦收斂域包含了極點(diǎn),那就會導(dǎo)致系統(tǒng)函數(shù)不收斂,因此,因果系統(tǒng)的收斂域必須大于離單位圓原點(diǎn)最遠(yuǎn)的那個(gè)極點(diǎn),也就是說,只要知道了一個(gè)因果系統(tǒng)的極點(diǎn)分布,那么他的收斂域也就已經(jīng)確定了。假如定義一個(gè)系統(tǒng)的極點(diǎn)分別為 : 1 ,-2,0.5,-3,那么這個(gè)系統(tǒng)的收斂域就是 z 》 3.

關(guān)于穩(wěn)定性問題,我們知道,只有當(dāng)系統(tǒng)函數(shù)的收斂域包含單位圓的時(shí)候,單位脈沖響應(yīng)絕對可和,這時(shí)候系統(tǒng)才是穩(wěn)定的,又由于之前說的因果性, 系統(tǒng)函數(shù)的收斂域不能包含任何一個(gè)極點(diǎn),因此我們知道,只有當(dāng)極點(diǎn)在單位圓內(nèi)的時(shí)候才符合要求,因此,極點(diǎn)在單位圓內(nèi)成了系統(tǒng)穩(wěn)定的必要條件。

三、關(guān)于IIR濾波器的設(shè)計(jì)方法

其實(shí),我們書本上介紹的什么脈沖響應(yīng)不變法,雙線性變換法之類的設(shè)計(jì)方法,設(shè)計(jì)過程都太過于繁瑣,想必大家都深有體會,可能原理不是很難理解,但是真正讓我們?nèi)ナ謩?dòng)去算一個(gè)題,還不知道要算到什么時(shí)候。但是matlab為我們提供好了設(shè)計(jì)函數(shù),我們甚至不需要知道那些變換方法,也可以設(shè)計(jì)出符合要求的濾波器。但是,書本上既然寫了,總有他寫這些東西的目的,可能我們實(shí)在不好理解他的運(yùn)算過程,但是也要大體上知道這回事,畢竟人家是當(dāng)時(shí)的科學(xué)巨匠的畢生心血,哪有那么好懂~是吧,我們只要是會用就不錯(cuò)了,下面就簡單總結(jié)一下這幾種方法:

IIR數(shù)字濾波器都是經(jīng)過低通模擬濾波器變換而來的,因?yàn)槟M濾波器的理論已經(jīng)很成熟了,而且有大量的數(shù)據(jù)供我們直接使用,比如巴特沃斯濾波器的設(shè)計(jì)過程,已經(jīng)給我提供好了求最小濾波器階數(shù)和零極點(diǎn)的公式,只要我們將濾波器指標(biāo)帶進(jìn)去計(jì)算就好了。

至于這些公式怎么來的,說實(shí)話我也看不懂,只知道是一大片數(shù)學(xué)公式推導(dǎo)而來,很多朋友一看到這群數(shù)學(xué)公式肯定就迷糊了,甚至是失去了學(xué)習(xí)的興趣了,太過繁瑣的數(shù)學(xué)公式的推導(dǎo),使得我們的教材變得枯燥無味,我是過來人我深有體會,雖然這樣的教材很嚴(yán)謹(jǐn),但是卻抹殺了學(xué)生的積極性,并沒有取得好的教學(xué)目的,其實(shí)還是感覺那句老話說的對“高手在民間啊”,很多一些不出名的關(guān)于信號處理的書,卻硬是把信號處理這門課寫的生動(dòng)有趣,讓人一讀便懂,甚至有種豁然開朗的感覺。再反觀我們使用的教材,雖然獲得了什么什么教學(xué)獎(jiǎng),然而感覺并沒有真正站在學(xué)生的角度在寫這本書,學(xué)生看到只是大片的數(shù)學(xué)公式,也就喪失了信心了。

常用的模擬濾波器設(shè)計(jì)模型大概有這幾種,巴特沃斯濾波器,切比雪夫?yàn)V波器、和橢圓濾波器,這幾個(gè)濾波器都模擬低通濾波器,要想得到其他類型的濾波器,需要經(jīng)過變換,然而這幾種提供了詳細(xì)的設(shè)計(jì)資料,有了這些資料,我們就能通過變換將其變換為我們需要的其他類型的數(shù)字濾波器。

例如,我想設(shè)計(jì)一個(gè)IIR帶通濾波器,根據(jù)需要

1、 我需要先確定濾波器指標(biāo),主要包括通帶最大衰減,阻帶最小衰減,通帶截止頻率,阻帶截止頻率

2、有了這4個(gè)模擬帶通濾波器的指標(biāo),我們可以用頻率變換公式將這4個(gè)指標(biāo)轉(zhuǎn)換為相應(yīng)模擬低通濾波器的指標(biāo)。

3、有了低通濾波器的指標(biāo),就可以根據(jù)經(jīng)典濾波器的資料,設(shè)計(jì)成相應(yīng)的模擬低通濾波器。

4、 對模擬低通濾波器進(jìn)行頻率變換,得到我們想要的模擬帶通濾波器

5、最后可以通過脈沖響應(yīng)不變法或者雙線性變換法,得到我們需要的數(shù)字帶通濾波器

下面就總結(jié)一下這兩種變換方法

脈沖響應(yīng)不變法

上面說了,需要通過脈沖響應(yīng)不變法或者雙線性變換法將模擬帶通濾波器轉(zhuǎn)換為我們需要的數(shù)字帶通濾波器。既然是模擬濾波器,也就是說,是單位脈沖響應(yīng)ht的拉普拉斯變換,如果對模擬濾波器的系統(tǒng)函數(shù)進(jìn)行逆拉普拉斯變換就可以得到ht,有了ht,再通過抽樣不就可以轉(zhuǎn)化為hn了嘛,所以,脈沖響應(yīng)不變法可以總結(jié)如下:

1、對模擬濾波器的系統(tǒng)函數(shù)進(jìn)行逆拉普拉斯變換得到時(shí)域上連續(xù)的系統(tǒng)的單位沖激響應(yīng)ht

2、對ht進(jìn)行n點(diǎn)等間隔抽樣,得到時(shí)域上離散的系統(tǒng)的單位脈沖響應(yīng)hn

3、對hn進(jìn)行Z變換,得到數(shù)字濾波器的系統(tǒng)函數(shù)H(Z)

需要注意的是,在對時(shí)域上連續(xù)信號進(jìn)行等間隔抽樣的時(shí)候,我們知道,時(shí)域抽樣等同于頻域的周期延拓,如果不滿足一定的條件,就會導(dǎo)致信號的頻域混疊 ,而這個(gè)條件,就是我們采樣定理所給出的,即必須得保證模擬濾波器的帶寬是有限帶寬,并且采樣頻率fs 》 2fmax.

看下面這張圖我來解釋一下

63409d28-8f65-11eb-8b86-12bb97331649.jpg

這里我來解釋一下采樣定理,假如有一個(gè)帶限模擬信號,他的時(shí)域和頻域波形如圖第一排所示,可以看到在頻域,他的帶寬為2Ωmax,即最大角頻率為Ωmax

而Ωmax= 2πfmax,這里的fmax是模擬頻率,單位是hz,跟角頻率不同

現(xiàn)在用一個(gè)頻率為fs的信號對原模擬信號在時(shí)域進(jìn)行等間隔抽樣,采樣信號在頻域的波形如圖第二排所示,角頻率Ωs = 2πfs,是一個(gè)周期為Ωs的周期信號

圖上第三排是模擬信號經(jīng)采樣后的時(shí)域波形與頻域波形,時(shí)域波形很直觀,就是由連續(xù)信號變?yōu)榱穗x散信號,頻域波形變成了原模擬信號波形的周期延拓,周期為2π

大家知道,在數(shù)字頻域,角頻率w = Ω / fs ,所以我們看到在Ωs的正下方對應(yīng)的是2π,數(shù)字頻域0到2π之間對應(yīng)的當(dāng)然就是π,而這里的π對應(yīng)的模擬頻率,當(dāng)然就是fs/2,而數(shù)字頻域的wmax 則對應(yīng) Ωmax / fs ,即 wmax = 2πfmax / fs

所以,要想保證經(jīng)采樣后的信號的頻譜不發(fā)生頻率混疊,就必須要保證wmax 《 π

因此推得 fs 》 2fmax

正是因?yàn)槿绱?,脈沖響應(yīng)不變法只能用來設(shè)計(jì)低通和帶通濾波器,不能設(shè)計(jì)高通和帶阻濾波器,因?yàn)楹髢烧咴跀?shù)字頻域π處均存在頻譜分量

63680f2a-8f65-11eb-8b86-12bb97331649.jpg

雙線性變換法

雙線性變化法相對于脈沖響應(yīng)不變法適應(yīng)性更強(qiáng),不存在混疊失真的情況,但是計(jì)算過程也是相當(dāng)?shù)膹?fù)雜,具體過程其實(shí)書上都有寫,只不過就是太過繁瑣,讓人看得不爽。好在matlab為我們提供了設(shè)計(jì)好的函數(shù),matlab工具箱里的函數(shù) butter ellip cheby1 cheby2 等函數(shù)都是基于雙線性變換法來設(shè)計(jì)的函數(shù),可以直接將跳過復(fù)雜的設(shè)計(jì)過程,由我們制定的濾波器指標(biāo)直接生成數(shù)字濾波器的零極點(diǎn)系數(shù)。

既然這樣,我們之前還那么多廢話干什么?直接講matlab設(shè)計(jì)不就好了?其實(shí)并不是這樣,知識是一個(gè)體系,只有有了前面的知識做鋪墊,才能為以后的設(shè)計(jì)打下基礎(chǔ),要不然只會調(diào)用matlab函數(shù),不懂為什么這樣的,到后面就遇到瓶頸了。

好了,在了解這些理論知識之后我們就可以來設(shè)計(jì)我們的濾波器,其實(shí)當(dāng)這些東西都掌握的差不多的時(shí)候,你會發(fā)現(xiàn)設(shè)計(jì)濾波器并不是很難

和FIR濾波器一樣,我先把濾波器要求說明一下,然后再按照設(shè)計(jì)要求進(jìn)行設(shè)計(jì)

四、IIR濾波器的matlab設(shè)計(jì)與FPGA實(shí)現(xiàn)

要求設(shè)計(jì)一個(gè)IIR低通數(shù)字濾波器,要求::

1、 設(shè)計(jì)成切比雪夫II型濾波器

2、截止頻率為500hz,阻帶最小衰減為60db,采樣頻率為2000hz,,濾波器階數(shù)為7

3、合成信號為100,500,800hz的正弦信號的疊加

4、要求分別采用直接II型結(jié)構(gòu)和級聯(lián)型結(jié)構(gòu)分別在FPGA上實(shí)現(xiàn),并通過modelsim仿真出濾波后的100HZ正弦波

5、級聯(lián)結(jié)構(gòu)為了提高運(yùn)行速度采用流水線結(jié)構(gòu)設(shè)計(jì)

6、通過matlab對modelsim輸出的數(shù)據(jù)進(jìn)行仿真,看是否符合要求

前面說過了,matlab為我們提供了IIR濾波器設(shè)計(jì)的工具箱,我們可以直接調(diào)用函數(shù),就可以直接由濾波器指標(biāo)設(shè)計(jì)成數(shù)字濾波器

645a84f8-8f65-11eb-8b86-12bb97331649.jpg

如上圖所示,我們直接調(diào)用cheby2型函數(shù),送人濾波器設(shè)計(jì)指標(biāo),直接就可以設(shè)計(jì)出符合要求的濾波器,可以說,就這么幾行代碼,一個(gè)濾波器就設(shè)計(jì)完成了。但是,我們不僅要設(shè)計(jì)出濾波器,還要實(shí)現(xiàn)它,并且是FPGA硬件實(shí)現(xiàn),光有這些數(shù)據(jù)是不行的,上面設(shè)計(jì)的濾波器輸出如下

64fbc25a-8f65-11eb-8b86-12bb97331649.jpg

可以看到,這些數(shù)據(jù)是無法在FPGA上實(shí)現(xiàn)的,我們需要將他們量化,具體進(jìn)行多少bit的量化才可以設(shè)計(jì)出符合要求的濾波器,需要通過matlab仿真才知道。當(dāng)然,由上面的系數(shù)構(gòu)成的濾波器是理想濾波器,當(dāng)然他們的位數(shù)不僅僅是這幾位,是因?yàn)閙atlab顯示的原因,后面還有很多位數(shù)沒有顯示出來,要知道,我們是要將這些數(shù)據(jù)送到FPGA內(nèi)部的寄存器中進(jìn)行運(yùn)算的,不可能將所有位數(shù)都表示完整,只能表示個(gè)近似值,這就導(dǎo)致了有限字長效應(yīng),使得實(shí)際濾波器與理想濾波器還是有些差別的,因此,我們需要將這些系數(shù)進(jìn)行量化,將量化后的濾波器系數(shù)求出幅頻響應(yīng),與理想濾波器的幅頻響應(yīng)進(jìn)行對比,來確定量化位數(shù)

65506c1a-8f65-11eb-8b86-12bb97331649.jpg

上圖就是通過仿真來確定濾波器的量化位數(shù),函數(shù)QuantIIRDirectArith是用來計(jì)算實(shí)際情況下濾波器的單位脈沖響應(yīng)的,是人為編寫的函數(shù),其中的算法我們可以不去深究,只知道輸入量化后的濾波器系數(shù)和需要濾波器輸出的位數(shù),就可以計(jì)算出實(shí)際濾波器的輸出情況,與理想濾波器進(jìn)行對比,從而確定量化位數(shù),這里仿真出來,當(dāng)量化位數(shù)為16的時(shí)候,波形就幾乎與理想情況吻合

65c98af0-8f65-11eb-8b86-12bb97331649.jpg

對于系數(shù)的量化問題,這里也不能像FIR濾波器一樣直接進(jìn)行量化了,因?yàn)镮IR濾波器不僅存在乘加運(yùn)算,還存在除法運(yùn)算。前面說了,IIR濾波器的輸出,可以看做是兩個(gè)FIR濾波器相減之后再除以系數(shù)a(0),這里的系數(shù)a(0) 就是極點(diǎn)系數(shù)的第一項(xiàng),既然要除以這個(gè)系數(shù),只要保證這個(gè)系數(shù)是2的整數(shù)次冪,就可以通過向右移位的方式來進(jìn)行相除。例如,經(jīng)過處理和量化之后,極點(diǎn)系數(shù)的第一項(xiàng)為1024,那么就相當(dāng)于把兩個(gè)FIR濾波器的運(yùn)算結(jié)果右移10位就好了

661dad92-8f65-11eb-8b86-12bb97331649.jpg

這也可以算是一種算法了,大家可以帶一個(gè)數(shù)進(jìn)去試試,就知道這種算法的原理了,經(jīng)過這種方式的量化后,我們得到的濾波器系數(shù)就變?yōu)?/p>

6677cd04-8f65-11eb-8b86-12bb97331649.jpg

從這量化后的系數(shù)我們可以看出,零點(diǎn)部分完全就是一個(gè)FIR濾波器,極點(diǎn)部分還不太像,因?yàn)橄禂?shù)不對稱,這樣的話,我們有了濾波器的零極點(diǎn)系數(shù),剩下的就是FPGA實(shí)現(xiàn)了。

對于FPGA的實(shí)現(xiàn)過程,零點(diǎn)部分完全和FIR濾波器的運(yùn)算過程相同,就是將輸入信號存入寄存器之后,對輸入信號進(jìn)行對稱系數(shù)累加,再分別與濾波器的零點(diǎn)系數(shù)進(jìn)行相乘,最后將結(jié)果相加輸出濾波器極點(diǎn)部分zero(n)

極點(diǎn)部分跟零點(diǎn)部分類似,只有一點(diǎn)稍微需要注意,由于IIR濾波器存在反饋結(jié)構(gòu),濾波器的輸出也是極點(diǎn)部分的輸入。極點(diǎn)部分的累加相乘跟零點(diǎn)部分稍有不同,首先,極點(diǎn)部分不存在對稱結(jié)構(gòu),因此不需要將輸入信號進(jìn)行對稱相加,只需要直接與極點(diǎn)系數(shù)相乘。還有就是,極點(diǎn)系數(shù)的第一項(xiàng)不參與相乘,因?yàn)樗禽敵鯵(n) 的系數(shù),從第二項(xiàng)開始才進(jìn)行乘加運(yùn)算,例如pole_coe(1)*y(n-1) , pole_coe(2)*y(n-2)。..。..。.

前面說過,零點(diǎn)部分與極點(diǎn)部分進(jìn)行減法運(yùn)算,結(jié)果再除以Y(n)的系數(shù)之后,就是IIR濾波器的輸出

66c14ff6-8f65-11eb-8b86-12bb97331649.jpg

在用FPGA實(shí)現(xiàn)IIR濾波器的時(shí)候要注意這幾點(diǎn),我總結(jié)如下

1 、 首先要注意,不管是存儲數(shù)據(jù)的寄存器型變量還是線型變量都不要忘記定義成有符號型數(shù)據(jù)

2、 要注意字長問題,兩個(gè)N位數(shù)據(jù)相加,至少需要N+1位寄存器存儲結(jié)果才能保證結(jié)果不溢出,兩個(gè)N位數(shù)據(jù)相乘,至少需要2N位寄存去存儲,大部分情況下,2N-1位就可以了

3、最后的截尾處理,如果不能夠保證截取的位數(shù)能夠?qū)⑤敵龅臄?shù)據(jù)完整表示,可以考慮放棄精度,舍棄低位取高位。例如上面,假如我截取sum_div的0到15位不能夠表示IIR濾波器的輸出,也就是說有些IIR濾波器輸出的數(shù)據(jù)要大于2^15,因此,截尾的時(shí)候可以考慮截取1到16位作為結(jié)果,這樣做話相當(dāng)于降低了量化位數(shù),精度降低了,但可以保證輸出正確幅度的波形

下面是將疊加信號進(jìn)行濾波后的輸出情況

6734e880-8f65-11eb-8b86-12bb97331649.jpg

五、級聯(lián)結(jié)構(gòu)的IIR濾波器的FPGA實(shí)現(xiàn)

其實(shí)在實(shí)際應(yīng)用中,應(yīng)用最廣泛的還是級聯(lián)型結(jié)構(gòu),因?yàn)檫@種結(jié)構(gòu)的系統(tǒng)函數(shù)除了一個(gè)系數(shù)之外完全是由零極點(diǎn)構(gòu)成,而且占用資源少,速度快。

級聯(lián)結(jié)構(gòu)說白了就是幾個(gè)直接型結(jié)構(gòu)的IIR濾波器相乘罷了,有了直接型結(jié)構(gòu)的基礎(chǔ),再來設(shè)計(jì)級聯(lián)結(jié)構(gòu)就很簡單了。

設(shè)計(jì)級聯(lián)結(jié)構(gòu)的關(guān)鍵一步就是如何將直接結(jié)構(gòu)的濾波器系數(shù)轉(zhuǎn)換為級聯(lián)結(jié)構(gòu)的系數(shù),其實(shí)這也是一個(gè)算法問題,說實(shí)話這個(gè)算法我也沒看明白,就是通過一系列的數(shù)學(xué)運(yùn)算,將直接型結(jié)構(gòu)轉(zhuǎn)化為了級聯(lián)結(jié)構(gòu)的系數(shù)

6804c000-8f65-11eb-8b86-12bb97331649.jpg

可以看到,我們設(shè)計(jì)好直接型結(jié)構(gòu)濾波器之后,直接調(diào)用轉(zhuǎn)換函數(shù),就可以得到級聯(lián)結(jié)構(gòu)的濾波器系數(shù),其中b0為增益系數(shù),就是放在零點(diǎn)部分外面的那個(gè)系數(shù)。轉(zhuǎn)換函數(shù)是人為寫的,我也不太懂為什么是這樣轉(zhuǎn)換的,既然別人已經(jīng)做好了這種算法,我們實(shí)在看不懂的話就直接拿來用好了

函數(shù)Qcoe是量化函數(shù),就是前面講過的,要將極點(diǎn)系數(shù)量化為2的整數(shù)次冪的量化函數(shù)。

經(jīng)過這樣的處理之后,就會得到了四個(gè)直接型結(jié)構(gòu)的IIR濾波器,每階IIR濾波器的計(jì)算方法都跟前面直接型濾波器的計(jì)算方法相同,這里不做解釋。

級聯(lián)型結(jié)構(gòu)在進(jìn)行FPGA實(shí)現(xiàn)的時(shí)候要注意每一階濾波器的輸出數(shù)據(jù)的位寬,即通過matlab仿真出每級濾波器輸出數(shù)據(jù)的最大值,算一下用多少位的寄存器才能表示這個(gè)數(shù)值,下面是合成信號依次通過各級濾波器,并計(jì)算每通過一級濾波器后的輸出位寬

6880c830-8f65-11eb-8b86-12bb97331649.jpg

合成信號每通過一級濾波器,就相當(dāng)于對信號進(jìn)行了一次濾波,通過仿真可以看到,每通過一級濾波器,輸出的信號更加趨于圓滑

68eadb80-8f65-11eb-8b86-12bb97331649.jpg

級聯(lián)結(jié)構(gòu)的FPGA實(shí)現(xiàn)過程是比較費(fèi)勁的,因?yàn)橐O(shè)計(jì)多級濾波器,雖熱每級濾波器的代碼都是直接型濾波器,但其中的零極點(diǎn)系數(shù)的運(yùn)算還是需要我們自己修改,而且還有仿真好每級濾波器的輸出是否正常。但是沒辦法,因?yàn)镮IR濾波器幾乎沒有IP核可以調(diào)用,我們也只能手寫了

在進(jìn)行零極點(diǎn)系數(shù)乘積運(yùn)算的過程中,我們一方面可以調(diào)用乘法器來進(jìn)行運(yùn)算,另一方面可以利用移位的方式進(jìn)行乘法運(yùn)算

69592c84-8f65-11eb-8b86-12bb97331649.jpg

例如上圖,474可以分解成幾個(gè)2的整數(shù)次冪的形式的累加形式,因此,可以通過移位的方式實(shí)現(xiàn)乘法運(yùn)算

采用級聯(lián)方式實(shí)現(xiàn)FPGA的過程要注意的是每級濾波器的輸出位數(shù),保證每級濾波器的輸出數(shù)據(jù)沒有溢出,其他地方都跟直接型類似

至于采用流水線結(jié)構(gòu)實(shí)現(xiàn)級聯(lián)結(jié)構(gòu),就是在每級濾波器的輸出部分加一個(gè)寄存器,每來一個(gè)時(shí)鐘將數(shù)據(jù)輸出,這一點(diǎn)很簡單了,想必能看到這里的朋友對FPGA這點(diǎn)技巧還是很了解的。

下面是modelsim仿真輸出的各級濾波器的波形,與matlab仿真結(jié)果相比幾乎相同,證明我們的結(jié)果是正確的

69c28008-8f65-11eb-8b86-12bb97331649.jpg

原文標(biāo)題:零基礎(chǔ)學(xué)FPGA(三十) IIR數(shù)字濾波器的FPGA實(shí)現(xiàn)筆記

文章出處:【微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1653

    文章

    22272

    瀏覽量

    629784
  • 濾波器
    +關(guān)注

    關(guān)注

    162

    文章

    8341

    瀏覽量

    184658

原文標(biāo)題:零基礎(chǔ)學(xué)FPGA(三十) IIR數(shù)字濾波器的FPGA實(shí)現(xiàn)筆記

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    深入解析AMC1210:適用于電機(jī)控制的多功能數(shù)字濾波器

    ? 在電機(jī)控制應(yīng)用領(lǐng)域,精確的電流測量和位置解碼至關(guān)重要。TI推出的AMC1210數(shù)字濾波器,為這一領(lǐng)域提供了強(qiáng)大而靈活的解決方案。本文將深入剖析AMC1210的特性、工作原理、接口模式以及在
    的頭像 發(fā)表于 11-29 14:03 ?1099次閱讀
    深入解析AMC1210:適用于電機(jī)控制的多功能<b class='flag-5'>數(shù)字濾波器</b>

    ADS127L21 技術(shù)文檔總結(jié)

    1365kSPS。該器件提供了交流性能和直流精度的完美組合,功耗低。 可編程無限和有限脈沖響應(yīng)(IIR 和 FIR)數(shù)字濾波器允許自定義濾波器配置文件,例如 A 加權(quán)補(bǔ)償和頻率陷波濾波
    的頭像 發(fā)表于 10-29 09:27 ?303次閱讀
    ADS127L21 技術(shù)文檔總結(jié)

    STM32單片機(jī)片上數(shù)字濾波器操作文檔 快速入門數(shù)字濾波器在單片機(jī)上的實(shí)現(xiàn)

    這個(gè)文檔,是為了幫助大家快速入門數(shù)字濾波器在單片機(jī)上的實(shí)現(xiàn)
    的頭像 發(fā)表于 06-23 16:53 ?1302次閱讀
    STM32單片機(jī)片上<b class='flag-5'>數(shù)字濾波器</b>操作文檔 快速入門<b class='flag-5'>數(shù)字濾波器</b>在單片機(jī)上的<b class='flag-5'>實(shí)現(xiàn)</b>

    常用的數(shù)字濾波器算法及其特性

    常用的軟件濾波器有限幅濾波法、中位值濾波法、算數(shù)平均濾波法、遞推平均濾波法、中位值平均濾波法、限
    的頭像 發(fā)表于 06-18 09:04 ?751次閱讀

    進(jìn)群免費(fèi)領(lǐng)FPGA學(xué)習(xí)資料!數(shù)字信號處理、傅里葉變換與FPGA開發(fā)等

    ~ 01、數(shù)字信號處理的FPGA實(shí)現(xiàn) 旨在講解前端數(shù)字信號處理算法的高效實(shí)現(xiàn)。首先概述了當(dāng)前的FPGA
    發(fā)表于 04-07 16:41

    基于FPGA的FIR數(shù)字濾波器設(shè)計(jì)

    在現(xiàn)代通信信號處理領(lǐng)域中,隨著各種精密計(jì)算和快速計(jì)算的發(fā)展對信號處理的實(shí)時(shí)性、快速性的要求越來越高。以往的模擬濾波器無法克服電壓漂移、溫度漂移和噪聲等問題,從而帶來了許多誤差和不穩(wěn)定因素。而數(shù)字濾波器具有穩(wěn)定性高、精度高、設(shè)計(jì)靈活、實(shí)現(xiàn)
    的頭像 發(fā)表于 03-06 12:31 ?1732次閱讀
    基于<b class='flag-5'>FPGA</b>的FIR<b class='flag-5'>數(shù)字濾波器</b>設(shè)計(jì)

    模擬電路在數(shù)字濾波器中的作用是什么?

    模擬電路在數(shù)字濾波器之前
    發(fā)表于 02-12 08:32

    ADS1114內(nèi)部有一個(gè)數(shù)字濾波器,其帶寬大概只有2Hz,用CD4051在每個(gè)通道之間切換,這樣合理嗎?

    一個(gè)系統(tǒng)中有12 路PT100測量溫度,打算用一片ADS1114做數(shù)據(jù)采集,前級用CD4051在12個(gè)通道之間進(jìn)行切換。一秒鐘切換15次。 現(xiàn)在有個(gè)問題,ADS1114內(nèi)部有一個(gè)數(shù)字濾波器,其帶寬大概只有2Hz,我用CD4051在每個(gè)通道之間切換,這樣合理嗎?這個(gè)濾波器
    發(fā)表于 02-10 08:28

    開年干貨來襲:PLB實(shí)現(xiàn)濾波器

    概述HPMicroMCU的TRIGMUX具有濾波功能,為部分輸入信號提供了數(shù)字濾波器,支持濾刺模式、延時(shí)模式、濾峰模式和濾谷模式。但這濾波器僅針對外部從引腳的輸入信號,不能對內(nèi)部的信號進(jìn)行濾波
    的頭像 發(fā)表于 02-08 13:38 ?933次閱讀
    開年干貨來襲:PLB<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>濾波器</b>

    ADS1282使用HPF后,最終得到的噪聲性能反而變差,為什么?

    最近使用ADS1282器件出現(xiàn)一個(gè)個(gè)人認(rèn)為很奇怪的問題,還望專業(yè)人員指教! 1282內(nèi)部集成有后端數(shù)字濾波器,成三級級聯(lián)結(jié)構(gòu):SINC+FIR+IIR,其中IIR為高通濾波器(HP
    發(fā)表于 02-07 07:04

    ADS1293內(nèi)部的數(shù)字濾波器是怎么樣的作用?

    請問ADS1293內(nèi)部的數(shù)字濾波器是怎么樣的作用? 從DS中我看到該AFE有數(shù)字濾波器,請問它是心電算法中常見的低通濾波器嗎?效果如何?可以配置嗎
    發(fā)表于 01-20 07:37

    AN-217:ADSP-2100系列音頻應(yīng)用(IIR濾波器)

    電子發(fā)燒友網(wǎng)站提供《AN-217:ADSP-2100系列音頻應(yīng)用(IIR濾波器).pdf》資料免費(fèi)下載
    發(fā)表于 01-13 18:04 ?0次下載
    AN-217:ADSP-2100系列音頻應(yīng)用(<b class='flag-5'>IIR</b><b class='flag-5'>濾波器</b>)

    求助,關(guān)于ads1298數(shù)字濾波器的疑問求解

    濾波器),后腰去除ECG信號中的高頻噪聲。 2:IIR 濾波器,主要去處信號中的直流分量。 3:notch filter主要濾除電源噪聲及50hz工頻干擾。 但在該套件的代碼中,卻沒
    發(fā)表于 12-27 06:33

    濾波器的一些常識

    濾波器簡介:濾波器是一種用于信號處理的設(shè)備或系統(tǒng),用于改變信號的頻率特性,以實(shí)現(xiàn)信號的濾波、增強(qiáng)、去噪或降噪等功能。濾波器根據(jù)其工作方式可以
    的頭像 發(fā)表于 12-18 17:05 ?1463次閱讀
    <b class='flag-5'>濾波器</b>的一些常識

    通過外部多路選擇開關(guān)來動(dòng)態(tài)切換不同采樣目標(biāo)時(shí),ADS125H02的內(nèi)部數(shù)字濾波器是否會導(dǎo)致采樣的結(jié)果會相互影響?

    請問:通過外部多路選擇開關(guān)來動(dòng)態(tài)切換不同采樣目標(biāo)時(shí),ADS125H02的內(nèi)部數(shù)字濾波器是否會導(dǎo)致采樣的結(jié)果會相互影響?如果會影響,應(yīng)該如何處理這個(gè)問題?
    發(fā)表于 12-03 06:41