ch濾波器模型與仿真_第1頁
ch濾波器模型與仿真_第2頁
ch濾波器模型與仿真_第3頁
ch濾波器模型與仿真_第4頁
ch濾波器模型與仿真_第5頁
已閱讀5頁,還剩116頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第五講濾波器模型與仿真方法1.概述2.IIR與FIR濾波器3.IIR與FIR濾波器的實現(xiàn)4.IIR濾波器:綜合方法與濾波器特性5.FIR濾波器:綜合技術(shù)與濾波器特性1目前一頁\總數(shù)一百二十一頁\編于十一點引言本章主要討論濾波器仿真模型的開發(fā)。濾波器是組成通信系統(tǒng)的許多子系統(tǒng)中的重要部分。為了便于仿真:模擬濾波器映射數(shù)字濾波器。這些映射方法都涉及到近似并且都會在仿真結(jié)果中引入誤差。本章將探討許多非常有用的濾波器綜合與仿真方法,尤其感興趣的是這些方法的局限性和固有誤差源。根據(jù)定義,濾波器具有頻率選擇性,并且具有有限時間沖激響應(yīng)或者無限時間沖激響應(yīng)。2目前二頁\總數(shù)一百二十一頁\編于十一點由于濾波器具有頻率選擇性,它們引入了記憶,而由于這種記憶,需要濾波器過去的輸入和/或輸出來計算給定時刻的濾波器輸出。因此,濾波器需要存儲,而存儲和恢復(fù)采樣值會大大地增加仿真程序的計算量,而這就會增加仿真程序的運行時間。因此,我們將尋求較好的仿真結(jié)構(gòu)以獲得減少計算量的算法。本章的目的并不是要詳細描述數(shù)字濾波器的設(shè)計方法。本章的目的是回顧一些在仿真中最有用的方法,并提供幾個簡單的例子,從這些例子的結(jié)果中,讀者將體會到通常出現(xiàn)在仿真應(yīng)用中的近似誤差。3目前三頁\總數(shù)一百二十一頁\編于十一點一、概述如圖5-1所示為用于開發(fā)數(shù)字濾波器的一些方法。數(shù)字濾波器的經(jīng)典綜合方法通常都是基于模擬濾波器原型之上的。在這種情況下,仿真模型所要求的數(shù)字濾波器的設(shè)計,從模擬濾波器的S(拉普拉斯)域傳遞函數(shù)著手,來尋求等價的數(shù)字濾波器。于是,問題就退化為尋找在某種合適意義上等價于模擬原型的數(shù)字濾波器。等價的基本方法是基于時域判據(jù)或頻域判據(jù)來衡量其等價性。盡管我們提到濾波時通常會想到定義在頻域的頻率選擇特性,但時域判據(jù)經(jīng)常用到,并且能給出有效而有用的濾波器設(shè)計。通過要求數(shù)字濾波器的輸出與作為設(shè)計基礎(chǔ)的模擬原型的采樣輸出相匹配,來運用時域判據(jù)進行濾波器的設(shè)計。4目前四頁\總數(shù)一百二十一頁\編于十一點5目前五頁\總數(shù)一百二十一頁\編于十一點基于時域判據(jù)的兩種基本綜合方法:沖激不變和階躍不變數(shù)字濾波器?!皼_激不變法”是使數(shù)字濾波器的沖激響應(yīng)與模擬原型的沖激響應(yīng)的采樣相匹配的一種設(shè)計方法。“階躍不變法”則是數(shù)字濾波器的階躍響應(yīng)與對應(yīng)的模擬原型濾波器階躍響應(yīng)的采樣相匹配。采用沖激或單位階躍之外的“測試信號”,可得到許多其他設(shè)計方法。我們將可以看到,如果模擬原型和得到的數(shù)字濾波器在時域上是等價的,則它們在頻域上也近似等價。6目前六頁\總數(shù)一百二十一頁\編于十一點將模擬原型映射到數(shù)字等價模型最常用的方法是通過雙線性z變換。雙線性z變換的綜合方法嚴格地講是一種代數(shù)方法,它允許對頻率響應(yīng)上的點進行匹配,使得模擬原型和所得數(shù)字濾波器在某些指定頻率值上具有相同的頻率響應(yīng)(包括幅度和相位)。雙線性z變換法以引入非線性頻率畸變(Warping)為代價消除了混疊誤差。雙線性z變換濾波器在仿真中已經(jīng)得到了廣泛的應(yīng)用。7目前七頁\總數(shù)一百二十一頁\編于十一點基于模擬原型的綜合方法給出無限時間沖激響應(yīng)(IIR)數(shù)字濾波器。因為模擬濾波器的沖激響應(yīng)會漸近趨于零,但嚴格地說,這種沖激響應(yīng)在持續(xù)時間上是無限長的。為了獲得用于仿真程序的有限時間沖激響應(yīng)(FIR)數(shù)字濾波器,由標準的IIR設(shè)計方法所產(chǎn)生的沖激響應(yīng)可能需要截短。通過在FIR濾波器的沖激響應(yīng)中包含足夠多的項數(shù),由截短引起的誤差可以降低到一個允許水平下。8目前八頁\總數(shù)一百二十一頁\編于十一點數(shù)字濾波器的一個重要特性是,在沒有對應(yīng)的模擬濾波器時也可設(shè)計數(shù)字濾波器。在這類濾波器中,最重要的濾波器是允許近似給定的幅度響應(yīng),而要保持一個完全線性的相位響應(yīng),這種濾波器為FIR濾波器,可通過橫向延時線(TDL)結(jié)構(gòu)實現(xiàn)。FIR濾波器最基本的設(shè)計方法是將以采樣頻率為周期的期望幅度響應(yīng)展開成為傅里葉級數(shù),所得傅里葉級數(shù)的系數(shù)確定了數(shù)字濾波器的沖激響應(yīng)。9目前九頁\總數(shù)一百二十一頁\編于十一點快速傅里葉變換(FFT)可用于完成這項運算。它是頻率采樣的一個例子—因為在各頻率點上對期望頻率響應(yīng)進行“采樣”,對這些頻率采樣點進行傅里葉反變換(IFFT)之后,就獲得了濾波器的時域沖激響應(yīng)。將濾波器的輸入信號與沖激響應(yīng)進行卷積運算,就實現(xiàn)了仿真濾波器模型并且獲得了濾波器的輸出信號。計算機輔助設(shè)計(CAD)方法:第一種給出IIR濾波器,而另一種則給出線性相位FIR濾波器。10目前十頁\總數(shù)一百二十一頁\編于十一點二、IIR與FIR濾波器數(shù)字濾波器通常根據(jù)沖激響應(yīng)的持續(xù)時間分為IIR濾波器和FIR濾波器。和沖激響應(yīng)分類緊密聯(lián)系的是濾波器的實現(xiàn)或結(jié)構(gòu)。下面我們先來看不同的濾波器模型。(一)IIR濾波器線性數(shù)字信號處理器(數(shù)字濾波器)計算過去的N個輸出采樣點y[n-k](1≦k≦N)、當(dāng)前的輸入采樣點x[n],以及過去的N個輸入采樣點x[n-k]((1≦k≦N)的加權(quán)和作為當(dāng)前的輸出采樣點y[n]。也就是說,根據(jù)過去的輸入信號及輸出信號計算當(dāng)前輸出信號算法如:11目前十一頁\總數(shù)一百二十一頁\編于十一點我們將會從仿真程序中看到實現(xiàn)式(5-1)所定義的計算的高效算法。如果式(5-1)中的任何權(quán)值bk或ak(k≧1)具有非零值,處理器就會有記憶,因而具有頻率選擇性,我們稱之為“濾波器”。在時變系統(tǒng)中,其中的一個或多個權(quán)值還會是序數(shù)n的函數(shù)。對(5-1)式兩邊進行z變換,可以得到傳遞函數(shù)H(z)。記住,z變換是一種線性運算,和的變換等于變換的和,k個采樣周期的延時等價于乘以因子z-k。由此有12目前十二頁\總數(shù)一百二十一頁\編于十一點此即線性時不變?yōu)V波器傳遞函數(shù)的一般形式。我們通常對所研究的濾波器的沖激響應(yīng)以及頻率響應(yīng)感興趣。沖激響應(yīng)(記為h[n])是傳遞函數(shù)H(z)的逆Z變換,用exp(j2fT)替代傳遞函數(shù)中的變量z,就可得頻率響應(yīng)。也即13目前十三頁\總數(shù)一百二十一頁\編于十一點數(shù)字濾波器的沖激響應(yīng)記作h[n],只要令x[n]=[n]就可得到它。這里由于式(5-1)的遞歸性(y[n]是y[n-1]的函數(shù)),沖激響應(yīng)h[n]通常是無限長的,因此稱之為IIR濾波器。注意,沖激響應(yīng)h[n]是序數(shù)n的離散函數(shù),而頻率響應(yīng)是連續(xù)變量f的連續(xù)函數(shù)。14目前十四頁\總數(shù)一百二十一頁\編于十一點(二)FIR濾波器若在式(5-1)或其等價式(5-3)中,對于k≧1有ak=0,則得到FIR濾波器。FIR數(shù)字濾波器的傳遞函數(shù)如下:其對應(yīng)的沖激響應(yīng)如下:15目前十五頁\總數(shù)一百二十一頁\編于十一點僅在取值范圍0≦n≦N內(nèi),沖激響應(yīng)具有非零值。因此,沖激響應(yīng)最多有N+1個非零項,它是有限長的。由輸入序列x[n]產(chǎn)生濾波器輸出序列y[n]的算法是離散卷積運算:在式(5-1)中,k>0時令ak=0,也可直接得到以上結(jié)果。16目前十六頁\總數(shù)一百二十一頁\編于十一點(三)綜合與仿真在仿真程序中使用濾波器涉及兩種截然不同的運算操作。第一種叫做綜合。在綜合運算中,給定了濾波要求,并確定了滿足這些要求的濾波器的傳遞函數(shù)H(z),這就建立了仿真模型。綜合運算所得結(jié)果通常表示成兩個向量:一個包含分母系數(shù)ak,另一個則包含分子系數(shù)bk。這兩個向量定義了傳遞函數(shù)式(5-3),以及給定濾波器的輸入產(chǎn)生濾波器輸出的算法。綜合操作的計算量通常不大,因為濾波器的綜合運算只進行一次,因而發(fā)生在仿真程序主循環(huán)的外部。第二種運算操作涉及在每一個仿真時間步(即仿真時鐘的每個滴答)計算濾波器的輸出。這種運算在蒙特卡羅仿真程序中要重復(fù)進行數(shù)百萬次,甚至數(shù)十億次,因此,要盡可能地減小這種運算的計算量。下節(jié)考慮的轉(zhuǎn)置濾波器結(jié)構(gòu)就是為應(yīng)對這方面問題。17目前十七頁\總數(shù)一百二十一頁\編于十一點三、IIR與FIR濾波器的實現(xiàn)現(xiàn)在簡要考察一下數(shù)字濾波器在仿真程序中的實現(xiàn)方式。目標是最小化計算量,從而使仿真程序的運行時間最短。(一)直接II型與轉(zhuǎn)置直接II型的實現(xiàn)常見的IIR濾波器基本結(jié)構(gòu):直接I型、直接II型、級聯(lián)型、并聯(lián)型等。在仿真程序中實現(xiàn)IIR數(shù)字濾波器的一種有效方法是采用轉(zhuǎn)置直接II型結(jié)構(gòu)。如圖5-2所示為轉(zhuǎn)置直接II型濾波器結(jié)構(gòu)的信號流圖,及推導(dǎo)出這種結(jié)構(gòu)的直接II型結(jié)構(gòu)的信號流圖。我們從直接II型結(jié)構(gòu)著手,因為它可以直接實現(xiàn)由表達式(5-1)所定義的差分方程。18目前十八頁\總數(shù)一百二十一頁\編于十一點由于運行速度快,轉(zhuǎn)置直接II型結(jié)構(gòu)是濾波器仿真中最常使用的結(jié)構(gòu),而且它可以很容易地從直接II型濾波器的結(jié)構(gòu)推導(dǎo)出來。由給定濾波器結(jié)構(gòu)產(chǎn)生轉(zhuǎn)置直接II型濾波器規(guī)則:1.重畫原有(直接II型)信號流圖,保持結(jié)構(gòu)(所有鏈路的相對位置不變)。2.將每條鏈路中的信號流反向。3.對新鏈路賦上與原有鏈路相同的運算(乘以一個常數(shù)、時延等)。4.如有需要,翻轉(zhuǎn)(從左到右)新構(gòu)造的信號流圖,使得輸入/輸出信號流的方向與原始信號流圖一致(注:信號流的方向通常是從左向右)。19目前十九頁\總數(shù)一百二十一頁\編于十一點20目前二十頁\總數(shù)一百二十一頁\編于十一點新獲得的信號流圖叫做轉(zhuǎn)置直接II型(DFII)結(jié)構(gòu),其傳遞函數(shù)與原始信號流圖相同。[逐點處理]為了展現(xiàn)轉(zhuǎn)置直接II型結(jié)構(gòu)的優(yōu)勢,考慮如圖5-2所示的四階轉(zhuǎn)置直接II型濾波器。(可以很方便地擴展到高階濾波器。)給定輸入采樣x[n],要計算輸出信號y[n],第一步,計算狀態(tài)變量wj[n],J=0,1,…,4。注意,對于四階濾波器,在我們的公式中有五個狀態(tài)變量。這五個狀態(tài)變量的計算式如下:21目前二十一頁\總數(shù)一百二十一頁\編于十一點接下來考慮上述這些方程所定義的轉(zhuǎn)置結(jié)構(gòu)在計算方面的優(yōu)勢。表達式(5-9)到式(5-13)中的狀態(tài)變量可以依次計算。例如,注意到因為w1[n-1]可以通過上一次仿真循環(huán)獲得,于是給定輸入x[n]就可以計算出w0[n]。一旦已知了w0[n],就可以計算出w1[n]。繼續(xù)計算,我們看出wj[n]僅取決于wk[n],這里k<j。這樣,每個狀態(tài)變量的計算只需要知道在它之前計算出來的量就可以了。事實上,可用如下MATLAB代碼在一個仿真循環(huán)中實現(xiàn)式(5-9)到式(5-13):22目前二十二頁\總數(shù)一百二十一頁\編于十一點w1=0;w2=0;w3=0;w4=0;%initializestatevariablesfork=1:npts%beginningofsimulationloopw0=w1+b0*x;wl=-al*w0+w2+b1*x;w2=-a2*w0+w3+b2*x;w3=-a3*w0+w4+b3*x;w4=-a4*w0+b4*x;y=w0;End%endofsimulation-loop23目前二十三頁\總數(shù)一百二十一頁\編于十一點以上代碼中,x和y分別代表濾波器的當(dāng)前輸入x[k]和當(dāng)前輸出y[k]。注意到式(5-9)到式(5-13)所示的一個采樣步長的延時,可以通過狀態(tài)變量的計算順序來實現(xiàn),這里不需要存儲和恢復(fù),因此,這種算法要比基于其他結(jié)構(gòu)的算法快,這也是MATLAB子程序filter要基于轉(zhuǎn)置直接II型結(jié)構(gòu)的原因。同時,注意到狀態(tài)變量w1,w2,w3,w4在首次進入仿真循環(huán)之前必須進行初始化,這一初始化導(dǎo)致濾波器輸出一個瞬態(tài)響應(yīng)。一般必須執(zhí)行仿真循環(huán)多次之后,才能從仿真的輸出中采集到有用數(shù)據(jù),這段時間通常稱為“穩(wěn)定時間”,其大小為濾波器帶寬倒數(shù)的若干倍。下面討論這些計算的向量形式。[塊處理]24目前二十四頁\總數(shù)一百二十一頁\編于十一點數(shù)字濾波器的狀態(tài)方程通常使用矩陣形式來表達。當(dāng)濾波器具有多個輸入及多個輸出時,狀態(tài)變量的矩陣形式非常有用。但目前我們感興趣的主要是具有單輸入x[n]與單輸出y[n]的濾波器。單輸入濾波器的一般表達式如下:濾波方程其中W[n]和W[n-1]是k×1的列向量,分別表示當(dāng)前及過去的狀態(tài)變量。Fc和Fd是k×k的系數(shù)矩陣,B是k×l的列向量,用來將輸入x[n]耦合到狀態(tài)變量。單輸出信號y[n]的輸出方程為:25目前二十五頁\總數(shù)一百二十一頁\編于十一點這里C是一個l×k的行向量。方程(5-9)到(5-13)可以表示為矩陣形式:這里術(shù)語“可算”的意思不是指一定要具有這種形式才能在給定輸入信號的情況下計算出輸出信號。這點很容易看出來,因為只要簡單地重新標記狀態(tài),就會破壞原來矩陣的上三角結(jié)構(gòu)。相反,術(shù)語“可算”只是意味著如式(5-9)到式(5-13)一樣,狀態(tài)變量可以依次計算出來??梢宰C明,存在這種可算形式的充分必要條件是:每一個閉合回路中的路徑上至少含有一個延時單元,即z-1。26目前二十六頁\總數(shù)一百二十一頁\編于十一點稍加思索,可知狀態(tài)變量可以依次計算出來,是因為式(5-16)中關(guān)聯(lián)wj[n]和wk[n]的矩陣Fc,在主對角線及其上方元素全部為零,具有這種屬性的信號流圖稱為“可算圖”。使用MATLAB的一個方便之處在于:對于大量不同的模擬原型,都可以輕易地算出濾波器系數(shù)ak和bk。盡管生成的這些濾波器系數(shù)通常會用于MATLAB子程序filter(一個為分塊處理開發(fā)的子程序),但是使用下列三行簡單的MATLAB程序,就可以逐個采樣點地仿真IIR濾波器。out=b(1)*in+sreg(1,1);%computefilteroutputsreg=in*b-out*a+sreg;%updateshiftregistercontentssreg=[sreg(1,2:(order+1)),0];%cycleshiftregister27目前二十七頁\總數(shù)一百二十一頁\編于十一點其中a和b在仿真循環(huán)外確定。在上面的代碼中,參數(shù)sreg代表長度為order+1的移位寄存器,其中order是濾波器階數(shù)。上述方法的一個優(yōu)點是:可使用MATLAB濾波器綜合子程序,如butter(巴特沃思濾波器)、chebyl(切比雪夫1型濾波器)及elliptic(橢圓濾波器),來計算濾波器系數(shù)向量a和b。必須小心以確保存放分子系數(shù)和分母系數(shù)的向量保持相同的長度,如果這兩個向量長度不相等,較短的向量應(yīng)該進行補零,使之與較長向量的長度相等。例5-1為了說明前面談到的方法,考慮以下MATLAB程序代碼。它采用了塊處理和串行(逐個采樣點)處理方法,來確定一個四階巴特沃思濾波器的沖激響應(yīng);上面所給程序的運行結(jié)果如圖5-3所示??梢钥吹?,塊處理和串行處理方法得到的結(jié)果是相同的?!?8目前二十八頁\總數(shù)一百二十一頁\編于十一點%File:c5_filterex1.mn=40; %numberofsamplesorder=4; %filterorder[b,a]=butter(order,0.1); %prototype%blockimplementation=======================in1=[1,zeros(1,n-1)]; %inputvectorout1=filter(b,a,in1); %outputvector%pointimplementation=======================sreg=zeros(1,order+1); %initializeshiftregisterfork=1:nifk==1in=1; %impulseinputelsein=0;endout=b(1)*in+sreg(1,1); %determineoutputsreg=in*b-out*a+sreg; %updateregistersreg=[sreg(1,2:(order+1)),0]; %shiftout2(k)=out; %createoutputvectorend%===========================subplot(2,1,1)index=0:n-1;stem(index,out1)xlabel('SampleIndex')ylabel('BlockProcessing')subplot(2,1,2)stem(index,out2)xlabel('SampleIndex')ylabel('SerialProcessing')29目前二十九頁\總數(shù)一百二十一頁\編于十一點圖5-3塊處理與串行處理的比較30目前三十頁\總數(shù)一百二十一頁\編于十一點(二)FIR濾波器的實現(xiàn)常見的FIR濾波器基本結(jié)構(gòu):橫截型(卷積型、直接型)、級聯(lián)型、頻率抽樣型等。令ak=0,k≧1,可從圖5-2直接得出FIR數(shù)字濾波器的實現(xiàn)策略。所得到的兩種結(jié)構(gòu)很明顯,如圖5-4所示,通常稱之為抽頭延時線或橫向延時線(TDL)結(jié)構(gòu),因為它們用帶抽頭的延時線(級聯(lián)式z-1單元)來實現(xiàn),其中的抽頭乘上了權(quán)值bk。31目前三十一頁\總數(shù)一百二十一頁\編于十一點32目前三十二頁\總數(shù)一百二十一頁\編于十一點四、IIR濾波器:綜合方法與濾波器特性無限時間沖激響應(yīng)(IIR)濾波器通常根據(jù)模擬原型(巴特沃思、切比雪夫、橢圓等)來進行設(shè)計,并采用遞歸結(jié)構(gòu)實現(xiàn)??赡艹漕l端以外,現(xiàn)代通信系統(tǒng)已經(jīng)不像幾十年前那樣地依賴于模擬原型。許多現(xiàn)代通信系統(tǒng),比如軟件無線電,廣泛采用DSP技術(shù)來實現(xiàn)系統(tǒng)的構(gòu)建模塊(包括濾波器)。在基于DSP技術(shù)的系統(tǒng)中,開發(fā)模擬原型對應(yīng)的數(shù)字等價并不存在什么困難,因為用于物理硬件濾波器已經(jīng)是數(shù)字形式了,因此,以模擬原型為起點的數(shù)字濾波器綜合的經(jīng)典方法,就變得不太重要。33目前三十三頁\總數(shù)一百二十一頁\編于十一點然而,根據(jù)模擬原型進行的設(shè)計仍然有著很多的應(yīng)用,所以這些方法還是值得考慮的。人們已經(jīng)為IIR濾波器開發(fā)了一些計算機輔助設(shè)計方法,這里只討論其中一種。由于本章目的在于講解基礎(chǔ)方法及討論這些方法用于仿真時所引入的誤差,所以僅考慮這些方法非常簡單的應(yīng)用。(一)沖激不變?yōu)V波器

