一(yī)、 功能(néng)描述
FIR濾波(bō)器,即有(yǒu)限脈沖響應(yìng)濾波(bō)器,顧名思(sī)義,是(shì)指單位脈沖響應(yìng)的(de)长度(dù)是(shì)有(yǒu)限的(de)濾波(bō)器。而(ér)根(gēn)據(jù)FIR濾波(bō)器的(de)結構形式,分(fēn)为(wèi)直(zhí)接型、級聯型、頻率取(qǔ)樣(yàng)型和(hé)快(kuài)速卷(juǎn)積型。其中(zhōng)直(zhí)接型又可(kě)以(yǐ)采用(yòng)串行結構、并行結構、分(fēn)布(bù)式結構。本(běn)案(àn)例实現(xiàn)了(le)具有(yǒu)線(xiàn)性(xìng)相位的(de)半串行結構的(de)FIR濾波(bō)器。
所(suǒ)謂串行結構,即串行实現(xiàn)濾波(bō)器的(de)累加運算,将每級延时(shí)單元(yuán)與(yǔ)相應(yìng)系(xì)數的(de)乘積結果(guǒ)進(jìn)行累加後(hòu)輸出(chū),因(yīn)此(cǐ)整个(gè)濾波(bō)器实際上(shàng)只(zhī)需要(yào)一(yī)个(gè)乘法器運算單元(yuán)。串行結構還(huán)可(kě)以(yǐ)分(fēn)为(wèi)全(quán)串行和(hé)半串行結構,全(quán)串行結構是(shì)指進(jìn)行对(duì)稱系(xì)數的(de)加法運算也(yě)由(yóu)一(yī)个(gè)加法器串行实現(xiàn),半串行結構則指用(yòng)多(duō)个(gè)加法器同(tóng)时(shí)实現(xiàn)对(duì)稱系(xì)數的(de)加法運算。
本(běn)案(àn)例設計(jì)了(le)一(yī)个(gè)15階(jiē)的(de)低通(tòng)線(xiàn)性(xìng)相位FIR濾波(bō)器,采用(yòng)布(bù)莱克(kè)曼窗(chuāng)函(hán)數設計(jì),截止頻率为(wèi)500HZ,采樣(yàng)頻率为(wèi)2000HZ;实現(xiàn)全(quán)串行結構的(de)濾波(bō)器,系(xì)數的(de)量(liàng)化(huà)位數为(wèi)12比特(tè),輸入(rù)數據(jù)位宽(kuān)为(wèi)12比特(tè),輸出(chū)數據(jù)位宽(kuān)为(wèi)29比特(tè),系(xì)統时(shí)鐘(zhōng)为(wèi)16kHZ。采用(yòng)具有(yǒu)白噪聲特(tè)性(xìng)的(de)輸入(rù)信(xìn)号(hào),以(yǐ)及(jí)由(yóu)200HZ及(jí)800HZ單點(diǎn)頻信(xìn)号(hào)疊加的(de)輸入(rù)信(xìn)号(hào)。
濾波(bō)器系(xì)數:12'd0,-12'd3,12'd15,12'd46,-12'd117,-12'd263,12'd590,12'd2047
二(èr)、 平台(tái)效果(guǒ)图(tú)
1.modelsim仿真(zhēn)效果(guǒ)图(tú)
2.MATLAB效果(guǒ)图(tú)
三(sān)、 实現(xiàn)过(guò)程
首先(xiān)根(gēn)據(jù)所(suǒ)需要(yào)的(de)功能(néng),列出(chū)工程頂层的(de)輸入(rù)輸出(chū)信(xìn)号(hào)列表(biǎo)。
|
信(xìn)号(hào)名 |
I/O |
位宽(kuān) |
说(shuō)明(míng) |
|
clk |
I |
1 |
系(xì)統工作时(shí)鐘(zhōng)50M |
|
rst_n |
I |
1 |
系(xì)統複位信(xìn)号(hào),低電(diàn)平有(yǒu)效 |
|
din |
I |
12 |
接收(shōu)信(xìn)号(hào) |
|
din_vld |
I |
8 |
接收(shōu)數據(jù)有(yǒu)效指示信(xìn)号(hào) |
|
rdy |
O |
8 |
準備信(xìn)号(hào) |
|
dout |
O |
29 |
濾波(bō)器輸出(chū)信(xìn)号(hào) |
|
dout_vld |
O |
1 |
輸出(chū)數據(jù)有(yǒu)效指示信(xìn)号(hào) |
我(wǒ)们(men)可(kě)以(yǐ)把工程劃(huà)分(fēn)成(chéng)三(sān)个(gè)模块(kuài),分(fēn)别是(shì)FIR濾波(bō)器模块(kuài)和(hé)加法器模块(kuài)和(hé)乘法器模块(kuài)。
1.FIR濾波(bō)器模块(kuài)
具有(yǒu)線(xiàn)性(xìng)相位的(de)半串行FIR濾波(bō)器結構图(tú):
在(zài)时(shí)鐘(zhōng)允许信(xìn)号(hào)的(de)控制下(xià),将數據(jù)以(yǐ)1/8系(xì)統时(shí)鐘(zhōng)頻率存入(rù)16个(gè)移位寄存器中(zhōng),然後(hòu)将对(duì)稱系(xì)數的(de)輸入(rù)數據(jù)相加,比如(rú)X(0)*X(N),X(1)*X(N-1),X(2)*X(N-2),同(tóng)时(shí)将对(duì)應(yìng)的(de)濾波(bō)器系(xì)數送入(rù)乘法器中(zhōng)得到(dào)結果(guǒ)mult_s,再对(duì)此(cǐ)乘法結果(guǒ)進(jìn)行累加sum <= sum + mult_s,并輸出(chū)濾波(bō)後(hòu)的(de)數據(jù)。
以(yǐ)此(cǐ)本(běn)模块(kuài)实現(xiàn)了(le)具有(yǒu)線(xiàn)性(xìng)相位的(de)半串行FIR濾波(bō)器功能(néng)。
本(běn)模块(kuài)信(xìn)号(hào)列表(biǎo)如(rú)下(xià):
|
信(xìn)号(hào)名 |
I/O |
位宽(kuān) |
说(shuō)明(míng) |
|
clk |
I |
1 |
系(xì)統工作时(shí)鐘(zhōng)50M |
|
rst_n |
I |
1 |
系(xì)統複位信(xìn)号(hào),低電(diàn)平有(yǒu)效 |
|
din |
I |
12 |
接收(shōu)信(xìn)号(hào) |
|
din_vld |
I |
8 |
接收(shōu)數據(jù)有(yǒu)效指示信(xìn)号(hào) |
|
rdy |
O |
8 |
準備信(xìn)号(hào) |
|
dout |
O |
29 |
濾波(bō)器輸出(chū)信(xìn)号(hào) |
|
dout_vld |
O |
1 |
輸出(chū)數據(jù)有(yǒu)效指示信(xìn)号(hào) |
2.加法器模块(kuài)
調用(yòng)了(le)Quartus II 里(lǐ)的(de)加法器IP核,以(yǐ)实現(xiàn)FIR濾波(bō)器中(zhōng)的(de)加法器模块(kuài)。
信(xìn)号(hào)列表(biǎo)如(rú)下(xià):
|
信(xìn)号(hào)名 |
I/O |
位宽(kuān) |
说(shuō)明(míng) |
|
dataa |
I |
13 |
數據(jù)a |
|
datab |
I |
13 |
數據(jù)b |
|
result |
O |
13 |
和(hé) |
3.乘法器模块(kuài)
調用(yòng)了(le)Quartus II 里(lǐ)的(de)乘法器IP核,以(yǐ)实現(xiàn)FIR濾波(bō)器中(zhōng)的(de)乘法器模块(kuài)。
信(xìn)号(hào)列表(biǎo)如(rú)下(xià):
|
信(xìn)号(hào)名 |
I/O |
位宽(kuān) |
说(shuō)明(míng) |
|
dataa |
I |
11 |
數據(jù)a |
|
datab |
I |
12 |
數據(jù)b |
|
clock |
I |
1 |
工作时(shí)鐘(zhōng) |
|
result |
O |
24 |
乘積 |
四(sì)、MATLAB部(bù)分(fēn)说(shuō)明(míng)
使用(yòng)MATLAB設計(jì)出(chū)濾波(bō)器系(xì)數,仿真(zhēn)出(chū)濾波(bō)器测試數據(jù)、测試數據(jù)經(jīng)濾波(bō)器濾波(bō)後(hòu)的(de)輸出(chū)數據(jù)并轉(zhuǎn)換成(chéng)二(èr)進(jìn)制數據(jù)写入(rù)文(wén)本(běn)文(wén)件(jiàn)中(zhōng)供Modelsim進(jìn)行仿真(zhēn)。
編写MATLAB程序,從Modelsim仿真(zhēn)後(hòu)生(shēng)成(chéng)的(de)文(wén)本(běn)文(wén)件(jiàn)中(zhōng)读(dú)取(qǔ)濾波(bō)器輸出(chū)數據(jù),对(duì)數據(jù)進(jìn)行时(shí)域及(jí)頻域分(fēn)析,程序運行結果(guǒ)見(jiàn)平台(tái)效果(guǒ)图(tú)。















