一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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濾波器的知識(shí),想必大家在教材上都已經(jīng)很熟了,這里我就簡(jiǎn)單說一下自己的理解好了。

正如前面說的,IIR數(shù)字濾波器,即無限長(zhǎng)單位脈沖響應(yīng)數(shù)字濾波器。所謂無限長(zhǎng)單位脈沖響應(yīng),也就是說,對(duì)于一個(gè)系統(tǒng),我們給其輸其激勵(lì),在輸出端得到的一串序列hn是無限長(zhǎng)的,又因?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)行對(duì)比的話會(huì)發(fā)現(xiàn),IIR濾波器的差分方程等式右邊的前半部分跟FIR濾波器的差分方程類似,都是對(duì)輸入信號(hào)進(jìn)行的卷積運(yùn)算,只不過FIR濾波器是將輸入信號(hào)與系統(tǒng)的單位脈沖響應(yīng)進(jìn)行卷積,而這里是輸入信號(hào)跟IIR濾波器的零點(diǎn)系數(shù)進(jìn)行卷積

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

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

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

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

然而IIR濾波器的表示形式還有一種方式,就是我們常說的系統(tǒng)函數(shù),即對(duì)差分方程中的輸入輸出進(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)位置的不同會(huì)導(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),那就會(huì)導(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)絕對(duì)可和,這時(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ì)過程都太過于繁瑣,想必大家都深有體會(huì),可能原理不是很難理解,但是真正讓我們?nèi)ナ謩?dòng)去算一個(gè)題,還不知道要算到什么時(shí)候。但是matlab為我們提供好了設(shè)計(jì)函數(shù),我們甚至不需要知道那些變換方法,也可以設(shè)計(jì)出符合要求的濾波器。但是,書本上既然寫了,總有他寫這些東西的目的,可能我們實(shí)在不好理解他的運(yùn)算過程,但是也要大體上知道這回事,畢竟人家是當(dāng)時(shí)的科學(xué)巨匠的畢生心血,哪有那么好懂~是吧,我們只要是會(huì)用就不錯(cuò)了,下面就簡(jiǎn)單總結(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),使得我們的教材變得枯燥無味,我是過來人我深有體會(huì),雖然這樣的教材很嚴(yán)謹(jǐn),但是卻抹殺了學(xué)生的積極性,并沒有取得好的教學(xué)目的,其實(shí)還是感覺那句老話說的對(duì)“高手在民間啊”,很多一些不出名的關(guān)于信號(hào)處理的書,卻硬是把信號(hào)處理這門課寫的生動(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、 對(duì)模擬低通濾波器進(jìn)行頻率變換,得到我們想要的模擬帶通濾波器

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

因此推得 fs 》 2fmax

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

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

雙線性變換法

雙線性變化法相對(duì)于脈沖響應(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í)并不是這樣,知識(shí)是一個(gè)體系,只有有了前面的知識(shí)做鋪墊,才能為以后的設(shè)計(jì)打下基礎(chǔ),要不然只會(huì)調(diào)用matlab函數(shù),不懂為什么這樣的,到后面就遇到瓶頸了。

好了,在了解這些理論知識(shí)之后我們就可以來設(shè)計(jì)我們的濾波器,其實(shí)當(dāng)這些東西都掌握的差不多的時(shí)候,你會(huì)發(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、合成信號(hào)為100,500,800hz的正弦信號(hào)的疊加

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

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

6、通過matlab對(duì)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)致了有限字長(zhǎng)效應(yīng),使得實(shí)際濾波器與理想濾波器還是有些差別的,因此,我們需要將這些系數(shù)進(jìn)行量化,將量化后的濾波器系數(shù)求出幅頻響應(yīng),與理想濾波器的幅頻響應(yīng)進(jìn)行對(duì)比,來確定量化位數(shù)

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

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

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

對(duì)于系數(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ù)不對(duì)稱,這樣的話,我們有了濾波器的零極點(diǎn)系數(shù),剩下的就是FPGA實(shí)現(xiàn)了。

對(duì)于FPGA的實(shí)現(xiàn)過程,零點(diǎn)部分完全和FIR濾波器的運(yùn)算過程相同,就是將輸入信號(hào)存入寄存器之后,對(duì)輸入信號(hào)進(jìn)行對(duì)稱系數(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)部分不存在對(duì)稱結(jié)構(gòu),因此不需要將輸入信號(hào)進(jìn)行對(duì)稱相加,只需要直接與極點(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 、 首先要注意,不管是存儲(chǔ)數(shù)據(jù)的寄存器型變量還是線型變量都不要忘記定義成有符號(hào)型數(shù)據(jù)

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

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

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

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

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

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

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

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

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

可以看到,我們?cè)O(shè)計(jì)好直接型結(jié)構(gòu)濾波器之后,直接調(diào)用轉(zhuǎn)換函數(shù),就可以得到級(jí)聯(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)過這樣的處理之后,就會(huì)得到了四個(gè)直接型結(jié)構(gòu)的IIR濾波器,每階IIR濾波器的計(jì)算方法都跟前面直接型濾波器的計(jì)算方法相同,這里不做解釋。

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

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

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

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

級(jí)聯(lián)結(jié)構(gòu)的FPGA實(shí)現(xiàn)過程是比較費(fèi)勁的,因?yàn)橐O(shè)計(jì)多級(jí)濾波器,雖熱每級(jí)濾波器的代碼都是直接型濾波器,但其中的零極點(diǎn)系數(shù)的運(yùn)算還是需要我們自己修改,而且還有仿真好每級(jí)濾波器的輸出是否正常。但是沒辦法,因?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)算

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

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

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

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

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

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