假設(shè)數(shù)字濾波器的單位沖激響應(yīng),除了幅度比例有差別外,等于模擬濾波器沖激響應(yīng)的采樣,這樣的數(shù)字濾波器就稱為模擬濾波器的沖激不變實現(xiàn)。也就是說,該數(shù)字濾波器的傳遞函數(shù)可定義為34目前三十四頁\總數(shù)一百二十一頁\編于十一點這里L(fēng)-1(·)表示拉普拉斯反變換,Z(·)表示z變換,Ha(s)表示模擬原型的傳遞函數(shù),T表示采樣周期,同時還是幅度比例系數(shù)。為了闡明沖激不變方法,這里考慮最簡單的模擬濾波器,即注意,這是一個一階低通濾波器,其直流增益(f=0)為1。例5-2由式(5-17),首先對Ha(s)進行拉普拉斯反變換。由此得到如下沖激響應(yīng):35目前三十五頁\總數(shù)一百二十一頁\編于十一點其中,U(t)為單位階躍函數(shù),表示所得的濾波器是因果的。在進行z變換之前,要對沖激響應(yīng)在采樣時刻t=nT進行采樣,于是有Ha[n]的z變換為進行求和并乘上采樣周期得:此即式(5-18)的沖激不變等價。該濾波器的頻域特性分析將在例5-5中探討?!?6目前三十六頁\總數(shù)一百二十一頁\編于十一點(二)階躍不變?yōu)V波器階躍不變?yōu)V波器常用于仿真系統(tǒng)中。對階躍不變?yōu)V波器而言,數(shù)字濾波器的單位階躍響應(yīng)等價于模擬濾波器階躍響應(yīng)的采樣。模擬濾波器階躍響應(yīng)的頻域表示式為Ha(s)/s,其階躍不變?yōu)V波器的傳遞函數(shù)如下:注意,式(5-23)左邊是傳遞函數(shù)為H(z)的數(shù)字濾波器對采樣后的單位階躍信號的響應(yīng),式(5-23)右邊表示原型模擬濾波器單位階躍響應(yīng)采樣的z變換。37目前三十七頁\總數(shù)一百二十一頁\編于十一點例5-3在這個例子中,再次采用(5-18)式作為模擬原型。這個模擬原型的階躍響應(yīng)如下:使用部分分式展開可得取拉普拉斯反變換,并在t=nT采樣得38目前三十八頁\總數(shù)一百二十一頁\編于十一點再進行z變換得階躍不變數(shù)字濾波器的傳遞函數(shù)為:將上式寫成式(5-3)定義的標準形式有該濾波器的頻域特性分析將在例5-5中探討。所得結(jié)果將與沖激不變法的結(jié)果進行比較?!?9目前三十九頁\總數(shù)一百二十一頁\編于十一點(三)雙線性z變換濾波器雙線性z變換濾波器可能是仿真程序中使用最普遍的濾波器了,這有幾方面的原因。首先,采用雙線性z變換方法的數(shù)字濾波器綜合很直觀并且完全是代數(shù)形式的。另外,可以看到雙線性z變換不會表現(xiàn)出混疊現(xiàn)象。綜合方法雙線性z變換綜合方法采用簡單的代數(shù)變換,將模擬原型Ha(s)映射為一個數(shù)字濾波器。具體來說,該數(shù)字濾波器的傳遞函數(shù)H(z)定義為40目前四十頁\總數(shù)一百二十一頁\編于十一點這里C為常數(shù)。下文很快會討論確定合適的C所用的方法,因為Ha(s)通常定義為s的多項式之比,式(5-31)定義的代數(shù)映射剛好給出H(z)的合適形式,z-1的多項式之比。如上節(jié)所討論,就得到了該濾波器的實現(xiàn)。為了說明所得數(shù)字濾波器的傳遞函數(shù)具有理想的屬性,使用exp(SdT)來替換雙線性Z變換中的變量z,這里Sd是數(shù)字濾波器的復(fù)頻域變量,得:用j2fa替換s,用j2fd替換sd,有41目前四十一頁\總數(shù)一百二十一頁\編于十一點這定義了原型模擬濾波器和所得數(shù)字濾波器的頻率響應(yīng)之間關(guān)系。調(diào)節(jié)C值使得對任意采樣頻率都有fa=fd的方法稱為預(yù)畸變。fa和fd之間的變換關(guān)系很顯然是非線性的。在建立通信系統(tǒng)和其他類型系統(tǒng)仿真模型的過程中,通常都希望在將模擬濾波器映射成其數(shù)字等價時保持傳遞函數(shù)的形狀不變,這包括幅度及相位均不變。而保持傳遞函數(shù)形狀不變,要fa和fd之間的轉(zhuǎn)換關(guān)系盡可能為線性。由于當(dāng)x很小的時候,tan(x)=x,近似線性變換要求fdT<<1或42目前四十二頁\總數(shù)一百二十一頁\編于十一點這里fd落在我們感興趣的頻率范圍內(nèi),而fs是采樣頻率。滿足fd≈fa的近似線性關(guān)系所需C值,也很容易確定。線性關(guān)系要求若還要求fd≈fa,則有不幸的是,通常需要非常高的采樣頻率,才能夠使fd≈fa在一定的頻率范圍內(nèi)(比如濾波器的帶通頻率范圍)。但這通常會導(dǎo)致仿真運行時間是不現(xiàn)實的。43目前四十三頁\總數(shù)一百二十一頁\編于十一點例5-4為了說明雙線性Z變換綜合方法,這里再次使用式(5-18)定義的簡單一階模擬原型。根據(jù)定義,雙線性Z變換濾波器的傳遞函數(shù):44目前四十四頁\總數(shù)一百二十一頁\編于十一點例5-5這個例子將對前面三個例子中設(shè)計的三種濾波器的響應(yīng)進行比較。假設(shè)采樣頻率為100Hz(T=O.Ols),參數(shù)a為2×10,從而使模擬濾波器的3dB頻率為lOHz。作了以上假設(shè)后可以得因此,從式(5-22)得,沖激不變?yōu)V波器的傳遞函數(shù)為:從式(5-30)得,階躍不變?yōu)V波器的傳遞函數(shù)為:45目前四十五頁\總數(shù)一百二十一頁\編于十一點下面將給出雙線性Z變換濾波器的兩種形式。第一種,如果不采用頻率預(yù)畸變,那么模擬濾波器原型與對應(yīng)數(shù)字濾波器的幅度響應(yīng)在低頻段非常吻合,有將C,a的值代入式(5-41),得現(xiàn)假設(shè)選擇C值,使得頻率響應(yīng)在模擬濾波器的3dB頻率處相匹配。在這種情況下有46目前四十六頁\總數(shù)一百二十一頁\編于十一點現(xiàn)假設(shè)選擇C值,使得頻率響應(yīng)在模擬濾波器的3dB頻率處相匹配。在這種情況下有現(xiàn)假設(shè)選擇C值,使得頻率響應(yīng)在模擬濾波器的3dB頻率處相匹配。在這種情況下有47目前四十七頁\總數(shù)一百二十一頁\編于十一點采用下面的MATLAB代碼可以產(chǎn)生沖激不變?yōu)V波器、階躍不變?yōu)V波器,以及由式(5-47)所定義的第一個雙線性Z變換濾波器的幅度響應(yīng)。%File:c5_threefilters.mT=0.01;f=0:0.1:50;z=exp(-i*2*pi*f*T);%see(5.4)a0=0.239057;a1=0.239057;b1=0.521886;%bilinearinvariantnum=a0+a1*z;den=1-b1*z;ampx=abs(num./den);a0=0.628319;b1=0.533488; %impulseinvariantnum=a0;den=1-b1*z;ampy=abs(num./den);a0=1.0;a1=0.533488;b1=0.533488; %stepinvriant num=(a0-a1)*z;den=1-b1*z;ampz=abs(num./den);plot(f,ampx,f,ampy,f,ampz)xlabel('Frequency-Hz')ylabel('AmplitudeResponse')%Endofscriptfile.48目前四十八頁\總數(shù)一百二十一頁\編于十一點運行結(jié)果如圖5-5所示。注意,階躍不變?yōu)V波器和雙線性Z變換濾波器都具有單位直流增益。由于混疊的影響,沖激不變?yōu)V波器的直流增益比1大許多。同時也要注意到,雙線性z變換濾波器在奈奎斯特頻率(fs/2)處存在一個零點,這是因為對應(yīng)的模擬原型在f=∞處有一個零點,而這個零點在雙線性之變換時被映射到了奈奎斯特頻率處?!?9目前四十九頁\總數(shù)一百二十一頁\編于十一點圖5-5幅度響應(yīng)比較圖50目前五十頁\總數(shù)一百二十一頁\編于十一點例5-6在前面各例子中開發(fā)的濾波器僅基于一個非常簡單的一階原型,而且ak和bk的值不必利用計算機輔助就能確定。在這個例子中,考慮一個五階橢圓濾波器,具有1dB通帶波紋和一個最小20dB的阻帶衰減。雖然肯定可以采用前面例子討論的分析方法來確定濾波器系數(shù),但是由于模擬原型傳遞函數(shù)的復(fù)雜性,這樣做相當(dāng)費力。不過,MATLAB信號與系統(tǒng)工具箱中具有大量的數(shù)字濾波器綜合工具,其中就有沖激不變和雙線性z變換數(shù)字濾波器設(shè)計的子程序。進行五階橢圓濾波器綜合設(shè)計的MATLAB代碼如下頁示:51目前五十一頁\總數(shù)一百二十一頁\編于十一點%File:c5_ellipexam.mfs=100; %setsamplingfrequencyfc=20; %setcuttofffrequencyf=0:0.1:50; %definefrequencyvector[b,a]=ellip(5,1,20,2*pi*fc,'s'); %synthesizeellipticfilterh=freqs(b,a,2*pi*f); %amp.resp.ofanalogfilter[bz1,az1]=impinvar(b,a,fs); %impulseinvariantdigitalfilterh1=freqz(bz1,az1,f,fs); %amplituderesponseofabove[bz2,az2]=bilinear(b,a,fs); %bilinearzfilter(notprewarped)h2=freqz(bz2,az2,f,fs); %amplituderesponseofabove[bz3,az3]=bilinear(b,a,fs,fc); %bilinearzfilter(prewarped)h3=freqz(bz3,az3,f,fs); %amplituderesponseofabovesubplot(211) %subplot1plot(f,abs(h),f,abs(h1)) %plotxlabel('Frequency-Hz') %labelxaxisylabel('AmplitudeResponse') %labelyaxissubplot(212) %subplot2plot(f,abs(h2),f,abs(h3)) %plotxlabel('Frequency-Hz') %labelxaxisylabel('AmplitudeResponse') %labelyaxis52目前五十二頁\總數(shù)一百二十一頁\編于十一點注意這里產(chǎn)生了四種頻率響應(yīng)。首先產(chǎn)生了模擬原型的幅度響應(yīng),作為比較的基礎(chǔ)。其次產(chǎn)生了沖激不變數(shù)字濾波器的幅度響應(yīng),并與模擬原型的幅度響應(yīng)畫在一起。最后綜合產(chǎn)生了兩種雙線性z變換數(shù)字濾波器,一種采用頻率畸變而另一種未采用頻率畸變,把它們畫在一起,用來說明頻率畸變的影響。在圖5-6中比較了模擬原型、沖激不變?yōu)V波器和兩種雙線性z變換的幅度響應(yīng),這里把它們分別畫在兩張圖中以避免混亂。上方的圖對模擬原型和沖激不變數(shù)字濾波器的幅度響應(yīng)進行了比較。注意,除了帶寬,兩者差別很大,原因在于混疊誤差。橢圓濾波器存在明顯的混疊誤差,因為它的阻帶特性使得其模擬原型的幅度響應(yīng)不是帶限的,這一點,從濾波器的通帶和阻帶的幅度都有所升高就可以看出。53目前五十三頁\總數(shù)一百二十一頁\編于十一點圖5-6幅度響應(yīng)的比較54目前五十四頁\總數(shù)一百二十一頁\編于十一點上頁的圖表明雙線性之變換綜合方法的性能要好得多。如果沒有使用頻率畸變的話,截止頻率就會像預(yù)計的一樣,從20Hz降低到18Hz左右。將數(shù)字濾波器的截止頻率預(yù)畸變到模擬原型的截止頻率,就可以在大部分頻率范圍內(nèi)使幅度響應(yīng)與模擬原型的幅度響應(yīng)很好地匹配。然而,它們之間有一個明顯的差別。在奈奎斯特頻率(fs/2=50Hz)處,模擬原型的幅度響應(yīng)是0.1,對應(yīng)于20dB衰減,而雙線性之變換數(shù)字濾波器的幅度響應(yīng)為0(-∞dB)。模擬濾波器在f=∞處有一個零點,經(jīng)過雙線性之變換以后,這個零點被映射到了奈奎斯特頻率處?!?5目前五十五頁\總數(shù)一百二十一頁\編于十一點特殊情況:梯形積分法梯形積分法是一種重要的積分算法,經(jīng)常用于仿真程序中。通常,離散時間積分由如下的表達式定義:這里y[n]和y[n-1]分別表示積分器在序數(shù)n以及n-1時的輸出信號,△(n-1,n)表示在時間增量(n-1)T<t≦nT區(qū)間內(nèi)加到積分上的增量面積。增量面積如圖5-7所示,其值如下56目前五十六頁\總數(shù)一百二十一頁\編于十一點對式(5-54)兩邊進行z變換,可得梯形積分器的傳遞函數(shù),結(jié)果如下:如果基于雙線性z變換綜合方法設(shè)計一種積分算法,其結(jié)果為或者,由于積分運算等價于除以s,于是有57目前五十七頁\總數(shù)一百二十一頁\編于十一點圖5-7梯形積分法58目前五十八頁\總數(shù)一百二十一頁\編于十一點上式與式(5-55)表示的梯形積分法完全相同。對應(yīng)于梯形積分法的轉(zhuǎn)置直接II型實現(xiàn)的信號流圖如圖5-8所示。注意到除了有一個幅度比例系數(shù)T/2之外,所有乘法全部是單位型的。其MATLAB仿真代碼也示于圖5-8中。可以看到,這里的延時也是通過狀態(tài)w1和w2的計算順序來實現(xiàn)的。梯形積分法只是用于仿真程序的眾多不同積分算法中的一種。有了多種不同的算法,我們就能夠在速度/性能方面進行各種折中。59目前五十九頁\總數(shù)一百二十一頁\編于十一點(四)IIR數(shù)字濾波器的計算機輔助設(shè)計過去數(shù)十年來,人們已經(jīng)為IIR和FIR數(shù)字濾波器開發(fā)了多種計算機輔助設(shè)計方法。FIR方法比IIR方法得到了更為廣泛的應(yīng)用,但是由于IIR方法能給出較小型的結(jié)構(gòu)(較少的延時單元),它有時也能派上用場。計算機輔助設(shè)計方法的一個優(yōu)點在于:無須等價模擬原型就可以開發(fā)數(shù)字濾波器;另外,使用計算機輔助設(shè)計,也便于快速而系統(tǒng)地研究實現(xiàn)中的折中,比如在復(fù)雜度(要求的系數(shù)個數(shù))和精度(實際與目標幅度響應(yīng)之間的誤差)。60目前六十頁\總數(shù)一百二十一頁\編于十一點開發(fā)IIR濾波器常用的一個方法是:通過調(diào)整濾波器系數(shù)來獲得期望響應(yīng)的最佳擬合。在最常用的方法中,人們指定理想的濾波器特性,一般是期望濾波器的幅度響應(yīng)以及濾波器的階數(shù)N,這導(dǎo)致了一個帶約束的最優(yōu)化問題,其中階數(shù)N為約束,目標是根據(jù)最小均方誤差準則確定最佳擬合。下面舉一個例子進行說明。例5-7我們將設(shè)計一個信道濾波器,具有如圖5-9所示特性。注意到這個濾波器通過兩個信道,其中只有一個轉(zhuǎn)換為直流。還注意到圖5-9中的頻率根據(jù)奈奎斯特頻率(采樣頻率的一半)進行了歸一化。根據(jù)這個歸一化后頻率fN=l/(fs/2),濾波器幅度響應(yīng)可定義為61目前六十一頁\總數(shù)一百二十一頁\編于十一點上面Ad(f)的表達式中未包含的三個頻帶是過渡頻帶,在圖5-9中以深黑色區(qū)域標識出來。62目前六十二頁\總數(shù)一百二十一頁\編于十一點設(shè)計這個濾波器的MATLAB程序如下:%Program:c5_yw.morder=20, %degreeofpolynomialsf=[00.10.120.230.250.350.371]; %frequencypointsamp=[11001100]; %amplituderesponse[b,a]=yulewalk(order,f,amp); %synthesizefilterfreqz(b,a) %displayresults%Endofscriptfile.我們注意到,本例產(chǎn)生了一個20階濾波器,使得H(z)的分子及分母多項式都是z-1的20次多項式,這個程序的運行結(jié)果如圖5-10所示。注意這里的阻帶衰減約為30dB或者更高。對通帶進行了合理的整形處理,通帶上的相位響應(yīng)也近似為線性的。要判斷這個濾波器是否為式(5-58)所定義理想響應(yīng)的滿意近似,可能需要對使用該濾波器的系統(tǒng)進行仿真。增加濾波器階數(shù)可以減小近似誤差,但是代價是提高了復(fù)雜度,從而增加了仿真程序的運行時間。■63目前六十三頁\總數(shù)一百二十一頁\編于十一點圖5-10-1IIR濾波器的計算機輔助設(shè)計結(jié)果(20階)64目前六十四頁\總數(shù)一百二十一頁\編于十一點圖5-10-2IIR濾波器的計算機輔助設(shè)計結(jié)果(40階)65目前六十五頁\總數(shù)一百二十一頁\編于十一點(五)IIR濾波器的誤差源本節(jié)我們總結(jié)一下使用IIR濾波器近似模擬濾波器的方法所帶來的誤差源。我們已經(jīng)看到誤差源取決于所采用的綜合方法,而在仿真中采用很高的采樣頻率,就可以在很大程度上減小這些誤差,但是過高的采樣頻率將不必要地增加仿真程序的運行時間。跟往常一樣,仿真采樣頻率的選擇同樣涉及到在精度和仿真程序運行時間兩者間進行折中。誤差源小結(jié)如表5-166目前六十六頁\總數(shù)一百二十一頁\編于十一點五、FIR濾波器:綜合技術(shù)與濾波器特性如果一個濾波器的沖激響應(yīng)是有限長的,或者已將無限長沖激響應(yīng)截短為有限長的,則離散時域的濾波器輸出信號可表示為采用標準DSP表示法,可寫為:或?qū)懗蒢變換形式67目前六十七頁\總數(shù)一百二十一頁\編于十一點定義FIR數(shù)字濾波器的式(5-60),是模擬(連續(xù)時間)濾波器卷積積分的離散形式。注意到式(5-60)、式(5-61)和式(5-1)、式(5-3)在ak=0,k1時定義的濾波器模型是相同的。濾波器為FIR(有限時間沖激響應(yīng)),是因為它的沖激響應(yīng)h[n]至多只有N+1個非零項,因為k≥1時ak=0,F(xiàn)IR濾波器沒有反饋通道。式(5-60)所定義的時域卷積運算可以用MATLAB函數(shù)filter進行仿真。FIR濾波器的優(yōu)點:

1.在一個通信系統(tǒng)中,并非所有的濾波器都可以使用拉普拉斯變換域的傳遞函數(shù)來表示,因此無法直接應(yīng)用上節(jié)所討論的IIR濾波器方法。屬于這種情況的兩個重要的濾波器是:平方根升余弦(SQRC)脈沖成形濾波器和Jakes多普勒濾波器。而采用FIR設(shè)計方法則可以輕易地實現(xiàn)這些濾波器的仿真。68目前六十八頁\總數(shù)一百二十一頁\編于十一點2.在許多仿真應(yīng)用中,濾波器數(shù)據(jù)可能是以測量的頻率響應(yīng)或脈沖響應(yīng)的形式經(jīng)驗性地給出。采用FIR方法仿真這些濾波器要容易得多。雖然有其他的方法可以將頻率響應(yīng)數(shù)據(jù)擬合為ARMA(自回歸--滑動平均)模型,但是當(dāng)頻率響應(yīng)數(shù)據(jù)不怎么平滑的時候,所得的近似結(jié)果不夠理想。

3.采用FIR濾波器,可以給定任意幅度響應(yīng)和相位響應(yīng),而且它們可以是相互獨立的。因此可以仿真諸如具有線性相位響應(yīng)的理想“磚墻”濾波器。

