基于VerilogHDL的小波濾波器的設(shè)計(jì)與實(shí)現(xiàn)
0 引 言
現(xiàn)代計(jì)算機(jī)和通信系統(tǒng)中廣泛采用數(shù)字信號(hào)處理的技術(shù)和方法,其基本思路是先把信號(hào)用一系列的數(shù)字來(lái)表示,然后對(duì)這些數(shù)字信號(hào)進(jìn)行各種快速的數(shù)學(xué)運(yùn)算。其目的是多種多樣的,有的是為了加密,有的是為了去掉噪聲等無(wú)關(guān)的信息,稱(chēng)為濾波;有時(shí)也把某些種類(lèi)的數(shù)字信號(hào)處理運(yùn)算成為變換,如離散的傅里葉變換(DFT),小波變換(Wavelet T)等。VerilogHDL是目前應(yīng)用最廣泛的一種硬件描述語(yǔ)言,用于數(shù)字電子系統(tǒng)的設(shè)計(jì)。可用它進(jìn)行各種級(jí)別的邏輯設(shè)計(jì),并進(jìn)行數(shù)字邏輯系統(tǒng)的仿真驗(yàn)證,時(shí)序分析,邏輯綜合。小波濾波器的設(shè)計(jì)屬于復(fù)雜算法的電路設(shè)計(jì),因此利用Veril—ogHDL對(duì)雙正交小波濾波器進(jìn)行建模、仿真,實(shí)現(xiàn)電路的自動(dòng)化設(shè)計(jì),將是一種較為理想的方法。
l 小波濾波器的設(shè)計(jì)
對(duì)于小波函數(shù),要求它具有正交性、緊支集、對(duì)稱(chēng)性和平滑性。正交性可以使變換無(wú)冗余;緊支集則帶來(lái)優(yōu)良的空間分辨率;對(duì)稱(chēng)性保證了與其對(duì)應(yīng)濾波器的相位為線(xiàn)性;平滑性可以產(chǎn)生較小的失真。這樣使離散二進(jìn)小波變換受到很大的限制,為此,人們提出一種雙正交的小波變換。本文設(shè)計(jì)小波濾波器正是基于雙正交小波變換的一種雙通道完全重構(gòu)濾波器,因此可以對(duì)信號(hào)進(jìn)行分解后實(shí)現(xiàn)精確重構(gòu),所以對(duì)信號(hào)的濾波有很好的作用。由于它具有正變換二元上抽樣采樣和反變換二元下抽樣采樣特性,在進(jìn)行濾波器設(shè)計(jì)時(shí)可以將雙正交小波濾波器設(shè)計(jì)成具有多相結(jié)構(gòu)的雙通道完全重構(gòu)濾波器。雙正交小波變換可以看成原始信號(hào)通過(guò)一系列高低通濾波器濾波并經(jīng)過(guò)抽樣后所得到的結(jié)果,重構(gòu)過(guò)程與此相反。為了使變換后的信號(hào)能夠完全重建,須滿(mǎn)足Y(n)=x-kX(n),在這里取k=1。雙正交小波濾波器分解和重構(gòu)過(guò)程如圖1所示。
設(shè)G(z),H(z)分別為分解低通,高通濾波器,下采樣后用H(z)濾波等價(jià)于先用H(z2)濾波,然后下采樣,所以:
其中:Ge和Go分別是G(z)的偶數(shù)項(xiàng)和奇數(shù)項(xiàng),He和H。分別是H(z)的偶數(shù)項(xiàng)和奇數(shù)項(xiàng)。根據(jù)式(1),式(2)可以建立雙正交小波濾波器的多相結(jié)構(gòu)模型如圖2所示。
下面對(duì)雙正交小波濾波器用VerilogHDL進(jìn)行頂層設(shè)計(jì):
對(duì)于雙正交小波濾波器的部件Ge,Go,He,Ho設(shè)計(jì),采用行為描述方式進(jìn)行設(shè)計(jì)。VerilogHDL行為描述語(yǔ)言作為一種結(jié)構(gòu)化和過(guò)程性的語(yǔ)言,其語(yǔ)法結(jié)構(gòu)非常適合于算法級(jí)和RTL級(jí)的模型設(shè)計(jì)。在Veril—ogHDL語(yǔ)言中行為描述分為算法和RTL兩種。算法級(jí):用語(yǔ)言提供的高級(jí)結(jié)構(gòu)能夠?qū)崿F(xiàn)算法的運(yùn)行模型。RTL級(jí):描述數(shù)據(jù)在寄存器之間的流動(dòng)和如何處理,控制這些數(shù)據(jù)的流動(dòng),采用改進(jìn)的DA算法(如圖3所示)。DA算法完成一次濾波所需要B次的累加(或減)也就是B個(gè)時(shí)鐘周期完成一次運(yùn)算,B位輸入數(shù)據(jù)的位寬。它的查找表(LUT)的大小是由濾波器的階數(shù)N決定的,共需要2N個(gè)查找表單元,如果系數(shù)N過(guò)多,用單個(gè)LUT不能夠執(zhí)行全字查找則可把系數(shù)分組,利用部分表并將結(jié)果相加,為了簡(jiǎn)單的闡述算法,在此系數(shù)只分了2組,每個(gè)單元的位寬是由濾波器的系數(shù)的量化決定的。Ge,Go,He,Ho四個(gè)濾波器雖然長(zhǎng)度不同,但具有相同的電路結(jié)構(gòu),如圖4所示。
計(jì)算控制器用于控制濾波單元中移位寄存器移位,累加器的循環(huán)周期和計(jì)算輸出,并控制移位寄存器的數(shù)據(jù)輸入。
2 利用VerilogHDL語(yǔ)言實(shí)現(xiàn)以上功能
2.1 用VerilogHDL語(yǔ)言進(jìn)行算法建模
計(jì)算機(jī)控制器(calculate—controller)的veril—ogHDL模型:
寄存器組中每個(gè)寄存器的位數(shù)為0,1,…,num一1。
2.2 定制ROM
QuartusⅡ包含有許多有用的LPM(Library ofParameterized Modules)模塊,它們是復(fù)雜或高級(jí)系統(tǒng)構(gòu)建的重要組成部分,可以與QuartusⅡ普通設(shè)計(jì)文件一起使用,該文使用“Tools”菜單下的MegaWizardPlug—In Manager命令定制ROM的元件。如圖5
所示。
2.3 用VerilogHDL進(jìn)行數(shù)據(jù)流建模
濾波器的建模過(guò)程如下:
3 驗(yàn)證仿真
利用Altera公司的QuartusⅡ7.2軟件內(nèi)部帶有仿真器對(duì)濾波器的VerilogHDL模型進(jìn)行波形仿真,通過(guò)建立正確的Vector Waveform File(向量波形文件)就可以開(kāi)始仿真了。如圖6所示。
通過(guò)QuartusⅡ的波形仿真功能,對(duì)輸入輸出進(jìn)行波形仿真,對(duì)其結(jié)果進(jìn)行定量分析。通過(guò)時(shí)序分析和功能分析結(jié)果,對(duì)設(shè)計(jì)進(jìn)行進(jìn)一步的完善。在仿真中,in—put濾波器輸入數(shù)據(jù),output濾波器輸入數(shù)據(jù)x0,x1,x2,x3,x4為移位寄存器組中寄存器,count為控制計(jì)數(shù)器,table-in為流水線(xiàn)寄存器。所得結(jié)果如圖6所示。經(jīng)驗(yàn)證,仿真結(jié)果和實(shí)際運(yùn)算結(jié)果一致。所以對(duì)于大多數(shù)連續(xù)的LTI系統(tǒng)都可以采用以上方法進(jìn)行分析,但是他也有局限性:對(duì)于時(shí)變系統(tǒng),非線(xiàn)性系統(tǒng)分析,它無(wú)能為力;只適合分析一維變量,對(duì)于多維變量,它無(wú)能為力;可采用狀態(tài)變量分析方法;就精確度來(lái)說(shuō),這種分析方法不是很高。
盡管連續(xù)LTI系統(tǒng)有很多缺點(diǎn),但是通過(guò)對(duì)LTI系統(tǒng)的分析可以培養(yǎng)系統(tǒng)建模和求解能力,為以后分析其他系統(tǒng)作參考。