第一篇:數(shù)字信號處理實(shí)驗(yàn)4
實(shí)驗(yàn)四 離散時(shí)間信號的 DFT
1.加深對離散時(shí)間信號的 DFT 的理解和應(yīng)用。
2.掌握 DTFT 和 DFT 之間的相互關(guān)系。
1.微機(jī)。
2.Matlab 編程環(huán)境。
1.熟悉 Matlab 的編程環(huán)境和編程語言。
2.學(xué)習(xí)教材 P149-172,P202-207,掌握離散傅里葉變換(DFT)的原理。
1.實(shí)驗(yàn)重點(diǎn)、難點(diǎn)、特點(diǎn)
離散傅里葉變換(DFT)的原理及應(yīng)用。難點(diǎn)在 DFT 的應(yīng)用。
2.實(shí)驗(yàn)原理
離散時(shí)間信號的 DFT:
1.編寫 DFT 的函數(shù)文件并存盤,以便調(diào)用。
function [Xk,k]=dft_my(xn,N)k=0:1:N-1;n=0:1:N-1;%Xw=xn*(exp(-j*pi/500)).^(n'*k);Xk=[xn,zeros(1,N-length(xn))]*(exp(-1i*2*pi/N).^(n'*k));
2.調(diào)用 DFT 的函數(shù)文件,分別編程計(jì)算 16 點(diǎn)序列
的 N=16 點(diǎn)和 N=32 點(diǎn)的 DFT。分別繪出該序列 N=16 點(diǎn)和 N=32 點(diǎn)的 DFT 的幅度響應(yīng)和相位響應(yīng)曲線。要求畫在一頁上,以便比較。
n=0:1:15;N1=16;N2=32;xn=cos(5*pi/16*n);[xw,w]=DTFT_mf(xn,n);[xk1,k1]=dft_my(xn,N1);[xk2,k2]=dft_my(xn,N2);
一、實(shí)驗(yàn)?zāi)康?/p>
二、實(shí)驗(yàn)儀器設(shè)備
三、實(shí)驗(yàn)學(xué)時(shí) 學(xué)時(shí)
四、預(yù)習(xí)要求
五、實(shí)驗(yàn)特點(diǎn)及實(shí)驗(yàn)原理簡介
六、實(shí)驗(yàn)內(nèi)容及步驟 subplot(2,3,1);stem(n,xn);grid on;xlabel('n');ylabel('x(n)');title('待變換序列');subplot(2,3,2);hold on;plot(w*N1/2,abs(xw));grid on;stem(k1,abs(xk1),'r');legend('DTFT','DFT');xlabel('w,k');ylabel('|xw|,|xk1|');title({'16點(diǎn)DFT','幅頻響應(yīng)'});subplot(2,3,5);hold on;plot(w*N1/2,angle(xw));grid on;stem(k1,angle(xk1),'r');legend('DTFT','DFT');xlabel('w,k');ylabel('Φ(xw),Φ(xk1)');title('相頻響應(yīng)');subplot(2,3,3);hold on;plot(w*N2/2,abs(xw));grid on;stem(k2,abs(xk2),'r');legend('DTFT','DFT');xlabel('w,k');ylabel('|xw|,|xk2|');title({'32點(diǎn)DFT','幅頻響應(yīng)'});subplot(2,3,6);hold on;plot(w*N2/2,angle(xw));grid on;stem(k2,angle(xk2),'r');legend('DTFT','DFT');xlabel('w,k');ylabel('Φ(xw),Φ(xk2)');title('相頻響應(yīng)');
1.不同的 N 值得出的 DFT 的幅度譜一樣嗎?為什么?解釋原因。
七、問題思考
2.高分辨率譜可以通過增大 N 得到嗎?為什么?
3.與實(shí)驗(yàn)三進(jìn)行比較,討論 DTFT 和 DFT 之間的相互關(guān)系,說明實(shí)驗(yàn)產(chǎn)生現(xiàn)象的原因。
八、心得體會
第二篇:數(shù)字信號處理實(shí)驗(yàn)講稿
邯 鄲 學(xué) 院
講 稿
2010 ~2011 學(xué)年 第 一 學(xué)期
分院(系、部): 信息工程學(xué)院 教 研 室: 電子信息工程 課 程 名 稱: 數(shù)字信號處理
授 課 班 級: 07級電子信息工程
主 講 教 師: 王苗苗 職
稱:
助教(研究生)
使 用 教 材: 《數(shù)字信號處理》
制 作 系 統(tǒng):
Word2003
邯鄲學(xué)院制
實(shí)驗(yàn)一..Matlab仿真軟件介紹
一、實(shí)驗(yàn)?zāi)康?/p>
熟悉Matlab仿真軟件
二、實(shí)驗(yàn)設(shè)備和元器件
含Matlab仿真軟件的計(jì)算機(jī)
三、實(shí)驗(yàn)內(nèi)容和步驟
1、學(xué)習(xí)Matlab仿真軟件的安裝
2、熟悉Matlab仿真軟件的操作環(huán)境
3、直接在Matlab仿真軟件的命令窗口實(shí)現(xiàn)數(shù)值計(jì)算
4、編寫M文件
四、實(shí)驗(yàn)報(bào)告要求
按照《Matlab程序設(shè)計(jì)》模板提交實(shí)驗(yàn)報(bào)告
五、預(yù)習(xí)要求
1、熟悉Matlab仿真軟件
2、參閱Matlab及在電子信息類課程中的應(yīng)用(第2版)唐向宏 電子工業(yè)出版社
實(shí)驗(yàn)二 離散信號和系統(tǒng)分析的Matlab實(shí)現(xiàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1、Matlab實(shí)現(xiàn)離散信號和系統(tǒng)分析
2、進(jìn)一步熟悉Matlab軟件操作
二、實(shí)驗(yàn)設(shè)備和元器件
含Matlab仿真軟件的計(jì)算機(jī)
三、實(shí)驗(yàn)內(nèi)容和步驟
1、利用Matlab產(chǎn)生離散信號
2、利用Matlab計(jì)算離散卷積
3、利用Matlab求解離散LTI系統(tǒng)響應(yīng)
4、利用Matlab計(jì)算DTFT
5、利用Matlab實(shí)現(xiàn)部分分式法
6、利用Matlab計(jì)算系統(tǒng)的零極點(diǎn)
7、利用Matlab進(jìn)行簡單數(shù)字濾波器設(shè)計(jì)
四、實(shí)驗(yàn)報(bào)告要求
按照《Matlab程序設(shè)計(jì)》模板提交實(shí)驗(yàn)報(bào)告
五、預(yù)習(xí)要求
預(yù)習(xí)課本上的相關(guān)內(nèi)容
實(shí)驗(yàn)三 利用Matlab實(shí)現(xiàn)信號DFT的計(jì)算
一、實(shí)驗(yàn)?zāi)康?/p>
1、Matlab實(shí)現(xiàn)信號DFT的計(jì)算
2、進(jìn)一步熟悉Matlab軟件操作
二、實(shí)驗(yàn)設(shè)備和元器件
含Matlab仿真軟件的計(jì)算機(jī)
三、實(shí)驗(yàn)內(nèi)容和步驟
1、利用Matlab計(jì)算信號的DFT
2、利用Matlab實(shí)現(xiàn)由DFT計(jì)算線性卷積
四、實(shí)驗(yàn)報(bào)告要求
按照《Matlab程序設(shè)計(jì)》模板提交實(shí)驗(yàn)報(bào)告
五、預(yù)習(xí)要求
預(yù)習(xí)課本上的相關(guān)內(nèi)容
實(shí)驗(yàn)四 利用Matlab實(shí)現(xiàn)濾波器設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康?/p>
1、Matlab實(shí)現(xiàn)實(shí)現(xiàn)濾波器設(shè)計(jì)
2、進(jìn)一步熟悉Matlab軟件操作
二、實(shí)驗(yàn)設(shè)備和元器件
含Matlab仿真軟件的計(jì)算機(jī)
三、實(shí)驗(yàn)內(nèi)容和步驟
1、利用Matlab實(shí)現(xiàn)模擬低通濾波器的設(shè)計(jì)
2、利用Matlab實(shí)現(xiàn)模擬域頻率變換
3、利用Matlab實(shí)現(xiàn)脈沖響應(yīng)不變法
4、利用Matlab實(shí)現(xiàn)雙線性變換法
5、利用Matlab實(shí)現(xiàn)數(shù)字濾波器設(shè)計(jì)
四、實(shí)驗(yàn)報(bào)告要求
按照《Matlab程序設(shè)計(jì)》模板提交實(shí)驗(yàn)報(bào)告
五、預(yù)習(xí)要求
預(yù)習(xí)課本上的相關(guān)內(nèi)容
實(shí)驗(yàn)五 利用Matlab實(shí)現(xiàn)FIR濾波器設(shè)計(jì)
一、實(shí)驗(yàn)?zāi)康?/p>
1、Matlab實(shí)現(xiàn)實(shí)現(xiàn)濾波器設(shè)計(jì)
2、進(jìn)一步熟悉Matlab軟件操作
二、實(shí)驗(yàn)設(shè)備和元器件
含Matlab仿真軟件的計(jì)算機(jī)
三、實(shí)驗(yàn)內(nèi)容和步驟
1、利用Matlab實(shí)現(xiàn)窗函數(shù)法
2、利用Matlab實(shí)現(xiàn)頻率取樣法
3、利用Matlab實(shí)現(xiàn)優(yōu)化設(shè)計(jì)
四、實(shí)驗(yàn)報(bào)告要求
按照《Matlab程序設(shè)計(jì)》模板提交實(shí)驗(yàn)報(bào)告
五、預(yù)習(xí)要求
預(yù)習(xí)課本上的相關(guān)內(nèi)容
實(shí)驗(yàn)六..隨機(jī)信號功率譜估計(jì)的Matlab實(shí)現(xiàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1、Matlab實(shí)現(xiàn)實(shí)現(xiàn)濾波器設(shè)計(jì)
2、進(jìn)一步熟悉Matlab軟件操作
二、實(shí)驗(yàn)設(shè)備和元器件
含Matlab仿真軟件的計(jì)算機(jī)
三、實(shí)驗(yàn)內(nèi)容和步驟
1、利用Matlab實(shí)現(xiàn)隨機(jī)序列
2、利用Matlab計(jì)算相關(guān)函數(shù)的估計(jì)
3、利用Matlab進(jìn)行非參數(shù)功率譜估計(jì)
4、利用Matlab進(jìn)行AR模型功率譜估計(jì)
四、實(shí)驗(yàn)報(bào)告要求
按照《Matlab程序設(shè)計(jì)》模板提交實(shí)驗(yàn)報(bào)告
五、預(yù)習(xí)要求
預(yù)習(xí)課本上的相關(guān)內(nèi)容
實(shí)驗(yàn)七..數(shù)字濾波器結(jié)構(gòu)的Matlab實(shí)現(xiàn)
一、實(shí)驗(yàn)?zāi)康?/p>
1、Matlab實(shí)現(xiàn)實(shí)現(xiàn)濾波器設(shè)計(jì)
2、進(jìn)一步熟悉Matlab軟件操作
二、實(shí)驗(yàn)設(shè)備和元器件
含Matlab仿真軟件的計(jì)算機(jī)
三、實(shí)驗(yàn)內(nèi)容和步驟
1、利用Matlab實(shí)現(xiàn)數(shù)字濾波器直接型設(shè)計(jì)
2、利用Matlab實(shí)現(xiàn)數(shù)字濾波器級聯(lián)設(shè)計(jì)
3、利用Matlab實(shí)現(xiàn)數(shù)字濾波器并聯(lián)型設(shè)計(jì)
4、利用Matlab實(shí)現(xiàn)數(shù)字濾波器格型設(shè)計(jì)
四、實(shí)驗(yàn)報(bào)告要求
按照《Matlab程序設(shè)計(jì)》模板提交實(shí)驗(yàn)報(bào)告
五、預(yù)習(xí)要求
預(yù)習(xí)課本上的相關(guān)內(nèi)容
實(shí)驗(yàn)八....利用Matlab實(shí)現(xiàn)信號小波分析
一、實(shí)驗(yàn)?zāi)康?/p>
1、Matlab實(shí)現(xiàn)實(shí)現(xiàn)濾波器設(shè)計(jì)
2、進(jìn)一步熟悉Matlab軟件操作
二、實(shí)驗(yàn)設(shè)備和元器件
含Matlab仿真軟件的計(jì)算機(jī)
三、實(shí)驗(yàn)內(nèi)容和步驟
1、小波測試信號
2、分解與重構(gòu)濾波器組
3、離散小波變換
4、離散小波反變換
5、基于小波的信號去噪
6、基于小波的信號壓縮
四、實(shí)驗(yàn)報(bào)告要求
按照《Matlab程序設(shè)計(jì)》模板提交實(shí)驗(yàn)報(bào)告
五、預(yù)習(xí)要求
預(yù)習(xí)課本上的相關(guān)內(nèi)容
第三篇:數(shù)字信號處理實(shí)驗(yàn)5
實(shí)驗(yàn)五 FFT 算法的應(yīng)用
1.進(jìn)一步加深對離散信號 DFT 的理解。
2.運(yùn)用其 FFT 算法解決實(shí)際問題。
1.微機(jī)。
2.Matlab 編程環(huán)境。
1.熟悉 Matlab 的編程環(huán)境和編程語言。
2.學(xué)習(xí)教材 P213-227,P249-263,掌握快速傅里葉變換(FFT)的原理。
1.實(shí)驗(yàn)重點(diǎn)、難點(diǎn)、特點(diǎn)
快速傅里葉變換(FFT)的原理及應(yīng)用。難點(diǎn)在 FFT 的應(yīng)用以及 Matlab 編程中矩陣乘和數(shù)乘的應(yīng)用。
2.實(shí)驗(yàn)原理
一、實(shí)驗(yàn)?zāi)康?/p>
二、實(shí)驗(yàn)儀器設(shè)備
三、實(shí)驗(yàn)學(xué)時(shí) 學(xué)時(shí)
四、預(yù)習(xí)要求
五、實(shí)驗(yàn)特點(diǎn)及實(shí)驗(yàn)原理簡介
1.已知 2N 點(diǎn)實(shí)數(shù)序列
N=64。理論計(jì)算 X(k)=DFT[x(n)]2N。
六、實(shí)驗(yàn)內(nèi)容及步驟
N=64;n=0:1:N-1;n2=0:1:2*N-1;k=0:1:2*N-1;xn1=cos(2*pi/N*7*2*n)+1/2*cos(2*pi/N*19*2*n);xn2=cos(2*pi/N*7*(2*n+1))+1/2*cos(2*pi/N*19*(2*n+1));wn=xn1+i*xn2;[wk,kk]=dft_my(wn,N);xk1=1/2*(wk+conj(wk(mod(-kk,N)+1)));xk2=1/2*(wk-conj(wk(mod(-kk,N)+1)))/i;XK1=fft(xn1,N);XK2=fft(xn2,N);%subplot(2,2,1);%stem(kk,abs(xk1));grid on;%subplot(2,2,3);%stem(kk,abs(XK1));grid on;%subplot(2,2,2);%stem(kk,abs(xk2));grid on;%subplot(2,2,4);%stem(kk,abs(XK2));grid on;
xk=[xk1+(exp(-1i*pi/N).^kk).*xk2,xk1-(exp(-1i*pi/N).^kk).*xk2];subplot(2,1,1);stem(k,abs(xk),'r');grid on;xlabel('k');ylabel('2*NFFT');title('n點(diǎn)DFT完成2N點(diǎn)FFT');xn=cos(2*pi/N*7*n2)+1/2*cos(2*pi/N*19*n2);xkk=fft(xn,2*N);subplot(2,1,2);stem(k,abs(xkk),'g');grid on;xlabel('k');ylabel('2*NFFT');title('Matlab2N點(diǎn)FFT');
七、問題思考
1.兩次編程計(jì)算與理論計(jì)算相比較,結(jié)果一致嗎?說明原因。
2.兩次編程計(jì)算在編程方面、運(yùn)算量上的比較。
八、心得體會
第四篇:數(shù)字信號處理實(shí)驗(yàn)二
北京信息科技大學(xué)
數(shù)字信號處理實(shí)驗(yàn)報(bào)告
題 目:
數(shù)字信號處理課程設(shè)計(jì)實(shí)驗(yàn)
學(xué) 院: 信息與通信工程學(xué)院 專 業(yè): 通信工程專業(yè) 姓 名: 班 級:
學(xué) 號: 指導(dǎo)老師:
實(shí)驗(yàn)?zāi)康?/p>
1、熟悉IIR數(shù)字濾波器的設(shè)計(jì)原理與方法。
2、掌握數(shù)字濾波器的計(jì)算機(jī)軟件實(shí)現(xiàn)方法。
3、通過觀察對實(shí)際心電圖信號的濾波作用,學(xué)習(xí)數(shù)字濾波器在實(shí)際中的應(yīng)用。
實(shí)驗(yàn)儀器及材料
計(jì)算機(jī),MATLAB軟件
實(shí)驗(yàn)內(nèi)容及要求
1.設(shè)計(jì)巴特沃斯低通數(shù)字濾波器對人體心電信號進(jìn)行濾波
(1)人體心電圖信號在測量過程中會受到工業(yè)高頻干擾,所以必須經(jīng)過低通濾波處理,才能作為判斷心臟功能的有用信息。以下為一個實(shí)際心電圖信號采樣序列x(n),其中存在高頻干擾,抽樣周期Ts=1秒。在實(shí)驗(yàn)中,以x(n)作為輸入序列,濾除其中干擾成分。
x(n)=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0] 對序列x(n)用FFT做頻譜分析,生成x(n)的頻譜圖。
(2)設(shè)計(jì)一個巴特沃斯低通IIR數(shù)字濾波器H(z)。
設(shè)計(jì)指標(biāo)參數(shù)為:在通帶內(nèi)頻率低于0.2π時(shí),最大衰減小于1dB; 在阻帶內(nèi) [0.3π, π]頻率區(qū)間上,最小衰減大于15dB。
j?|H(e)|。寫出數(shù)字濾波器H(z)的表達(dá)式,畫出濾波器的幅頻響應(yīng)曲線
(3)用所設(shè)計(jì)的濾波器對實(shí)際心電圖信號采樣序列x(n)進(jìn)行濾波處理,編寫程序,求濾波后的序列y(n),并分別畫出濾波前后的心電圖信號波形圖和頻譜圖。
y(n)= [0,0,0,0, 0,0,0,0,-0.14025,0.40279,-0.56085 ,0.33328,0.023981,-0.18809,0.11843,-0.1038,0.11576,-0.1225,0.099815 ,-0.13769 ,0.095249,-0.0070273,0.018867,0.090543,-0.11257,-0.070884 ,0.17676,-0.55407,0.24813,-0.34732,-0.30428,0.59426,-0.29574,-0.063869,0.34018,-0.73334,1.0293,-0.57107,-0.2461,0.83605,-0.83026,0.45459,0.011551,-0.25667,0.23896,-0.17361,0.20829,-0.28417,0.28765 ,-0.2035,0.02865,0.066164,0.077916,-0.36052, 0.53517,-0.5571]
源程序
clear all,clc
x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];%未經(jīng)濾波的心電圖信號 L=length(x);l=0:L-1;
y=fft(x,L);Wp=0.2*pi;Ws=0.3*pi;Rp=1;Rs=15;
[N,Wn] = buttord(Wp,Ws,Rp,Rs,'s');[b,a] = butter(N,Wn,'s');[numa,dena]=impinvar(b,a,1);w=linspace(0,pi,1024);h=freqz(numa,dena,w);norm=max(abs(h));numa=numa/norm;[z,p]=tf2zp(b,a);figure(1)
plot(w,20*log10(abs(h)/norm));grid;
xlabel('數(shù)字頻率');ylabel('幅度響應(yīng)dB');figure(2)plot(w,abs(h));grid;
xlabel('數(shù)字頻率');
ylabel('幅度響應(yīng)|H(e^(jw))|');figure(3)zplane(z,p);xx=filter(b,a,x);yy=fft(xx,L);figure(4)subplot(2,1,1)stem(l,x);
title('未經(jīng)濾波的心電圖信號');xlabel('n');subplot(2,1,2)stem(l,xx);
title('經(jīng)濾波之后的心電圖信號');xlabel('n');figure(5)subplot(2,1,1)plot(l,abs(y));
title('未經(jīng)濾波的心電圖信號的頻譜');subplot(2,1,2)plot(l,abs(yy));
title('經(jīng)濾波處理的心電圖信號的頻譜');
2.用help查看內(nèi)部函數(shù)cheb1ord.m及cheby1.m,了解調(diào)用格式。
編程設(shè)計(jì)教材習(xí)題6-2,求模擬濾波器Ha(s)的表達(dá)式。
源程序
close all clear all clc
Wp=2*pi*3000;Rp=2;Ws=2*pi*12000;Rs=50;Fs=24000;
w=linspace(0,pi,1024);
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s');e=sqrt(10^(Rp/10)-1);[b,a]=cheby1(N,e,Wn,'s')[numa,dena]=impinvar(b,a,Fs);h=freqz(numa,dena,w);norm=max(abs(h));
plot(w*Fs/pi,20*log10(abs(h)/norm))title('幅度響應(yīng)')xlabel('頻率(Hz)')ylabel('幅度(dB)')grid
3.模擬濾波器的數(shù)字化
用內(nèi)部函數(shù)impinvar及bilinear實(shí)現(xiàn)教材習(xí)題6-5,求數(shù)字濾波器H(z)的表達(dá)式。
源程序
close all clear all clc b1=[0 0 1];a1=[1 1 1];b2=[0 0 1];a2=[2 3 1];
[numa1,dena1]=impinvar(b1,a1,0.5)[numa2,dena2]=bilinear(b1,a1,0.5)[numa3,dena3]=impinvar(b2,a2,0.5)
[numa4,dena4]=bilinear(b2,a2,0.5)
本實(shí)驗(yàn)所用的部分MATLAB函數(shù)
? L=length(x):求序列x長度。
? y=fft(x,L):將序列x(n)做L點(diǎn)快速傅立葉變換,結(jié)果賦給序列y(n)。? [n,Wn] = buttord(Wp,Ws,Rp,Rs,'s'):計(jì)算模擬Butterworth濾波器的最小階次n和截止頻率為Wn。
? [b,a] = butter(n,Wn,'s'):設(shè)計(jì)模擬截止頻率為Wn(rad/s)的n階 Butterworth低通濾波器,返回值為模擬濾波器的系數(shù)。
? y=filter(b,a,x): 將序列x(n)通過濾波器濾波后生成序列y(n),濾波器的分母多項(xiàng)式系數(shù)構(gòu)成a向量,分子多項(xiàng)式系數(shù)構(gòu)成b向量。
? [BZ,AZ] = impinvar(B,A,Fs):沖激響應(yīng)不變法,返回值為數(shù)字濾波器的系數(shù)。? [BZ,AZ] = bilinear(B,A,fs):雙線性變換,返回值為數(shù)字濾波器的系數(shù)。? [H w]=freqz(b,a):由濾波器分母多項(xiàng)式系數(shù)構(gòu)成的a向量和分子多項(xiàng)式系數(shù)構(gòu)成的b向量求系統(tǒng)頻響。
截圖
實(shí)驗(yàn)體會
這次的實(shí)驗(yàn)讓這讓我看到了理論與實(shí)踐相結(jié)合的優(yōu)勢與用處,讓我受益匪淺。我認(rèn)識到了自己理論知識的不足,也認(rèn)識到了我們學(xué)習(xí)的基礎(chǔ)知識究竟能運(yùn)用于什么領(lǐng)域,如何運(yùn)用。我們在老師的耐心指導(dǎo)下調(diào)試電路,直到得到要求的效果。讓我們在學(xué)習(xí)電路、信號等理論知識的同時(shí),明白如何把這些應(yīng)用于實(shí)際。
第五篇:數(shù)字信號處理實(shí)驗(yàn)
實(shí)驗(yàn)一 自適應(yīng)濾波器
一、實(shí)驗(yàn)?zāi)康?/p>
1、掌握功率譜估計(jì)方法
2、會用matlab對功率譜進(jìn)行仿真
二、實(shí)驗(yàn)原理
功率譜估計(jì)方法有很多種,一般分成兩大類,一類是經(jīng)典譜估計(jì);另一類是現(xiàn)代譜估計(jì)。經(jīng)典譜估計(jì)可以分成兩種,一種是BT法,另一種是周期法;BT法是先估計(jì)自相關(guān)函數(shù),然后將相關(guān)函數(shù)進(jìn)行傅里葉變換得到功率譜函數(shù)。相應(yīng)公式如下所示:
1?xx(m)?rN??PBTm???N?|m|?1?n?0x*(n)x(n?m)(1?1)??
(1?2)?xx(m)e?jwnr周期圖法是采用功率譜的另一種定義,但與BT法是等價(jià)的,相應(yīng)的功率譜估計(jì)如下所示:
1jw?
Pxx(e)?N其計(jì)算框圖如下所示:
觀測數(shù)據(jù)x(n)FFT?jwnx(n)e?n?0N?120?n?N?1(1?3)
取模的平方1/N Pxx(ejw)?
圖1.1周期圖法計(jì)算用功率譜框圖 由于觀測數(shù)據(jù)有限,所以周期圖法估計(jì)分辨率低,估計(jì)誤差大。針對經(jīng)典譜估計(jì)的缺點(diǎn),一般有三種改進(jìn)方法:平均周期圖法、窗函數(shù)法和修正的周期圖平均法。
三、實(shí)驗(yàn)要求
信號是正弦波加正態(tài)零均值白噪聲,信噪比為10dB,信號頻率為2kHZ,取樣頻率為100kHZ。
四、實(shí)驗(yàn)程序與實(shí)驗(yàn)結(jié)果(1)用周期圖法進(jìn)行譜估計(jì) A、實(shí)驗(yàn)程序: %用周期法進(jìn)行譜估計(jì) clear all;N1=128;%數(shù)據(jù)長度 N2=256;N3=512;N4=1024;f=2;%正弦波頻率,單位為kHZ fs=100;%抽樣頻率,單位為kHZ n1=0:N1-1;n2=0:N2-1;n3=0:N3-1;n4=0:N4-1;a=sqrt(20);%由信噪比為10dB計(jì)算正弦信號的幅度 wn1=randn(1,N1);xn1=a*sin(2*pi*f*n1./fs)+wn1;Pxx1=10*log10(abs(fft(xn1).^2)/N1);%周期法求功率譜 f1=((0:length(Pxx1)-1))/length(Pxx1);wn2=randn(1,N2);xn2=a*sin(2*pi*f*n2./fs)+wn2;Pxx2=10*log10(abs(fft(xn2).^2)/N2);f2=((0:length(Pxx2)-1))/length(Pxx2);wn3=randn(1,N3);xn3=a*sin(2*pi*f*n3./fs)+wn3;Pxx3=10*log10(abs(fft(xn3).^2)/N3);f3=((0:length(Pxx3)-1))/length(Pxx3);wn4=randn(1,N4);xn4=a*sin(2*pi*f*n4./fs)+wn4;Pxx4=10*log10(abs(fft(xn4).^2)/N4);f4=((0:length(Pxx4)-1))/length(Pxx4);subplot(2,2,1);plot(f1,Pxx1);xlabel('頻率');ylabel('功率(dB)');title('功率譜Pxx,N=128');subplot(2,2,2);plot(f2,Pxx2);xlabel('頻率');ylabel('功率(dB)');title('功率譜Pxx,N=256');subplot(2,2,3);plot(f3,Pxx3);xlabel('頻率');ylabel('功率(dB)');title('功率譜Pxx,N=512');subplot(2,2,4);plot(f4,Pxx4);xlabel('頻率');ylabel('功率(dB)');title('功率譜Pxx,N=1024');B、實(shí)驗(yàn)仿真結(jié)果:
(2)采用漢明窗,分段長度L=32,用修正的周期圖求平均法進(jìn)行譜估計(jì) A:實(shí)驗(yàn)程序: clear all;N=512;%數(shù)據(jù)長度 Ns=32;%分段長度
f1=2;%正弦波頻率,單位為kHZ fs=100;%抽樣頻率,單位為kHZ n=0:N-1;a=sqrt(20);%由信噪比為10dB計(jì)算正弦信號的幅度 wn=randn(1,N);xn=a*sin(2*pi*f1*n./fs)+wn;w=hamming(32)';%漢明窗
Pxx1=abs(fft(w.*xn(1:32),Ns).^2)/norm(w)^2;Pxx2=abs(fft(w.*xn(33:64),Ns).^2)/norm(w)^2;Pxx3=abs(fft(w.*xn(65:96),Ns).^2)/norm(w)^2;Pxx4=abs(fft(w.*xn(97:128),Ns).^2)/norm(w)^2;Pxx5=abs(fft(w.*xn(129:160),Ns).^2)/norm(w)^2;Pxx6=abs(fft(w.*xn(161:192),Ns).^2)/norm(w)^2;Pxx7=abs(fft(w.*xn(193:224),Ns).^2)/norm(w)^2;Pxx8=abs(fft(w.*xn(225:256),Ns).^2)/norm(w)^2;Pxx9=abs(fft(w.*xn(257:288),Ns).^2)/norm(w)^2;Pxx10=abs(fft(w.*xn(289:320),Ns).^2)/norm(w)^2;Pxx11=abs(fft(w.*xn(321:352),Ns).^2)/norm(w)^2;Pxx12=abs(fft(w.*xn(353:384),Ns).^2)/norm(w)^2;Pxx13=abs(fft(w.*xn(385:416),Ns).^2)/norm(w)^2;Pxx14=abs(fft(w.*xn(417:448),Ns).^2)/norm(w)^2;Pxx15=abs(fft(w.*xn(449:480),Ns).^2)/norm(w)^2;Pxx16=abs(fft(w.*xn(481:512),Ns).^2)/norm(w)^2;Pxx=10*log10((Pxx1+Pxx2+Pxx3+Pxx4+Pxx5+Pxx6+Pxx7+Pxx8+Pxx9+Pxx10+Pxx11+Pxx12+Pxx13+Pxx14+Pxx15+Pxx16)/16);f=((0:length(Pxx)-1))/length(Pxx);plot(f,Pxx);xlabel('頻率');ylabel('功率(dB)');title('加窗平均周期圖法功率譜Pxx,N=512');grid on;B:實(shí)驗(yàn)仿真結(jié)果:
五.參考文獻(xiàn):
[1] 丁玉美,闊永紅,高新波.數(shù)字信號處理-時(shí)域離散隨機(jī)信號處理[M].西安:西安電子科技大學(xué)出版社,2002.[2] 萬建偉,王玲.信號處理仿真技術(shù)[M].長沙:國防科技大學(xué)出版社,2008.實(shí)驗(yàn)二
卡爾曼濾波器的設(shè)計(jì)
一.實(shí)驗(yàn)?zāi)康?/p>
1.熟悉并掌握卡爾曼濾波、自適應(yīng)濾波和譜估計(jì)的原理。
2.可以仿真符合要求的卡爾曼濾波器、自適應(yīng)濾波器和各種譜估計(jì)方法。
3.掌握卡爾曼濾波器的遞推公式和仿真方法。4.熟悉matlab的用法。二.實(shí)驗(yàn)原理
卡爾曼濾波是用狀態(tài)空間法描述系統(tǒng)的,由狀態(tài)方程和測量方程所組成??柭鼮V波用前一個狀態(tài)的估計(jì)值和最近一個觀測數(shù)據(jù)來估計(jì)狀態(tài)變量的當(dāng)前值,并以狀態(tài)變量的估計(jì)值的形式給出。其狀態(tài)方程和量測方程如下所示:
xk?1?Akxk?wkyk?Ckxk?vk(1?1)
(1?2)其中,k表示時(shí)間,輸入信號wk是一白噪聲,輸出信號的觀測噪聲vk也是一個白噪聲,輸入信號到狀態(tài)變量的支路增益等于1,即B=1;A表示狀態(tài)變量之間的增益矩陣,可隨時(shí)間變化,Ak表示第k次迭代的取值,C表示狀態(tài)變量與輸出信號之間的增益矩陣,可隨時(shí)間變化,其信號模型如圖1.1所示(k用k?1代替)。
vkCk+ykWk-1+XkZ-1Xk-1Ak-1
圖1.1 卡爾曼濾波器的信號模型
卡爾曼濾波是采用遞推的算法實(shí)現(xiàn)的,其基本思想是先不考慮輸入信號wk和觀測噪聲vk的影響,得到狀態(tài)變量和輸出信號的估計(jì)值,再用輸出信號的估計(jì)誤差加權(quán)矯正狀態(tài)變量的估計(jì)值,使?fàn)顟B(tài)變量估計(jì)誤差的均方值最小。其遞推公式如下所示:
?x?k?e?0.02x?k?1?Hk(yk?e?0.02xk?1)??1??H?P(P?1)?kkk?
?Pk??e?0.04Pk?1?1?e?0.04??Pk?(I?Hk)Pk??(1?12a)(1?12b)(1?12c)(1?12d)假設(shè)初始條件Ak,Ck,Qk,Rk,yk,xk?1,Pk?1已知,其中x0?E[x0],P0?var[x0],那么遞推流程見圖1.2所示。
Pk?1式(1-5)?Pk'式(1-4)Hk式(1-3)式(1-6)
圖1.2 卡爾曼濾波遞推流程圖
三.實(shí)驗(yàn)要求
一連續(xù)平穩(wěn)的隨機(jī)信號x(t),自相關(guān)rx(?)?e
??xkPk?,信號x(t)為加性噪聲所干擾,噪聲是白噪聲,測量值的離散值y(k)為已知。Matlab仿真程序如下:
%編卡爾曼濾波遞推程序,估計(jì)信號x(t)的波形 clear all;clc;Ak=exp(-0.02);%各系數(shù)由前面確定; Ck=1;Rk=0.1;p(1)=20;%各初值; Qk=1-exp(-0.04);
p1(1)=Ak*p(1)*Ak'+Qk;%由p1代表p'; x(1)=0;%設(shè)信號初值為0;
H(1)=p1(1)*Ck'*inv(Ck*p1(1)*Ck'+Rk);
zk=[-3.2,-0.8,-14,-16,-17,-18,-3.3,-2.4,-18,-0.3,-0.4,-0.8,-19,-2.0,-1.2,-11,-14,-0.9,0.8,10,0.2,0.5,-0.5,2.4,-0.5,0.5,-13,0.5,10,-12,0.5,-0.6,-15,-0.7,15,0.5,-0.7,-2.0,-19,-17,-11,-14] %zk為測量出來的離散值; N=length(zk);%要測量的點(diǎn)數(shù); for k=2:N
p1(k)=Ak*p(k-1)*Ak'+Qk;%未考慮噪聲時(shí)的均方誤差陣; H(k)=p1(k)*Ck'*inv(Ck*p1(k)*Ck'+Rk);%增益方程; I=eye(size(H(k)));%產(chǎn)生和H(k)維數(shù)相同的單位矩陣; p(k)=(I-H(k)*Ck)*p1(k);%濾波的均方誤差陣;
x(k)=Ak*x(k-1)+H(k)*(zk(k)-Ck*Ak*x(k-1));%遞推公式; end, x %顯示信號x(k)的數(shù)據(jù); m=1:N;n=m*0.02;
plot(n,zk,'-r*',n,x,'-bo');%便于比較zk和x(k)在同一窗口輸出; xlabel('t/s','Fontsize',16);ylabel('z(t),x(t)','fontsize',16);
title('卡爾曼濾波遞推——x(t)的估計(jì)波形與z(t)波形','fontsize',16)legend('觀測數(shù)據(jù)z(t)','信號估計(jì)值x(t)',2);grid;四.實(shí)驗(yàn)結(jié)果
五.實(shí)驗(yàn)小結(jié)
通過卡爾曼濾波估計(jì)信號與觀測信號比較知,卡爾曼濾波輸出的估計(jì)信號x(t)與實(shí)際觀測到的離散值z(t)還是存在一定的誤差,卡爾曼濾波是從初始狀態(tài) 就采用遞推方法進(jìn)行濾波,那么在初值迭代后的一段時(shí)間內(nèi)可能會出現(xiàn)較大的誤差,隨著迭代進(jìn)行,各參數(shù)逐漸趨于穩(wěn)定,后面的估計(jì)值與觀察值的誤差就減少了。
六.參考文獻(xiàn)
[1] 丁玉美,闊永紅,高新波.數(shù)字信號處理-時(shí)域離散隨機(jī)信號處理[M].西安:西安電子科技大學(xué)出版社,2002.[2] 萬建偉,王玲.信號處理仿真技術(shù)[M].長沙:國防科技大學(xué)出版社,2008.