4.FIR濾波器沒有反饋,因此總是穩(wěn)定的。69目前六十九頁\總數(shù)一百二十一頁\編于十一點FIR仿真模型的缺點:那就是它的計算效率不如IIR濾波器實現(xiàn)的高。直接實現(xiàn)式(5-60)定義的卷積運算,產(chǎn)生一個輸出采樣點就需要進N次(復(fù)數(shù))乘法和加法運算,如果沖激響應(yīng)非常長,比如說N>1024點的話,F(xiàn)IR算法運行起來比典型的IIR濾波器算法要慢得多。對于IIR濾波器而言,產(chǎn)生一個輸出采樣點需要的加法和乘法運算的次數(shù)是由濾波器的階數(shù)決定的,而不同于FIR濾波器,由沖激響應(yīng)的長度決定。

通過使用DFT/FFT算子來進行卷積運算,可以改進FIR模型的計算效率。當(dāng)采用DFT/FFT算子的時候,關(guān)鍵要注意以下幾點:

1.DFT/FFT運算具有固有的周期性,會產(chǎn)生圓周或周期卷積輸出。為了獲得線性卷積輸出,輸入序列以及沖激響應(yīng)序列必須進行填零補齊(Zero-padded)。為了獲得最高的計算效率,經(jīng)過填補的向量擴展后的長度必須是2的冪,以便使用基--2(Radix-2)FFT算法。

