數字信號處理
第一章 1.1、產生周期為4的三角脈沖波,其中t是時間數組,T是周期,利用MatLab實現波形,并進行作圖 解 >> T=16;t=-2.5*T:0.01:2.5*T; x=sawtooth(t-2*T/4,0.5); plot(t,x) title('三角脈沖波T=4') axis([-20,20,-2,2]) 圖 1.2 1.2、單位脈沖序列 在MatLab 中,這一函數可以用zeros 函數實現、并進行作圖: 解: >> n=1:50; x=zeros(1,50); x(1)=1; close all; subplot(3,1,1);stem(x);title('張鵬飛制作單位沖擊信號序列'); k=-25:25; X=x*(exp(-j*pi/12.5)).^(n'*k); magX=abs(X); subplot(3,1,2);stem(magX);title('張鵬飛制作單位沖擊信號的幅度譜'); angX=angle(X); subplot(3,1,3);stem(angX) ; title ('張鵬飛制作單位沖擊信號的相位譜') 圖 1.3
1.3、產生階躍序列 解 >> T=5;t=-2*T:3*T; x=1/2+1/2.*sign(t); stem(t,x) title('張鵬飛制作單位階躍序列') axis([-10,15,-0.2,1.5])
圖 1.4 1.4、用DFT計算x(t)=cos(2∏(0.4)t)+ cos(2∏(0.45)t)的頻譜 解: >> T0=20;N=32;T=T0/N;A=2*pi*(0.4);B=2*pi*(0.45); t=0:T:T0; x=cos(B*t)+cos(C*t); X=1/N*fft(x,N); f=1/T/N*(-N/2:(N/2-1));%N,f=1/T/N*(-(N-1)/2:(N-1)/2); subplot(2,1,1);stem(f,abs(fftshift(X))); xlabel('Frequency(Hz)');ylabel('magnitude'); subplot(2,1,2);stem(f,angle(fftshift(X))); xlabel('Frequency(Hz)');ylabel('phase'); 圖 1.4 設計理論分析方法 連續時間信號的時域分析就是將不同形式的信號波形用不同的時間函數來描述。 任一信號可以在時域對其進行分析和描述,利用傅立葉變換理論也可以對其進行頻域分析,以便更好地對信號進行存儲,傳輸和處理,達到提取有用信號的目的。利用傅立葉變換的分析方法,找出與信號時域信號波形相對應的頻譜函數的幅度、相位以及能量或功率的分布規律。 設計結論及其分析 如上述例題,連續時間信號通過CTFS分解為不同諧波成分的三角函數或指數函數之和,連續非周期信號分解為頻率無限密集的虛指數函數的線性組合,在時域還可以把實信號分解為奇函數與偶函數之和。 DFT變換對在時域、頻域都是離散的,可以通過計算機實現數值運算。必須對連續信號進行離散化,進行頻譜分析時,參數的選擇主要滿足時域抽樣定理、頻域采樣定理,依據時域、頻域能量分布情況,恰當地選擇實域取樣間隔T和取樣長度L, 設計技術參數 CTFS ICTFS DFT DFS DTFT FFT 和MATLAB各函數參數
思考題: 1、既然可以直接計算CTFT,為什么利用DFT分析連續信號頻譜? 答:DFT是對有限長FT的有限點取樣,開辟了頻域離散化的道路,使數字信號在頻域能進行數字運算。 2、若信號持續時間無限,且無解析表達式,如何利用DFT分析其頻譜? 答:先對連續信號進行采樣,得到采樣信號,然后對采樣信號進行頻譜分析 3、在利用DFT分析連續信號頻譜時,會出現哪些誤差?如何克服或減少? 答:(1)混疊。在采樣前預濾波,濾除高于折疊頻率。 (2)柵欄效應。在序列尾部補0。 (3)截斷效應 4、如何選擇取樣頻率? 答:為不產生頻率混疊失真,應采樣頻率大于2倍的最高截止頻率,即Fs>2Fh. 5、討論補0對計算結果的影響? 答:改變序列長度N,增加頻率采樣點數和采樣點位置,使原來漏掉的某些頻譜分量被檢測出來。
第二章 (一) IIR數字濾波器的設計 1.1 已知:設計線性相位帶通濾波器,其長度N=15,上下邊帶截止頻率分別為W1= 0.3 π,w2=0.5 π 設計指標為:ωp=0.2 π Rp=0.25dB ωa=0.3 π As=50dB IIR 數字濾波器 解:
>> Window=hamming(16); b=fir1(15,[0.3 0.5],Window); freqz(b,1) wp=0.2*pi;ws=0.3*pi; tr_width=ws-wp; M=ceil(6.6*pi/tr_width)+1; N=0:1:M-1; wc=(ws+wp)/2; hd=ideal_lp(wc,M); w_ham=(boxcar(M))'; h=hd.*w_ham; [db,mag,pha,grd,w]=freqz_m(h,1); delta_w=2*pi/1000; Rp=-(min(db(1:1:wp/delta_w+1))); As=-round(max(db(ws/delta_w+1:1:501))); Close all; subplot(2,2,1);stem(hd);title('理想沖擊響應') axis([0 M-1 -0.1 0.3]);ylabel('hd[n]'); subplot(2,2,2);stem(w_ham);title('漢明'); axis([0 M-1 0 1.1]);ylabel('w[n]'); subplot(2,2,3);stem(h);title('實際沖擊響應'); axis([0 M-1 -0.1 0.3]);ylabel('h[n]'); subplot(2,2,4);plot(w/pi,db); title('衰減響應'); axis([0 1 -100 10]);ylabel('Decibles');
圖 4.1 1.2 現有一個信號:x(n)=1+cos(π*n/4)+ cos(2*π*n/3)設計: IIR低通濾波器,濾除cos(2*π*n/3) 的成分,即想保留的成分為1+cos(π*n/4) 解: >> omegap=pi/4;Apmax=3; omegar=2/3*pi;Armin=50; T=5*pi*10^(-6); wp=[omegap/pi];wr=[omegar/pi]; [N,wc]=buttord(wp,wr,Apmax,Armin,'s'); [b,a]=butter(N,wc,'low'); sysl=tf(b,a) w=linspace(0,2*pi,500); h=freqz(b,a,w); length(h) mag=fftshift(20*log10(abs(h))); n=0:23; x=1+cos(pi/4*n)+cos(2*pi/3*n); X=fft(x,500); X1=fftshift(X); omega=2*pi/500*([0:499]); Y=fftshift(X.*h); title('原信號'); ylabel('幅度');xlabel('頻率'); subplot(3,1,1);plot(omega,abs(X1));axis([0,2*pi,0,35]); title('濾波器幅頻響應'); ylabel('Gain(dB)');xlabel('Frequency(rad)'); subplot(3,1,2);plot(w,mag);axis([0,2*pi,-100,5]); subplot(3,1,3); plot(omega,abs(Y));axis([0,2*pi,0,25]); 圖 4.2 設計理論分析方法 設計IIR數字濾波器的方法有間接法、直接法和計算機輔助法等。設計IIR數字濾波器的任務就是尋求一個因果、物理可實現的系統函數H(z),使它的頻響H(ejw)滿足所希望得到的低通頻域指標,即通帶衰減A p,阻帶衰減A r,通帶截頻Wp,阻帶截頻Wr。采用間接法設計IIR數字濾波器就是給定的指標,先設計一個模擬濾波器,進而通過模擬域與數字域的變換,求得物理可實現的濾波器。有脈沖響應不變法和雙線性變換法。 這里常用的是根據頻響指標,設計出相應的模擬濾波器H(s),再通過脈沖響應不變法或雙線性法轉換成數字濾波器H(z)。其過程如圖: 雙線性不變法
脈沖響應不變法
設計結論及其分析 脈沖響應不變法由于保持了模擬濾波器的沖擊響應在取樣時刻的取樣值,所以具有較好的時間性。但由于從模擬域變換到數字域的映射關系不是一一對應的關系,因而頻譜混疊難以避免,所以實際應用中有它的局限性。 雙線性變換法克服了脈沖響應不變法存在頻譜混疊的缺點,但在設計過程中一定要注意,由于寬頻帶壓縮到較窄的頻率范圍,導致了頻率畸變。 設計技術參數 A p A r Wp Wr Buttord Butterworth
(二) FIR數字濾波器的設計 4.1、 利用窗函數法設計FIR數字濾波器,指標為: ej2w -∏/4<=w<=∏/4 H(ejw)={ 0 ∏/4<=w<=∏ 解: >> M=600;n=0:M;omegac=2; hd=omegac/pi.*sinc(omegac/pi*(n-M/2)); stem([0:M],hd); h1=hd; H1=fft(h1,512); H1_db=20*log10(abs(H1)); w=0.54-0.46.*cos(2*pi*n./M); stem([0:M],w); h2=hd.*w; H2=fft(h2,512); H2_db=20*log10(abs(H2)); omega=0:pi/255:pi; c=plot(omega,H1_db(1:256),omega,H2_db(1:256),'r'); title('FIR數字低通濾波器') 圖 4.3
設計理論分析方法 FTR濾波器具有線性相位的特點,設計核心是求出有限的脈沖響應來逼近給定的頻響,常用的設計方法有窗函數發和頻率取樣法。 設計結論及其分析 通過把理想濾波器的無限長脈沖響應乘以窗函數來產生一個被截短的脈沖響應。 設計技術參數 矩形窗 漢寧窗 漢明窗 思考題: 1、 做出該信號通過濾波器的響應并與做比較兩者一致嗎?原因是什么? 答:不一致。因為在數字濾波器設計過程中要經過頻域變換,若頻域響應不變會出現頻域混疊,若用雙線性法會出現頻率關系非線性,都會使設計的濾波器與理想的濾波器存在誤差,同時設計過程中取得的階次,所滿足的技術指標的程度都有影響。 2、 IIR濾波器的優缺點是什么? 答:無法實現嚴格的線性相位,且其反饋有時會造成系統的不穩定。但設計簡單一般來說頻率選擇性越好相位的非線性越嚴重。 3、 窗口法和頻率取樣法的優缺點是什么 ? 答:IIR的極點可在單位圓的任何地方,可用較低的階數獲高的選擇,有優良的幅度特性,但是相位是非線性的。 4、 脈沖響應不變法和雙線性變化法各有什么特點? 答:脈沖響應不變法是數字的單位脈沖響應序列模仿模擬濾波器的沖擊響應,讓前者正好與后者的采樣值相等。由于頻域混疊效應,脈沖響應不變法是用于帶限的濾波器設計,高通和帶阻不予采用脈沖響應不變法,否則要加保護濾波器濾掉高于折疊頻率即上的分量。對于帶通和低通濾波器,要充分的帶限,阻帶衰減越大則混疊效應越小。 雙線性變化法:可克服第一種方法的缺點——頻率失真,可以從穩定的模擬濾波器獲得穩定的數字濾波器,其代價是在頻率軸上引入了失真。
第三章 隨機信號功率譜估計
5.1 某隨機信號由兩余信號與噪聲構成: X(t)=cos(20∏t)+cos(40∏t)+s(t),s(t)為均值為0,方差為1的高斯白噪聲。 試分別用周期圖法、平均周期圖法分析該序列功率譜估計 解: >> Fs=1000; n=0:1/Fs:1; xn=cos(2*pi*20*n)+cos(2*pi*20*n)+randn(size(n)); Pxx=abs(fft(xn,1024)).^2/1001; subplot(2,2,1);plot(n,xn);xlabel('隨機信號'); grid on; subplot(2,2,2);plot([0:1023]*Fs/1024,10*log10(Pxx)),xlabel('利用公式'); grid on; window=hamming(1001); [Pxx1,F1]=periodogram(xn,window,1024,Fs); subplot(2,2,3);plot(F1,10*log10(Pxx1)),xlabel('利用函數periodogram'); grid on; noverlap=500; [Pxx2,F2]=psd(xn,1024,Fs,window,noverlap); subplot(2,2,4);plot(F2,10*log10(Pxx2)),xlabel('利用函數psd'); grid on; 圖 5.1 設計理論分析方法 數字濾波器的任務就是尋求一個因果、物理可實現的系統函數H(z),使它的頻響H(ejw)滿足所希望得到的低通頻域指標,即通帶衰減A p,阻帶衰減A r,通帶截頻Wp,阻帶截頻Wr。 先找到數字技術指標通帶衰減A p,阻帶衰減A r,通帶截頻Wp,阻帶截頻Wr。然后變換成模擬技術指標,再把帶通技術指標變換成低通技術指標,設計出一個模擬低通濾波器后再變換成數字帶通濾波器。 設計結論及其分析 采用巴特沃斯設計數字帶通濾波器其相位是非線性的,而且其圖樣隨采樣點的不同而變化,通帶單調下降,使得系統的誤差分布不均勻,這種濾波器具有非線性的相頻濾波器 思考題 1、利用平均周期圖法估計信號的功率譜,選用不同窗函數有什么變換
2、利用經典法AR模型參數發分別進行功率譜估計,結果有什么不同?
3、在AR模型參數發估計功率譜時,使用不同懂得模型階數將會導致估計的功率譜有什么不同? |
|