濾波器模型與仿真演示文稿_第1頁
濾波器模型與仿真演示文稿_第2頁
濾波器模型與仿真演示文稿_第3頁
濾波器模型與仿真演示文稿_第4頁
濾波器模型與仿真演示文稿_第5頁
已閱讀5頁,還剩115頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

假設數字濾波器的單位沖激響應,除了幅度比例有差別外,等于模擬濾波器沖激響應的采樣,這樣的數字濾波器就稱為模擬濾波器的沖激不變實現。也就是說,該數字濾波器的傳遞函數可定義為現在是35頁\一共有120頁\編輯于星期四這里L-1(·)表示拉普拉斯反變換,Z(·)表示z變換,Ha(s)表示模擬原型的傳遞函數,T表示采樣周期,同時還是幅度比例系數。為了闡明沖激不變方法,這里考慮最簡單的模擬濾波器,即注意,這是一個一階低通濾波器,其直流增益(f=0)為1。例5-2由式(5-17),首先對Ha(s)進行拉普拉斯反變換。由此得到如下沖激響應:現在是36頁\一共有120頁\編輯于星期四其中,U(t)為單位階躍函數,表示所得的濾波器是因果的。在進行z變換之前,要對沖激響應在采樣時刻t=nT進行采樣,于是有Ha[n]的z變換為進行求和并乘上采樣周期得:此即式(5-18)的沖激不變等價。該濾波器的頻域特性分析將在例5-5中探討。■現在是37頁\一共有120頁\編輯于星期四(二)階躍不變濾波器階躍不變濾波器常用于仿真系統中。對階躍不變濾波器而言,數字濾波器的單位階躍響應等價于模擬濾波器階躍響應的采樣。模擬濾波器階躍響應的頻域表示式為Ha(s)/s,其階躍不變濾波器的傳遞函數如下:注意,式(5-23)左邊是傳遞函數為H(z)的數字濾波器對采樣后的單位階躍信號的響應,式(5-23)右邊表示原型模擬濾波器單位階躍響應采樣的z變換。現在是38頁\一共有120頁\編輯于星期四例5-3在這個例子中,再次采用(5-18)式作為模擬原型。這個模擬原型的階躍響應如下:使用部分分式展開可得取拉普拉斯反變換,并在t=nT采樣得現在是39頁\一共有120頁\編輯于星期四再進行z變換得階躍不變數字濾波器的傳遞函數為:將上式寫成式(5-3)定義的標準形式有該濾波器的頻域特性分析將在例5-5中探討。所得結果將與沖激不變法的結果進行比較。■現在是40頁\一共有120頁\編輯于星期四(三)雙線性z變換濾波器雙線性z變換濾波器可能是仿真程序中使用最普遍的濾波器了,這有幾方面的原因。首先,采用雙線性z變換方法的數字濾波器綜合很直觀并且完全是代數形式的。另外,可以看到雙線性z變換不會表現出混疊現象。綜合方法雙線性z變換綜合方法采用簡單的代數變換,將模擬原型Ha(s)映射為一個數字濾波器。具體來說,該數字濾波器的傳遞函數H(z)定義為現在是41頁\一共有120頁\編輯于星期四這里C為常數。下文很快會討論確定合適的C所用的方法,因為Ha(s)通常定義為s的多項式之比,式(5-31)定義的代數映射剛好給出H(z)的合適形式,z-1的多項式之比。如上節所討論,就得到了該濾波器的實現。為了說明所得數字濾波器的傳遞函數具有理想的屬性,使用exp(SdT)來替換雙線性Z變換中的變量z,這里Sd是數字濾波器的復頻域變量,得:用j2fa替換s,用j2fd替換sd,有現在是42頁\一共有120頁\編輯于星期四這定義了原型模擬濾波器和所得數字濾波器的頻率響應之間關系。調節C值使得對任意采樣頻率都有fa=fd的方法稱為預畸變。fa和fd之間的變換關系很顯然是非線性的。在建立通信系統和其他類型系統仿真模型的過程中,通常都希望在將模擬濾波器映射成其數字等價時保持傳遞函數的形狀不變,這包括幅度及相位均不變。而保持傳遞函數形狀不變,要fa和fd之間的轉換關系盡可能為線性。由于當x很小的時候,tan(x)=x,近似線性變換要求fdT<<1或現在是43頁\一共有120頁\編輯于星期四這里fd落在我們感興趣的頻率范圍內,而fs是采樣頻率。滿足fd≈fa的近似線性關系所需C值,也很容易確定。線性關系要求若還要求fd≈fa,則有不幸的是,通常需要非常高的采樣頻率,才能夠使fd≈fa在一定的頻率范圍內(比如濾波器的帶通頻率范圍)。但這通常會導致仿真運行時間是不現實的。現在是44頁\一共有120頁\編輯于星期四例5-4為了說明雙線性Z變換綜合方法,這里再次使用式(5-18)定義的簡單一階模擬原型。根據定義,雙線性Z變換濾波器的傳遞函數:現在是45頁\一共有120頁\編輯于星期四例5-5這個例子將對前面三個例子中設計的三種濾波器的響應進行比較。假設采樣頻率為100Hz(T=O.Ols),參數a為2×10,從而使模擬濾波器的3dB頻率為lOHz。作了以上假設后可以得因此,從式(5-22)得,沖激不變濾波器的傳遞函數為:從式(5-30)得,階躍不變濾波器的傳遞函數為:現在是46頁\一共有120頁\編輯于星期四下面將給出雙線性Z變換濾波器的兩種形式。第一種,如果不采用頻率預畸變,那么模擬濾波器原型與對應數字濾波器的幅度響應在低頻段非常吻合,有將C,a的值代入式(5-41),得現假設選擇C值,使得頻率響應在模擬濾波器的3dB頻率處相匹配。在這種情況下有現在是47頁\一共有120頁\編輯于星期四現假設選擇C值,使得頻率響應在模擬濾波器的3dB頻率處相匹配。在這種情況下有現假設選擇C值,使得頻率響應在模擬濾波器的3dB頻率處相匹配。在這種情況下有現在是48頁\一共有120頁\編輯于星期四采用下面的MATLAB代碼可以產生沖激不變濾波器、階躍不變濾波器,以及由式(5-47)所定義的第一個雙線性Z變換濾波器的幅度響應。%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.現在是49頁\一共有120頁\編輯于星期四運行結果如圖5-5所示。注意,階躍不變濾波器和雙線性Z變換濾波器都具有單位直流增益。由于混疊的影響,沖激不變濾波器的直流增益比1大許多。同時也要注意到,雙線性z變換濾波器在奈奎斯特頻率(fs/2)處存在一個零點,這是因為對應的模擬原型在f=∞處有一個零點,而這個零點在雙線性之變換時被映射到了奈奎斯特頻率處。■現在是50頁\一共有120頁\編輯于星期四圖5-5幅度響應比較圖現在是51頁\一共有120頁\編輯于星期四例5-6在前面各例子中開發的濾波器僅基于一個非常簡單的一階原型,而且ak和bk的值不必利用計算機輔助就能確定。在這個例子中,考慮一個五階橢圓濾波器,具有1dB通帶波紋和一個最小20dB的阻帶衰減。雖然肯定可以采用前面例子討論的分析方法來確定濾波器系數,但是由于模擬原型傳遞函數的復雜性,這樣做相當費力。不過,MATLAB信號與系統工具箱中具有大量的數字濾波器綜合工具,其中就有沖激不變和雙線性z變換數字濾波器設計的子程序。進行五階橢圓濾波器綜合設計的MATLAB代碼如下頁示:現在是52頁\一共有120頁\編輯于星期四%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') %labelyaxis現在是53頁\一共有120頁\編輯于星期四注意這里產生了四種頻率響應。首先產生了模擬原型的幅度響應,作為比較的基礎。其次產生了沖激不變數字濾波器的幅度響應,并與模擬原型的幅度響應畫在一起。最后綜合產生了兩種雙線性z變換數字濾波器,一種采用頻率畸變而另一種未采用頻率畸變,把它們畫在一起,用來說明頻率畸變的影響。在圖5-6中比較了模擬原型、沖激不變濾波器和兩種雙線性z變換的幅度響應,這里把它們分別畫在兩張圖中以避免混亂。上方的圖對模擬原型和沖激不變數字濾波器的幅度響應進行了比較。注意,除了帶寬,兩者差別很大,原因在于混疊誤差。橢圓濾波器存在明顯的混疊誤差,因為它的阻帶特性使得其模擬原型的幅度響應不是帶限的,這一點,從濾波器的通帶和阻帶的幅度都有所升高就可以看出。現在是54頁\一共有120頁\編輯于星期四圖5-6幅度響應的比較現在是55頁\一共有120頁\編輯于星期四上頁的圖表明雙線性之變換綜合方法的性能要好得多。如果沒有使用頻率畸變的話,截止頻率就會像預計的一樣,從20Hz降低到18Hz左右。將數字濾波器的截止頻率預畸變到模擬原型的截止頻率,就可以在大部分頻率范圍內使幅度響應與模擬原型的幅度響應很好地匹配。然而,它們之間有一個明顯的差別。在奈奎斯特頻率(fs/2=50Hz)處,模擬原型的幅度響應是0.1,對應于20dB衰減,而雙線性之變換數字濾波器的幅度響應為0(-∞dB)。模擬濾波器在f=∞處有一個零點,經過雙線性之變換以后,這個零點被映射到了奈奎斯特頻率處。■現在是56頁\一共有120頁\編輯于星期四特殊情況:梯形積分法梯形積分法是一種重要的積分算法,經常用于仿真程序中。通常,離散時間積分由如下的表達式定義:這里y[n]和y[n-1]分別表示積分器在序數n以及n-1時的輸出信號,△(n-1,n)表示在時間增量(n-1)T<t≦nT區間內加到積分上的增量面積。增量面積如圖5-7所示,其值如下現在是57頁\一共有120頁\編輯于星期四對式(5-54)兩邊進行z變換,可得梯形積分器的傳遞函數,結果如下:如果基于雙線性z變換綜合方法設計一種積分算法,其結果為或者,由于積分運算等價于除以s,于是有現在是58頁\一共有120頁\編輯于星期四圖5-7梯形積分法現在是59頁\一共有120頁\編輯于星期四上式與式(5-55)表示的梯形積分法完全相同。對應于梯形積分法的轉置直接II型實現的信號流圖如圖5-8所示。注意到除了有一個幅度比例系數T/2之外,所有乘法全部是單位型的。其MATLAB仿真代碼也示于圖5-8中。可以看到,這里的延時也是通過狀態w1和w2的計算順序來實現的。梯形積分法只是用于仿真程序的眾多不同積分算法中的一種。有了多種不同的算法,我們就能夠在速度/性能方面進行各種折中。現在是60頁\一共有120頁\編輯于星期四(四)IIR數字濾波器的計算機輔助設計過去數十年來,人們已經為IIR和FIR數字濾波器開發了多種計算機輔助設計方法。FIR方法比IIR方法得到了更為廣泛的應用,但是由于IIR方法能給出較小型的結構(較少的延時單元),它有時也能派上用場。計算機輔助設計方法的一個優點在于:無須等價模擬原型就可以開發數字濾波器;另外,使用計算機輔助設計,也便于快速而系統地研究實現中的折中,比如在復雜度(要求的系數個數)和精度(實際與目標幅度響應之間的誤差)。現在是61頁\一共有120頁\編輯于星期四開發IIR濾波器常用的一個方法是:通過調整濾波器系數來獲得期望響應的最佳擬合。在最常用的方法中,人們指定理想的濾波器特性,一般是期望濾波器的幅度響應以及濾波器的階數N,這導致了一個帶約束的最優化問題,其中階數N為約束,目標是根據最小均方誤差準則確定最佳擬合。下面舉一個例子進行說明。例5-7我們將設計一個信道濾波器,具有如圖5-9所示特性。注意到這個濾波器通過兩個信道,其中只有一個轉換為直流。還注意到圖5-9中的頻率根據奈奎斯特頻率(采樣頻率的一半)進行了歸一化。根據這個歸一化后頻率fN=l/(fs/2),濾波器幅度響應可定義為現在是62頁\一共有120頁\編輯于星期四上面Ad(f)的表達式中未包含的三個頻帶是過渡頻帶,在圖5-9中以深黑色區域標識出來。現在是63頁\一共有120頁\編輯于星期四設計這個濾波器的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.我們注意到,本例產生了一個20階濾波器,使得H(z)的分子及分母多項式都是z-1的20次多項式,這個程序的運行結果如圖5-10所示。注意這里的阻帶衰減約為30dB或者更高。對通帶進行了合理的整形處理,通帶上的相位響應也近似為線性的。要判斷這個濾波器是否為式(5-58)所定義理想響應的滿意近似,可能需要對使用該濾波器的系統進行仿真。增加濾波器階數可以減小近似誤差,但是代價是提高了復雜度,從而增加了仿真程序的運行時間。■現在是64頁\一共有120頁\編輯于星期四圖5-10-1IIR濾波器的計算機輔助設計結果(20階)現在是65頁\一共有120頁\編輯于星期四圖5-10-2IIR濾波器的計算機輔助設計結果(40階)現在是66頁\一共有120頁\編輯于星期四(五)IIR濾波器的誤差源本節我們總結一下使用IIR濾波器近似模擬濾波器的方法所帶來的誤差源。我們已經看到誤差源取決于所采用的綜合方法,而在仿真中采用很高的采樣頻率,就可以在很大程度上減小這些誤差,但是過高的采樣頻率將不必要地增加仿真程序的運行時間。跟往常一樣,仿真采樣頻率的選擇同樣涉及到在精度和仿真程序運行時間兩者間進行折中。誤差源小結如表5-1現在是67頁\一共有120頁\編輯于星期四五、FIR濾波器:綜合技術與濾波器特性如果一個濾波器的沖激響應是有限長的,或者已將無限長沖激響應截短為有限長的,則離散時域的濾波器輸出信號可表示為采用標準DSP表示法,可寫為:或寫成Z變換形式現在是68頁\一共有120頁\編輯于星期四定義FIR數字濾波器的式(5-60),是模擬(連續時間)濾波器卷積積分的離散形式。注意到式(5-60)、式(5-61)和式(5-1)、式(5-3)在ak=0,k1時定義的濾波器模型是相同的。濾波器為FIR(有限時間沖激響應),是因為它的沖激響應h[n]至多只有N+1個非零項,因為k≥1時ak=0,FIR濾波器沒有反饋通道。式(5-60)所定義的時域卷積運算可以用MATLAB函數filter進行仿真。FIR濾波器的優點:

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

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