70目前七十頁\總數(shù)一百二十一頁\編于十一點

2.如果輸入序列很長,通常把輸入序列分成幾個較小的互不重疊的子塊,并對每個輸入子塊分別進行卷積,以得到對應(yīng)的輸出子塊,然后將這些輸出子塊進行適當(dāng)?shù)慕化B再相加,就得出總的輸出。如果輸入子塊的長度相對較短,比如說少于128個采樣點,輸出子塊通??梢圆捎谩皢斡|發(fā)”方式來計算。要不然,則推薦使用疊加的方法??梢允褂肕ATLAB函數(shù)fftfilt來實現(xiàn)基于DFT/FFT疊加法的卷積。

3.基于DFT/FFT的卷積是一種分塊處理運算。只有在輸入采樣點的數(shù)量累積到足夠進行DFT/FFT運算之后,才可以產(chǎn)生輸出子塊的第一個采樣點。由于這種內(nèi)置的時延,通常情況下DFT/FFT濾波器不能用于仿真反饋循環(huán)中的濾波器。71目前七十一頁\總數(shù)一百二十一頁\編于十一點眾所周知,時域卷積與基于DFT運算的卷積的計算效率之比值跟log2N/N成比例。如果沖激響應(yīng)長度少于128個采樣點的話,時域卷積與基于DFT/FFT的卷積在計算量上沒有太大的區(qū)別。如果對沖激響應(yīng)的長度進行截短,F(xiàn)IR濾波器方法(包括時域卷積和基于DFT/FFT的卷積)的計算效率可以得到改進。截短等價于使用一個長度為N個采樣的窗函數(shù)w[k]與沖激響應(yīng)h[k](k=0,1,2,…)相乘。通常選擇N值使得該窗函數(shù)內(nèi)至少包含有h[n]總能量的98%,即最簡單的窗函數(shù)就是矩形窗函數(shù),也即72目前七十二頁\總數(shù)一百二十一頁\編于十一點也可采用許多其他的窗函數(shù)。時域的截短(加窗)等價于頻域的卷積,即HT(f)=H(f)W(f),這里慣常地使用表示卷積。理想情況下,窗函數(shù)的頻域表達式應(yīng)該是W(f)=(f),這樣,與沖激信號進行卷積就不會改變H(f)。頻域沖激對應(yīng)于時域的常數(shù),但其區(qū)間是無限長而不是有限長的,這樣,頻域的理想特性就會導(dǎo)致時域的非理想特性。反之亦然。窗函數(shù)的選擇因此也是一種折中,所得窗口同時也引入了失真。合適地選擇窗函數(shù),就可以使這種失真最小化。理想的窗函數(shù)應(yīng)該具備以下特性(記住,在理想情況下我們想要一個頻域上的沖激信號):

