0 引 言
IIR濾波器不易做成線性相位,,FIR濾波器只要滿足一定條件就可做成線性相位,而現(xiàn)代圖像,、語聲,、數(shù)據(jù)通信對線性相位的要求是普遍的,因此具有線性相位的FIR數(shù)字濾波器得到廣泛的發(fā)展和應(yīng)用,。
FIR濾波器有傳統(tǒng)的設(shè)計(jì)方法,如窗函數(shù)法,、頻率采樣法,、切比雪夫逼近法等;之后也有一些優(yōu)化設(shè)計(jì)算法,,如Remez交換算法,、線性規(guī)劃算法、加權(quán)最小二乘法,、遞推最小二乘法,。雖然這些算法在一定程度上改善了傳統(tǒng)方法的局限性,但這些方法自身也存在著一些不足,。之后,,曾喆昭等人提出了一種基于余弦基神經(jīng)網(wǎng)絡(luò)的算法,給出了該算法的收斂條件,,并將其應(yīng)用到高階多通帶FIR濾波器中,,用實(shí)例說明了該算法在精度、計(jì)算速度等方面的優(yōu)越性,?;谶@種算法,有人分別將其在數(shù)域和維數(shù)上做出了推廣,。
本文提出的方法,,是基于余弦基神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)方法的一種改良,其基本思想首先是使設(shè)計(jì)頻響與理想頻響之間的全局誤差在通帶和阻帶范圍最小,,其次再使用模擬退火算法,,以最小阻帶衰減為評價(jià)函數(shù)優(yōu)化網(wǎng)絡(luò)權(quán)值,使最后的結(jié)果朝著最優(yōu)值靠近,。由該方法設(shè)計(jì)的濾波器,,通帶和阻帶范圍無過沖、無波動(dòng),,且阻帶的衰減高,,初始條件隨機(jī)給定,算法速度快,因而是一種有效的設(shè)計(jì)方法,。
1 I型線性相位FIR濾波器的幅頻特性
若脈沖響應(yīng)h(n)是實(shí)序列,,且滿足h(n)=h(N-1-n),N為脈沖響應(yīng)h(n)的長度,,并且N為奇數(shù),,則有:
容易看出,此式是由(N+1)/2個(gè)余弦項(xiàng)迭加而成的函數(shù),,而此函數(shù)在ω=0,,π,2π處均不等于零,,因此I型線性相位FIR濾波器既可以用作低通濾波器(在ω=0處,,幅度函數(shù)不為零),也可用作高通濾波器(在ω=π處,,幅度函數(shù)不為零),,而且也可以用作帶通和帶阻濾波器,是應(yīng)用最為廣泛的,。
2 余弦基神經(jīng)網(wǎng)絡(luò)
在網(wǎng)絡(luò)結(jié)構(gòu)方面,,如圖1所示,類似于BP網(wǎng)絡(luò)的結(jié)構(gòu):
輸入層和輸出層都只有一個(gè)節(jié)點(diǎn),,隱含層有M個(gè)節(jié)點(diǎn),,且各節(jié)點(diǎn)對應(yīng)的激勵(lì)函數(shù)如下:
式中:M=(N-1)/2
再令輸入層到隱含層的全值都為1,而隱含層到輸出層的權(quán)值ω0~ωM分別取為a0~aM,,于是神經(jīng)網(wǎng)絡(luò)的輸入/輸出關(guān)系就恰好為濾波器的幅度函數(shù)
網(wǎng)絡(luò)學(xué)習(xí)算法方面,,也可以采用類似BP網(wǎng)絡(luò)的學(xué)習(xí)算法。
首先定義權(quán)值矩陣:
設(shè)置性能指標(biāo):為訓(xùn)練樣本數(shù),。
于是權(quán)值修正的公式為:
式中:α為學(xué)習(xí)速率,。
迭代的終止條件可設(shè)為性能指標(biāo)J滿足一定條件,而關(guān)于學(xué)習(xí)速率α的選取會(huì)直接影響到神經(jīng)網(wǎng)絡(luò)的穩(wěn)定性,。目前,,已經(jīng)有人提出了其適當(dāng)?shù)倪x取范圍,例如羅玉雄等人已經(jīng)證明,,當(dāng)滿足0<α<(2/|| C ||2)時(shí)(這里||·||2表示的是歐氏范數(shù)的平方),,神經(jīng)網(wǎng)絡(luò)是穩(wěn)定的;曾喆昭等人也提出并證明了當(dāng)滿足0<α<(4/N)時(shí),,神經(jīng)網(wǎng)絡(luò)是穩(wěn)定的,。
3 模擬退火算法
由于以上的網(wǎng)絡(luò)學(xué)習(xí)算法從本質(zhì)上來說,還是一種BP算法,,所以不可避免地會(huì)存在BP算法的缺陷,,初始值的選取會(huì)影響最終結(jié)果,且容易陷入局部極小值。
模擬退火算法與初始值無關(guān),,算法求得的解與初始解狀態(tài)(是算法迭代的起點(diǎn))無關(guān),;模擬退火算法具有漸近收斂性,在理論上已得到嚴(yán)格證明,,當(dāng)初溫充分高,,降溫足夠慢,每一溫度下抽樣足夠長,,最終溫度趨于零時(shí),,算法最終以概率1收斂到全局最優(yōu)解。模擬退火算法通過概率判斷來接受新狀態(tài)是算法在局部極小解處有機(jī)會(huì)跳出并最終趨于全局最優(yōu)的根本原因,。于是將模擬退火算法加到前面的算法中去,,就可以很好地彌補(bǔ)上述算法的不足。
模擬退火算法的步驟如下:
(1)由一個(gè)產(chǎn)生函數(shù)從當(dāng)前解S產(chǎn)生一個(gè)位于解空間的新解S',。
(2)計(jì)算與新解所對應(yīng)的目標(biāo)函數(shù)差。這里以最小阻帶衰減為評價(jià)函數(shù)C(S),,這個(gè)函數(shù)可以由所得解S輕易地求出,,于是目標(biāo)函數(shù)差△t=C(S')-C(S);
(3)判斷新解是否被接受,,其依據(jù)是一個(gè)接受準(zhǔn)則,,最常用的接受準(zhǔn)則是Metropolis準(zhǔn)則。若△t≥0,,則接受S'作為新的當(dāng)前解S,;否則,以概率exp(-△t/T)接受S'作為新的當(dāng)前解S,。
(4)當(dāng)新解被確定接受時(shí),,用新解代替當(dāng)前解,同時(shí)修正評價(jià)函數(shù),。此時(shí),,當(dāng)前解實(shí)現(xiàn)了一次迭代,可在此基礎(chǔ)上開始下一輪試驗(yàn),;當(dāng)新解被判定為舍棄時(shí),,則在原當(dāng)前解的基礎(chǔ)上繼續(xù)下一輪試驗(yàn)。
將模擬退火融入原算法,,其實(shí)主要是用原算法來實(shí)現(xiàn)模擬退火中第(1)步的產(chǎn)生解S,,于是可得到總的算法:
(1)初始化,初始溫度T(充分大),,初始解狀態(tài)S(是算法迭代的起點(diǎn)),,每個(gè)T值的迭代次數(shù)L,初始權(quán)值W,性能指標(biāo)J,,學(xué)習(xí)速率α,,并且設(shè)定目標(biāo)向量(理想幅頻響應(yīng)Hg(ωk));
(2)對k=1,,2,,…,L做第(3)~(8)步驟,;
(3)計(jì)算誤差E(k),,使用權(quán)值修正公式:W=W+αE(k)C(Ωk)修正權(quán)值;
(4)滿足性能指標(biāo)J轉(zhuǎn)步驟(5),,否則轉(zhuǎn)步驟(3),;
(5)由步驟(4)產(chǎn)生的W得出新解S';
(6)以濾波器的最小阻帶衰減為評價(jià)函數(shù),,計(jì)算△t,,其中△t=C(S)-C(S);
(7)若△t>0,,則接受S'作為新的當(dāng)前解,,否則以概率exp(-△t/T)接受S'作為新的當(dāng)前解;
(8)如果滿足終止條件,,則輸出當(dāng)前解作為最優(yōu)解,,終止條件通常取為連續(xù)若干個(gè)新解都沒有被接受;
(9)減小T,,轉(zhuǎn)步驟(2),。當(dāng)T→0時(shí),終止算法,。
4 仿真實(shí)例
例1:設(shè)計(jì)一線性相位高通FIR濾波器,,其理想幅頻特性為:
對Ω在[0,π]范圍內(nèi)均勻取樣,,共取(N+1)/2=60個(gè)樣點(diǎn),,即Ωk=πk/59(k=0,1,,2,,…,59),,為了使通帶和阻帶內(nèi)無過沖,、無波動(dòng),在過渡帶內(nèi)取兩個(gè)點(diǎn)0.78和0.25,,于是實(shí)際的幅頻取樣點(diǎn)為Hd(k)=[zeros(1,,29),,0.25,0.78,,ones(1,,29)];網(wǎng)絡(luò)結(jié)構(gòu)取為1×60×1,,性能指標(biāo)設(shè)置為J=10-8,。
經(jīng)過計(jì)算機(jī)仿真得到如圖2和圖3的仿真圖。
例2:設(shè)計(jì)一線性相位帶阻FIR濾波器,,其理想幅頻特性為:
與例1類似,,對Ω在[0,π]范圍內(nèi)均勻取樣,,共取(N+1)/2=60個(gè)樣點(diǎn),,即Ωk=πk/59,(k=0,,1,,2,…,,59),,同樣地,為了使通帶和阻帶內(nèi)無過沖,,無波動(dòng),在過渡帶內(nèi)取兩個(gè)點(diǎn)0.78和0.25,,于是實(shí)際的幅頻取樣點(diǎn)為Hd(k)=[ones(1,,17),0.78,,0.25,,zeros(1,16),,0.25,,0.78,ones(1,,23)],;網(wǎng)絡(luò)結(jié)構(gòu)取為1×60×1,性能指標(biāo)設(shè)置為J=10-8,。
經(jīng)過計(jì)算機(jī)仿真得到如圖4和圖5的仿真圖,。
通過仿真,可以和與文獻(xiàn)[2]中的算法相比較,。在這里以例1中的情形為例,,兩種方法各運(yùn)行10次,,取最后得到的最小阻帶衰減(單位:dB)和程序的運(yùn)行時(shí)間(單位:s)來比較:
文獻(xiàn)[2]中的算法:
兩者相比較可得,雖然在運(yùn)行時(shí)間上本文的算法遜于文獻(xiàn)[2]中的算法,,但這個(gè)運(yùn)行時(shí)間本身也僅0.5 s左右,,是可以接受的。在性能上本文的算法得出的結(jié)果幾乎都在-190 dB左右,,而文獻(xiàn)E23中算法得出的結(jié)果則在-77~-93 dB之間波動(dòng),,因此可以說用本文的算法可以得到更好、更穩(wěn)定的最小阻帶衰減,。
5 結(jié) 語
本文提出了一種基于經(jīng)優(yōu)化算法優(yōu)化過的神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)FIR濾波器的方法,。這一方法的特點(diǎn)是先用類似BP網(wǎng)絡(luò)的方法調(diào)整神經(jīng)網(wǎng)絡(luò)權(quán)值,再用模擬退火技術(shù)進(jìn)行優(yōu)化,,獲取更好的FIR濾波器的脈沖響應(yīng),,從而完成濾波器的設(shè)計(jì)。由文中給出的兩個(gè)范例可以看出,,設(shè)計(jì)濾波器的幅頻響應(yīng)在通帶與阻帶范圍均無過沖現(xiàn)象,,衰耗特性好,阻帶最小衰減在190 dB以上,,通帶沒有衰減,。而且這種方法可以輕松地實(shí)現(xiàn)低通、高通,、帶通,、帶阻FIR濾波器的設(shè)計(jì),程序運(yùn)行時(shí)間均在0.5 s左右,,是一種十分有效的設(shè)計(jì)方法,。當(dāng)然此算法也有改進(jìn)的余地,比如在算法中過渡帶的選取都是0.25和0.78,。而事實(shí)上,,對于不同的幅頻特性,過渡點(diǎn)的選取可影響到最終設(shè)計(jì)的FIR濾波器的性能,。通過優(yōu)化過渡點(diǎn)的位置,,可以使FIR濾波器的幅頻特性在過渡點(diǎn)處更為平滑,并且有更好的最好阻帶衰減,。比如在文獻(xiàn)[9]中,,就有用遺傳算法優(yōu)化過渡點(diǎn)的方法。