責(zé)任編輯:haq

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

    關(guān)注

    1645

    文章

    22050

    瀏覽量

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

    關(guān)注

    162

    文章

    8138

    瀏覽量

    182079

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

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

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

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

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

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

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

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

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

    模擬濾波器數(shù)字濾波器的轉(zhuǎn)換步驟

    將模擬濾波器轉(zhuǎn)換為數(shù)字濾波器是一個(gè)涉及多個(gè)步驟的過程,旨在保持濾波器性能的同時(shí),適應(yīng)數(shù)字信號(hào)處理的需求。以下是將模擬濾波器轉(zhuǎn)換為
    的頭像 發(fā)表于 11-26 10:03 ?1917次閱讀

    ADS1256的數(shù)字濾波器時(shí)可以自己設(shè)置嗎?

    想問下TI,ADS1256的數(shù)字濾波器時(shí)可以自己設(shè)置嗎,還是通過ADC的DATA RATE的設(shè)置,默認(rèn)是設(shè)置到相對(duì)于的數(shù)字濾波
    發(fā)表于 11-26 07:13

    數(shù)模轉(zhuǎn)換數(shù)字濾波器的結(jié)合應(yīng)用

    數(shù)模轉(zhuǎn)換(DAC)與數(shù)字濾波器的結(jié)合應(yīng)用在現(xiàn)代電子系統(tǒng)中非常普遍,這種結(jié)合能夠顯著提高系統(tǒng)的性能、精度和可靠性。以下是對(duì)數(shù)模轉(zhuǎn)換數(shù)字濾波器結(jié)合應(yīng)用的介紹: 一、數(shù)模轉(zhuǎn)換
    的頭像 發(fā)表于 11-25 16:20 ?994次閱讀

    ADC3663數(shù)字濾波器如何使用呢?

    板上用到了ADC3663,看數(shù)據(jù)手冊(cè)上,它可以有數(shù)字濾波功能,甚至不需要前級(jí)的抗混疊濾波器(這么理解對(duì)嗎)。 我想問下,這個(gè)數(shù)字濾波器如何使用呢?咱們是否有推薦的資料,如源碼等。 因?yàn)榭戳耸謨?cè)也不知道從何處著手呢
    發(fā)表于 11-18 07:12

    基于FPGA實(shí)現(xiàn)FIR數(shù)字濾波器

    數(shù)字信號(hào)處理系統(tǒng)中,有限脈沖響應(yīng)(finite impulse response,F(xiàn)IR)數(shù)字濾波器是一個(gè)非常重要的基本單元。近年來,由于FPGA具有高速度、高集成度和高可靠性的特點(diǎn)而得到快速發(fā)展
    的頭像 發(fā)表于 11-05 16:26 ?1792次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>實(shí)現(xiàn)</b>FIR<b class='flag-5'>數(shù)字濾波器</b>

    Δ-Σ ADC中的數(shù)字濾波器類型

    電子發(fā)燒友網(wǎng)站提供《Δ-Σ ADC中的數(shù)字濾波器類型.pdf》資料免費(fèi)下載
    發(fā)表于 09-06 09:50 ?4次下載
    Δ-Σ ADC中的<b class='flag-5'>數(shù)字濾波器</b>類型

    數(shù)字濾波器實(shí)現(xiàn)方法

    數(shù)字濾波器是一種通過對(duì)數(shù)字信號(hào)進(jìn)行處理來完成對(duì)數(shù)字信號(hào)或模擬信號(hào)進(jìn)行濾波的儀器。其實(shí)現(xiàn)方式多樣,可以從硬件和軟件兩個(gè)角度進(jìn)行探討,同時(shí)涉及多
    的頭像 發(fā)表于 08-20 16:06 ?2096次閱讀

    AMC1210四通道數(shù)字濾波器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《AMC1210四通道數(shù)字濾波器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-19 09:15 ?0次下載
    AMC1210四通道<b class='flag-5'>數(shù)字濾波器</b>數(shù)據(jù)表

    數(shù)字濾波器的原理和應(yīng)用

    數(shù)字濾波器是一種由數(shù)字乘法器、加法器和延時(shí)單元組成的算法或裝置,其輸入和輸出均為數(shù)字信號(hào)。它的主要功能是通過一定的運(yùn)算關(guān)系改變輸入信號(hào)所含頻率成分的相對(duì)比例或者濾除某些頻率成分,以達(dá)到期望的響應(yīng)特性。
    的頭像 發(fā)表于 08-05 16:19 ?2608次閱讀
    <b class='flag-5'>數(shù)字濾波器</b>的原理和應(yīng)用

    如何區(qū)分IIR濾波器和FIR濾波器

    對(duì)信號(hào)進(jìn)行處理的系統(tǒng),它可以按照預(yù)定的規(guī)則改變信號(hào)的頻譜特性。在數(shù)字信號(hào)處理中,濾波器通常用于去除噪聲、抑制干擾或提取特定頻率成分。IIR和FIR濾波器是兩種基本的
    的頭像 發(fā)表于 07-19 09:44 ?6688次閱讀

    iir濾波器和fir濾波器的優(yōu)勢(shì)和特點(diǎn)

    (Infinite Impulse Response)濾波器是一種具有無限脈沖響應(yīng)的數(shù)字濾波器。它的輸出不僅取決于當(dāng)前的輸入值,還取決于之前的輸入值。IIR濾波器通常由遞歸
    的頭像 發(fā)表于 07-19 09:28 ?3173次閱讀