1.頻域的“窄主瓣”包含大多數(shù)能量。2.小旁瓣。最常用的窗函數(shù)有矩形窗、漢明窗以及Kaiser窗。選擇窗函數(shù)的時候,應(yīng)該在加窗引起的信號失真和計算量之間進行折中考慮。73目前七十三頁\總數(shù)一百二十一頁\編于十一點(一)根據(jù)幅度響應(yīng)進行的設(shè)計

FIR濾波器的基本設(shè)計方法基于這樣一個事實:濾波器的頻率響應(yīng)(包括幅度和相位)和單位沖激響應(yīng)是一個傅里葉變換對。我們推導(dǎo)單位沖激響應(yīng)的一般做法是,給定期望的幅度響應(yīng)A(f),再計算其傅里葉反變換。通常給定目標幅度響應(yīng)為實偶函數(shù),這樣所得的單位沖激響應(yīng)也是實偶函數(shù)型的。因為沖激響應(yīng)是偶函數(shù),是非因果的,而為了在時域上實現(xiàn)系統(tǒng),必須對所得的沖激響應(yīng)進行截短使其為有限長,還要在時間軸上進行平移,使之成為因果函數(shù)。截短時,必須注意以避免引入顯著的誤差,使用合適的窗函數(shù)通??梢詼p小這些誤差的影響。在時間軸上平移時,相當(dāng)于使濾波器獲得一個大小等于該時間平移長度的群時延的線性相位響應(yīng),該方法可產(chǎn)生具有任意幅度和線性相位響應(yīng)的濾波器。74目前七十四頁\總數(shù)一百二十一頁\編于十一點如果人們想要一個同時具有目標幅度響應(yīng)和相位響應(yīng)的濾波器,就要給定一個復(fù)傳遞函數(shù)。假設(shè)對沖激響應(yīng)進行截短操作后,所引入誤差不太顯著,則除了一個定常群時延外,最終得到的濾波器可以同時滿足目標濾波器對幅度響應(yīng)和相位響應(yīng)要求數(shù)字濾波器的幅度響應(yīng),是頻率f的連續(xù)函數(shù),而且是具有以采樣頻率為周期的周期函數(shù),可以表示為傅里葉級數(shù)。這些離散的傅里葉級數(shù)的系數(shù),給出了期望數(shù)字濾波器的沖激響應(yīng)。正如我們將在接下來的兩個例子中所看到的那樣,正式確定期望的頻率響應(yīng)的傅里葉反變換,或者對期望的幅度響應(yīng)采樣點序列進行FFT反變換,都可以獲得所要求的沖激響應(yīng)。這些方法都相當(dāng)基本,但如果小心使用會得到有用的濾波器設(shè)計。75目前七十五頁\總數(shù)一百二十一頁\編于十一點由于數(shù)字濾波器的幅度響應(yīng)具有以采樣頻率為周期的周期性,其幅度響應(yīng)可展開為傅里葉級數(shù),如下:這里的h[n]表示傅里葉級數(shù)的系數(shù),M表示沖激響應(yīng)的長度,而T=1/fs。注意,式(5-64)剛好是式(5-4)與式(5-6)的聯(lián)立結(jié)果,用于從傳遞函數(shù)H(z)獲得穩(wěn)態(tài)頻率響應(yīng)。下面假設(shè)M=2L+1。利用這一替換并改變序數(shù)k=n-L,可得:76目前七十六頁\總數(shù)一百二十一頁\編于十一點或又可以改寫成如下形式:顯然h1[k]=h[k+L],這是由式(5-64)所定義的因果濾波器的沖激響應(yīng)平移L個采樣點后得到的。注意,由式(5-68)定義的濾波器不是一個因果濾波器。然而它非常便于采用基本的傅里葉變換法進行設(shè)計,并且只要簡單地對沖激響應(yīng)進行合適的平移就可以變?yōu)橐蚬摹?7目前七十七頁\總數(shù)一百二十一頁\編于十一點假設(shè)一個濾波器將具有給定幅度響應(yīng)H1(ej2fT)=A(f)。在式(5-68)兩邊同時乘以exp(j2mfT)得很顯然,由h[n]和h1[n]所確定的濾波器的幅度響應(yīng)是相同的,而傳遞函數(shù)只是相差一個由式(5-67)所定義的線性相位平移。因此該設(shè)計過程基于式(5-68)。在一個仿真帶寬上,即H1(ej2fT)的一個周期內(nèi),對式(5-69)兩邊同時積分得78目前七十八頁\總數(shù)一百二十一頁\編于十一點進行積分,并注意fsT=1,得將這個結(jié)果代入式(5-70)得這是我們的基本設(shè)計方程。