4.FIR濾波器沒有反饋,因此總是穩定的。現在是70頁\一共有120頁\編輯于星期四FIR仿真模型的缺點:那就是它的計算效率不如IIR濾波器實現的高。直接實現式(5-60)定義的卷積運算,產生一個輸出采樣點就需要進N次(復數)乘法和加法運算,如果沖激響應非常長,比如說N>1024點的話,FIR算法運行起來比典型的IIR濾波器算法要慢得多。對于IIR濾波器而言,產生一個輸出采樣點需要的加法和乘法運算的次數是由濾波器的階數決定的,而不同于FIR濾波器,由沖激響應的長度決定。

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

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

現在是71頁\一共有120頁\編輯于星期四

2.如果輸入序列很長,通常把輸入序列分成幾個較小的互不重疊的子塊,并對每個輸入子塊分別進行卷積,以得到對應的輸出子塊,然后將這些輸出子塊進行適當的交疊再相加,就得出總的輸出。如果輸入子塊的長度相對較短,比如說少于128個采樣點,輸出子塊通常可以采用“單觸發”方式來計算。要不然,則推薦使用疊加的方法。可以使用MATLAB函數fftfilt來實現基于DFT/FFT疊加法的卷積。

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

1.頻域的“窄主瓣”包含大多數能量。2.小旁瓣。最常用的窗函數有矩形窗、漢明窗以及Kaiser窗。選擇窗函數的時候,應該在加窗引起的信號失真和計算量之間進行折中考慮。現在是74頁\一共有120頁\編輯于星期四(一)根據幅度響應進行的設計

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