例5-8在這個例子中我們設(shè)計一個數(shù)字低通濾波器,來近似一個帶寬為fN=fs/2的理想數(shù)字濾波器,這里fN為奈奎斯特頻率,fs為采樣頻率,是介于0和1之間的一個參數(shù)。因此,期望的幅度響應(yīng)為79目前七十九頁\總數(shù)一百二十一頁\編于十一點從式(5-73)有由于fsT=1,式(5-76)可以改寫為:注意,這里h1[0]=h[L]=下述代碼中,我們采用的L=30,=0.3。注意,為了防止當(dāng)m=0時出現(xiàn)不確定形式,在序數(shù)m中加上了eps。將沖激變成因果的所要求的L=30個采樣點的平移,是利用MATLAB對向量序數(shù)進行操作的方式來完成的。80目前八十頁\總數(shù)一百二十一頁\編于十一點%File:c5_FIRdesign.mL=30; %2L+1totalpointslam=0.3; %normalizedcutofffrequencym=-L:1:L; %vectorofpointsbp=sin(pi*lam*(m+eps))./(pi*(m+eps)); %impulseresponsestem(0:2*L,bp,'.') %plotimpulseresponsexlabel('Sampleindex')ylabel('Impulseresponse')figure;a=1;freqz(bp,a) %plotampandphaseresponsefigure;subplot(2,1,1) %newfigure [Hw]=freqz(bp,a); plot(w/pi,abs(H));grid; %unwindowedampresponsexlabel('Frequency(normalizedtotheNyquistfrequency=fs/2)')ylabel('|H(f)|(unwindowed)')subplot(2,1,2)w=0.54+0.46*cos(pi*m/L); %Hammingwindowwbp=bp.*w; %applywindow[Hw]=freqz(wbp,a);plot(w/pi,abs(H));grid; %windowedampresponsexlabel('Frequency(normalizedtotheNyquistfrequency=fs/2)')ylabel('|H(f)|(windowed)')%Endofscriptfile.81目前八十一頁\總數(shù)一百二十一頁\編于十一點MATLAB程序產(chǎn)生的第一個輸出信號是沖激響應(yīng),如圖5-11所示。注意,跟先前確定的一樣,h[30]=0.3。同時也注意,所得沖激響應(yīng)關(guān)于m=L=30處的中心是偶對稱的。用MATLAB命令freqz產(chǎn)生FIR濾波器的幅度響應(yīng)和相位響應(yīng),再用默認的畫圖模式畫出,如圖5-12所示。跟預(yù)計的一樣,所得濾波器具有線性相位響應(yīng),因為沖激響應(yīng)關(guān)于其中心偶對稱。線性相位平移操作(定常群時延)得自于將沖激響應(yīng)平移L個采樣點而使濾波器具有因果性。幅度響應(yīng)的符號變換會在阻帶范圍內(nèi)導(dǎo)致鋸齒狀的相位響應(yīng)。

如圖5-12所示,濾波器通帶范圍內(nèi)的幅度響應(yīng)看起來相當(dāng)平坦。為了驗證這一點,采用線性標尺重新畫出幅度響應(yīng),以避免對數(shù)坐標產(chǎn)生的幅度壓縮。結(jié)果如圖5-13的上部所示。82目前八十二頁\總數(shù)一百二十一頁\編于十一點可以看到,在通帶范圍內(nèi)有明顯的波紋,這是因為進行沖激響應(yīng)截短操作時,對沖激響應(yīng)乘以一個矩形窗所造成的。這里的加窗等價于把理想頻率響應(yīng)與sin(f)/f進行卷積(的數(shù)值由窗函數(shù)的寬度決定)??梢酝ㄟ^采用一個從w[n]=1到w[n]=0較平滑過渡的窗函數(shù),來降低矩形窗所造成的通帶波紋。注意,我們希望這里的窗函數(shù)在頻域上更接近于一個沖激函數(shù)。)一種簡單而常用的窗函數(shù)—漢明窗的權(quán)值定義如下83目前八十三頁\總數(shù)一百二十一頁\編于十一點注意,窗函數(shù)w[n]必須在時間上平移L個采樣點,從而使w[0]成為h[n]的中心。采用漢明窗的結(jié)果,如圖5-13下方所示。注意,采用漢明窗之后,通帶以及阻帶波紋都受到了抑制?!鰣D5-11FIR濾波器沖激響應(yīng)84目前八十四頁\總數(shù)一百二十一頁\編于十一點圖5-12幅度響應(yīng)和相位響應(yīng)85目前八十五頁\總數(shù)一百二十一頁\編于十一點圖5-13加窗效果86目前八十六頁\總數(shù)一百二十一頁\編于十一點例5-9設(shè)計一個數(shù)字低通濾波器,不僅具有模擬巴特沃思濾波器的幅度響應(yīng),而且具有線性相位響應(yīng)。我們沒有該濾波器的等價模擬原型。巴特沃思濾波器通過如下幅度響應(yīng)定義:這里fc是帶寬,或稱為3dB頻率點,n是濾波器階數(shù)。下一步是對頻率響應(yīng)進行采樣,頻率響應(yīng)的采樣由下式給出:然后對頻率響應(yīng)采樣值進行FFT反變換來產(chǎn)生沖激響應(yīng)。87目前八十七頁\總數(shù)一百二十一頁\編于十一點%File:c5_firbutter.morder=30; fc=5; %setfilterparametersfmax=100; %setmaxfrequencynpts=256; %setnumberofsamplesf=(0:(npts-1))*(fmax/(npts-1)); %frequencyvectornn=2*npts; %sizeifftH=zeros(1,nn); %initializevectorHa=1./(sqrt(1+(f/fc).^order)); %amplituderesponseH=[Ha0fliplr(Ha(2:npts))]; %evenamplituderesponse[cimp_resp]=ifft(H,nn); %compleximpulseresponseimp_resp=real(cimp_resp); %takerealpartaa=imp_resp(1:npts); %time>=0bb=imp_resp((npts+1):nn); %time<0reimpulse=[bbaa]; %realandevenimp.resp.plot(reimpulse) %plotresult注意,對于N點FFT反變換,在序數(shù)值為(N/2)+1到N的范圍內(nèi),返回的向量中會出現(xiàn)負時間采樣點,這時必須重新編寫序號,才能得到合適的沖激響應(yīng)。計算具有巴特沃思幅度響應(yīng)的線性相位濾波器沖激響應(yīng)采樣代碼:88目前八十八頁\總數(shù)一百二十一頁\編于十一點order=1和order=30時的沖激響應(yīng)如圖5-14所示,所得響應(yīng)是雙邊指數(shù)遞減的(雙邊是因為這里假設(shè)幅度響應(yīng)A(f)為實數(shù))。對于order=30,沖激響應(yīng)相當(dāng)接近sinc函數(shù),因為階數(shù)極高的巴特沃思濾波器可以很好地近似理想(brickwall)濾波器。因此,如圖5-14所示的結(jié)果是正確的。實際上,人們希望通過最大限度地減少表示沖激響應(yīng)的權(quán)值(bk項)的個數(shù),從而最小化仿真程序的計算量。通過最小化權(quán)值個數(shù),可以使得乘法運算的數(shù)目和抽頭延時線(移位寄存器)級數(shù)最少。看起來,在order=1的沖激響應(yīng)中,系數(shù)權(quán)值都接近于零,因此可以從幅度響應(yīng)中消除,而對幅度響應(yīng)產(chǎn)生的影響可忽略不計。在order=30的沖激響應(yīng)中也是如此(只是程度輕點)。因此人們應(yīng)該對沖激響應(yīng)加上矩形窗,具有足夠的寬度以包含沖激響應(yīng)的所有有效項,而拋棄落在窗外的項?!?9目前八十九頁\總數(shù)一百二十一頁\編于十一點Order=1Order=30圖5-14濾波器綜合的結(jié)果—沖激響應(yīng)90目前九十頁\總數(shù)一百二十一頁\編于十一點(二)根據(jù)沖激響應(yīng)進行的設(shè)計通過幅度響應(yīng)和相位響應(yīng)特性的指標來綜合數(shù)字濾波器,是頻率采樣的一個應(yīng)用。在許多應(yīng)用中,已知濾波器沖激響應(yīng)的解析表達式。此時,對沖激響應(yīng)進行時域采樣,就可以實現(xiàn)FIR濾波器的設(shè)計。用于信號傳輸中成形脈沖的濾波器尤其如此。在這種情況下,數(shù)據(jù)可以看作是在時間上以一定的脈沖周期T分隔開的沖激序列。對二進制的情況,我們有這里dk=1對應(yīng)于二進制數(shù)1,dk=-1對應(yīng)于二進制數(shù)O。將它通過一個具有沖激響應(yīng)為p(t)的脈沖成形濾波器,得到以下波形91目前九十一頁\總數(shù)一百二十一頁\編于十一點下例給出兩個常見的實例。例5-10用于數(shù)據(jù)傳輸?shù)拿}沖波形p(t),通常應(yīng)選擇具有奈奎斯特零符號間干擾(ISI)屬性的脈沖波形。升余弦脈沖即是一種具有零ISI的脈沖波形,其頻域表達如下:92目前九十二頁\總數(shù)一百二十一頁\編于十一點這里T是脈沖周期或者稱為符號周期。對其進行傅里葉反變換,得到脈沖波形如下:這顯然是一個非因果的脈沖。通常將這個脈沖延時符號周期的整數(shù)倍,也就是mT,并將其長度截短到2mT,m的取值應(yīng)該在便捷和精度要求之間進行折中。然后在每個符號周期內(nèi)進行k點采樣,使得T=kTs,這里Ts為采樣周期。用t-td=t-mT來進行替換t,令t=nTs,及T=kTs得93目前九十三頁\總數(shù)一百二十一頁\編于十一點代入式(5-84),得到表示數(shù)字濾波器沖激響應(yīng)的采樣序列如下:為了說明升余弦響應(yīng),令x[n]=[n-1]為濾波器的輸入,而該濾波器具有沖激響應(yīng)p[n]。輸出信號為對=0.32,k=10個采樣點每符號,m=4個符號所得結(jié)果,如圖5-15所示。顯而易見,在假設(shè)的脈沖周期T=1的整數(shù)倍處,p[n]值為零。94目前九十四頁\總數(shù)一百二十一頁\編于十一點在許多系統(tǒng)設(shè)計中,傳遞函數(shù)P(f)通常通過兩個具有傳遞函數(shù)為sqrt[P(f)]的濾波器的級聯(lián)而來現(xiàn)。其中一個是發(fā)射器的一部分,而另一個則是接收器的一部分。于是有使用式(5-85)定義的替換可實現(xiàn)延時和采樣運算,所得結(jié)果為95目前九十五頁\總數(shù)一百二十一頁\編于十一點如圖5-16(上方)所示為具有沖激響應(yīng)為PSQRC[n]的濾波器對輸入信號[n-1]的響應(yīng),即濾波器的參數(shù)如下:=0.32,k=10個采樣點每符號,T=1,m=4個符號。注意到此時過零點并不是精確地位于T=1的整數(shù)倍處。如圖5-16下方所示為圖5-16上方所給的采樣序列與PSQRC[n]進行卷積的結(jié)果,它實質(zhì)上表示PSQRC[n]與其本身進行卷積運算,等價于兩個SQRC濾波器的級聯(lián)。注意到過零點現(xiàn)在就落在T=1的整數(shù)倍處,因為兩個SQRC濾波器的級聯(lián)組合,就成為一個零ISI的濾波器?!?6目前九十六頁\總數(shù)一百二十一頁\編于十一點圖5-15升余弦脈沖實例97目前九十七頁\總數(shù)一百二十一頁\編于十一點圖5-16平方根升余弦脈沖波形98目前九十八頁\總數(shù)一百二十一頁\編于十一點(三)FIR濾波器仿真模型的實現(xiàn)※我們已經(jīng)看到,在通信系統(tǒng)仿真中,F(xiàn)IR模型起著關(guān)鍵的作用。前面章節(jié)中所討論的是在解析地已知傳遞函數(shù)或者沖激響應(yīng),從而可對其進行采樣時的設(shè)計方法。FIR仿真模型的另外一個重要應(yīng)用是在設(shè)計過程的后期階段。此時,濾波器也許已經(jīng)設(shè)計并制造出來,這樣就可以利用已經(jīng)測量到的頻率響應(yīng)。FIR濾波器仿真模型特別適用于頻率響應(yīng)以經(jīng)驗形式給定(通過測量或者其他方式)的濾波器仿真。99目前九十九頁\總數(shù)一百二十一頁\編于十一點讓我們看一下,如果頻率響應(yīng)是任意的,并且是使用表格形式經(jīng)驗性地給定時(通??蓮木W(wǎng)絡(luò)分析儀測量值獲得),那么仿真這樣的濾波器有這么幾個重要步驟。第一大步,合理選擇兩個重要參數(shù),即采樣率和截短濾波器的持續(xù)時間。要實現(xiàn)FIR濾波器,這兩個參數(shù)就必須仔細選擇,使得在最小化計算復(fù)雜度的同時,可以在時域以及頻域上獲得令人滿意的分辨率。選擇這兩個參數(shù)的準則如下:采樣率fs通常應(yīng)滿足fs>16B到32B,這里B是濾波器帶寬。時間分辨率,即采樣間隔為Ts=1/fs。頻率分辨率△f=1/(NTs),這里N=fs/△f,理想的值處于B/64和B/32之間。采樣點/符號數(shù)量必須為整數(shù),通常是2的冪次方,最小值為8。沖激響應(yīng)的持續(xù)時間通常選擇8到16個符號。100目前一百頁\總數(shù)一百二十一頁\編于十一點經(jīng)過以上考慮,通常選取N=1024,N是濾波器抽頭數(shù)量或者沖激響應(yīng)的采樣點數(shù)。在選擇了重要參數(shù)fs和N(從而也確定Ts和與△f)之后,就要對給定的頻率響應(yīng)數(shù)據(jù)進行預(yù)處理并實現(xiàn)仿真模型。

實現(xiàn)仿真模型的第二大步涉及到對頻率響應(yīng)數(shù)據(jù)的預(yù)處理。這一步驟包括:1)進行帶通到低通的轉(zhuǎn)換(如果濾波器是帶通濾波器);2)對頻率響應(yīng)數(shù)據(jù)進行重新采樣;3)通過對群時延數(shù)據(jù)的數(shù)字積分將群時延轉(zhuǎn)換為相位。帶通到低通的轉(zhuǎn)換只要通過重新標記頻率軸(fl=f-fc)就可以實現(xiàn)。101目前一百零一頁\總數(shù)一百二十一頁\編于十一點上述操作,可能導(dǎo)致低通等價濾波器不具有關(guān)于f=0的共扼對稱性。在這種情況下,低通等價濾波器的沖激響應(yīng)可能取復(fù)數(shù)值。一個實例是,當(dāng)對一個殘留邊帶濾波器進行帶通到低通轉(zhuǎn)換的時候,就會產(chǎn)生這種影響。重采樣,諸如當(dāng)網(wǎng)絡(luò)分析儀測量結(jié)果所給出的頻率點,跟要用于實現(xiàn)FIR濾波器的頻率點不同時,這是必需的。例如,假設(shè)使用網(wǎng)絡(luò)分析儀收集到頻率響應(yīng)的100個采樣點,而FIR濾波器的實現(xiàn)是基于N=1024個采樣點的,這種情況下,必須對所得頻率響應(yīng)進行內(nèi)插。在大多數(shù)情況下,簡單的線性內(nèi)插就足夠了。最后一步就是群時延響應(yīng)到相位響應(yīng)的轉(zhuǎn)換,通過在頻域上對群時延進行數(shù)字積分,群時延數(shù)據(jù)就可以轉(zhuǎn)換為相位響應(yīng)。102目前一百零二頁\總數(shù)一百二十一頁\編于十一點一旦得到低通等價濾波器的頻率響應(yīng),使用MATLAB實現(xiàn)FIR濾波器模型就包括以下步驟:1.將頻率響應(yīng)數(shù)據(jù)擴展到-fs/2到fs/2之間,并獲得傳遞函數(shù)H(f)的采樣值,-fs/2<f<fs/2,這里f=k△f,k=-N/2到N/2-1,△f是頻率分辨率[△f=1/(NTs)]。2.將H(f)的負頻率部分平移到N/2+1與N之間,于是頻率響應(yīng)就包含在H(k△f)之中,k=1,2,…,N。3.進行FFT反變換,就可以獲得沖激響應(yīng)[時域采樣率為Ts=1/(N△f)]。4.如果必要的話,對沖激響應(yīng)進行加窗(確保沖激響應(yīng)作了合適旋轉(zhuǎn),且位于窗函數(shù)中心)。對加窗后的沖激響應(yīng)進行歸一化以便獲得單位能量。103目前一百零三頁\總數(shù)一百二十一頁\編于十一點在得到截短的沖激響應(yīng)之后,可以使用參數(shù)為a=1,b=h的MATLAB函數(shù)filter來仿真濾波器,這里h是沖激響應(yīng)陣列,即可以通過使用output=filter(b,a,input)獲得濾波器的輸出信號。若輸入序列相當(dāng)長,如前所述,則輸出信號可以通過使用output=fftfilt(b,input,N)來獲得,這里使用疊加法分塊實現(xiàn)FIR濾波器,分塊大小為N。接下來的MATLAB例子表明如何仿真一個衛(wèi)星通信中使用的125MHz的帶通信道濾波器。數(shù)據(jù)的測量特性由幅度響應(yīng)和時延特性給出(見附錄C)。104目前一百零四頁\總數(shù)一百二十一頁\編于十一點例5-11采用前面討論的方法進行FIR濾波器設(shè)計的MATLAB程序包含在附錄C中。作為設(shè)計基礎(chǔ)的測量數(shù)據(jù)也包含在附錄C中(表5-4和表5-5),所得結(jié)果如圖5-17和圖5-18所示,圖5-17給出了加窗的和未加窗的沖激響應(yīng),圖5-18給出了加窗的和未加窗的幅度響應(yīng)。加窗的和未加窗的響應(yīng)分別畫在兩張圖上,因為它們彼此很相近,畫在一起就難以區(qū)分開來。這兩個幅度響應(yīng)的唯一顯著區(qū)別就在采樣序數(shù)值位于150到200附近的平坦區(qū)域處。采用漢明窗得到的響應(yīng),其衰減略大?!?05目前一百零五頁\總數(shù)一百二十一頁\編于十一點圖5-17沖激響應(yīng)(未加窗的和加窗的)106目前一百零六頁\總數(shù)一百二十一頁\編于十

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論