例5-8在這個例子中我們設計一個數字低通濾波器,來近似一個帶寬為fN=fs/2的理想數字濾波器,這里fN為奈奎斯特頻率,fs為采樣頻率,是介于0和1之間的一個參數。因此,期望的幅度響應為現在是80頁\一共有120頁\編輯于星期四從式(5-73)有由于fsT=1,式(5-76)可以改寫為:注意,這里h1[0]=h[L]=下述代碼中,我們采用的L=30,=0.3。注意,為了防止當m=0時出現不確定形式,在序數m中加上了eps。將沖激變成因果的所要求的L=30個采樣點的平移,是利用MATLAB對向量序數進行操作的方式來完成的。現在是81頁\一共有120頁\編輯于星期四%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.現在是82頁\一共有120頁\編輯于星期四MATLAB程序產生的第一個輸出信號是沖激響應,如圖5-11所示。注意,跟先前確定的一樣,h[30]=0.3。同時也注意,所得沖激響應關于m=L=30處的中心是偶對稱的。用MATLAB命令freqz產生FIR濾波器的幅度響應和相位響應,再用默認的畫圖模式畫出,如圖5-12所示。跟預計的一樣,所得濾波器具有線性相位響應,因為沖激響應關于其中心偶對稱。線性相位平移操作(定常群時延)得自于將沖激響應平移L個采樣點而使濾波器具有因果性。幅度響應的符號變換會在阻帶范圍內導致鋸齒狀的相位響應。

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

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

溫馨提示

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

評論

0/150

提交評論