數(shù)字信號處理MATLAB仿真.doc_第1頁
數(shù)字信號處理MATLAB仿真.doc_第2頁
數(shù)字信號處理MATLAB仿真.doc_第3頁
數(shù)字信號處理MATLAB仿真.doc_第4頁
數(shù)字信號處理MATLAB仿真.doc_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)一 數(shù)字信號處理的Matlab仿真一、實(shí)驗(yàn)?zāi)康?、掌握連續(xù)信號及其MATLAB實(shí)現(xiàn)方法;2、掌握離散信號及其MATLAB實(shí)現(xiàn)方法3、掌握離散信號的基本運(yùn)算方法,以及MATLAB實(shí)現(xiàn)4、了解離散傅里葉變換的MATLAB實(shí)現(xiàn)5、了解IIR數(shù)字濾波器設(shè)計(jì)6、了解FIR數(shù)字濾波器設(shè)計(jì)1二、實(shí)驗(yàn)設(shè)備計(jì)算機(jī),Matlab軟件三、實(shí)驗(yàn)內(nèi)容(一)、 連續(xù)信號及其MATLAB實(shí)現(xiàn)1、 單位沖擊信號例1.1:t=1/A=50時(shí),單位脈沖序列的MATLAB實(shí)現(xiàn)程序如下:clear all;t1=-0.5:0.001:0;A=50;A1=1/A;n1=length(t1);u1=zeros(1,n1);t2=0:0.001:A1;t0=0;u2=A*stepfun(t2,t0);t3=A1:0.001:1;n3=length(t3);u3=zeros(1,n3);t=t1 t2 t3;u=u1 u2 u3;plot(t,u)axis(-0.5 1 0 A+2)2、 任意函數(shù)例1.2:用MATLAB畫出如下表達(dá)式的脈沖序列clear all;t=-2:1:3;N=length(t);x=zeros(1,N);x(1)=0.4;x(2)=0.8x(3)=1.2;x(4)=1.5;x(5)=1.0;x(6)=0.7;stem(t,x);axis(-2.2 3.2 0 1.7)3、 單位階躍函數(shù)例1.3:用MATLAB實(shí)現(xiàn)單位階躍函數(shù)clear all;t=-0.5:0.001:1;t0=0;u=stepfun(t,t0);plot(t,u)axis(-0.5 1 -0.2 1.2)4、 斜坡函數(shù)例1.4:用MATLAB實(shí)現(xiàn)g(t)=3(t-1)clear all;t=0:0.01:3;B=3;t0=1;u=stepfun(t,t0);n=length(t);for i=1:n u(i)=B*u(i)*(t(i)-t0);endplot(t,u)axis(-0.2 3.1 -0.2 6.2)5、 實(shí)指數(shù)函數(shù)例1.5:用MATLAB實(shí)現(xiàn)clear all;t=0:0.001:3;A=3;a=0.5;u=A*exp(a*t);plot(t,u)axis(-0.2 3.1 -0.2 14)6、 正弦函數(shù)例1.6:用MATLAB實(shí)現(xiàn)正弦函數(shù)f(t)=3cos(10t+1)clear all;t=-0.5:0.001:1;A=3;f=5;fai=1;u=A*sin(2*pi*f*t+fai);plot(t,u)axis(-0.5 1 -3.2 3.2)(二)、離散信號及其MATLAB實(shí)現(xiàn)1、 單位沖激序列例2.1:用MATLAB產(chǎn)生64點(diǎn)的單位沖激序列clear all;N=64;x=zeros(1,N);x(1)=1;xn=0:N-1;stem(xn,x)axis(-1 65 0 1.1)2、 任意序列例2.2:用MATLAB畫出如下表達(dá)式的脈沖序列clear all;N=8;x=zeros(1,N);x(1)=8.0;x(2)=3.4x(3)=1.8;x(4)=5.6;x(5)=2.9;x(6)=0.7;xn=0:N-1;stem(xn,x)axis(-1 8 0 8.2)3、 單位階躍序列例2.3:用MATLAB實(shí)現(xiàn)單位階躍函數(shù)clear all;N=32;x=ones(1,N);xn=0:N-1;stem(xn,x)axis(-1 32 0 1.1)4、 斜坡序列例2.4:用MATLAB實(shí)現(xiàn)g(n)=3(n-4)點(diǎn)數(shù)為32的斜坡序列clear all;N=32;k=4B=3;t0=1;x=zeros(1,k) ones(1,N-k);for i=1:N x(i)=B*x(i)*(i-k);endxn=0:N-1;stem(xn,x)axis(-1 32 0 90)5、 正弦序列例2.5:用MATLAB實(shí)現(xiàn)幅度A=3,頻率f=100,初始相位=1.2,點(diǎn)數(shù)為32的正弦信號clear all;N=32;A=3;f=100;fai=1.2;xn=0:N-1;x=A*sin(2*pi*f*(xn/N)+fai);stem(xn,x)axis(-1 32 -3.2 3.2)6、 實(shí)指數(shù)序列例2.6:用MATLAB實(shí)現(xiàn),點(diǎn)數(shù)為32的實(shí)指數(shù)序列clear all;N=32;A=3;a=0.7;xn=0:N-1;x=A*a.xn;stem(xn,x)7、 復(fù)指數(shù)序列例2.7:用MATLAB實(shí)現(xiàn)幅度A=3,a=0.7,角頻率=314,點(diǎn)數(shù)為32的實(shí)指數(shù)序列clear all;N=32;A=3;a=0.7;w=314;xn=0:N-1;x=A*exp(a+j*w)*xn);stem(xn,x)8、 隨機(jī)序列利用MATLAB產(chǎn)生兩種隨機(jī)信號:rand(1,N)在區(qū)間上產(chǎn)生N點(diǎn)均勻分布的隨機(jī)序列randn(1,N)產(chǎn)生均值為0,方差為1的高斯隨機(jī)序列,即白噪聲序列例2.8:用MATLAB產(chǎn)生點(diǎn)數(shù)為32的均勻分布的隨機(jī)序列與高斯隨機(jī)序列clear all;N=32;x_rand=rand(1,N);x_randn=randn(1,N);xn=0:N-1;figure(1);stem(xn,x_rand)figure(2);stem(xn,x_randn)(三)、離散信號的基本運(yùn)算1、 信號的延遲給定離散信號x(n),若信號y(n)定義為:y(n)=x(n-k),那么y(n)是信號x(n)在時(shí)間軸上右移k個(gè)抽樣周期得到的新序列。例3.1:正弦序列y(n)=sin(100n)右移3個(gè)抽樣周期后所得的序列,MATLAB程序如下:clear all;N=32;w=100;k=3;x1=zeros(1,k);xn=0:N-1;x2=sin(100*xn);figure(1)stem(xn,x2)x=x1 x2;axis(-1 N -1.1 1.1)N=N+k;xn=0:N-1;figure(2)stem(xn,x)axis(-1 N -1.1 1.1)2、 信號相加若信號,值得注意的是當(dāng)序列和的長度不相等或者位置不對應(yīng)時(shí),首先應(yīng)該使兩者的位置對齊,然后通過zeros函數(shù)左右補(bǔ)零使其長度相等后再相加例3.2:用MATLAB實(shí)現(xiàn)兩序列相加clear all;n1=0:3x1=2 0.5 0.9 1;figure(1)stem(n1,x1)axis(-1 8 0 2.1 )n2=0:7x2= 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7;figure(2)stem(n2,x2)axis(-1 8 0 0.8 )n=0:7;x1=x1 zeros(1,8-length(n1);x2= zeros(1,8-length(n2),x2;x=x1+x2;figure(3)stem(n,x)axis(-1 8 0 2.1)3、 信號相乘信號序列和相乘所得信號的表達(dá)式為:這是樣本與樣本之間的點(diǎn)乘運(yùn)算,在MATLAB中可采用“.*”來實(shí)現(xiàn),但是在信號序列相乘之前,應(yīng)對其做與相加運(yùn)算一樣的操作。例3.3:用MATLAB實(shí)現(xiàn)上例中兩序列相乘clear all;n1=0:3x1=2 0.5 0.9 1;figure(1)stem(n1,x1)axis(-1 8 0 2.1 )n2=0:7x2= 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7;figure(2)stem(n2,x2)axis(-1 8 0 0.8 )n=0:7;x1=x1 zeros(1,8-length(n1);x2= zeros(1,8-length(n2),x2;x=x1.*x2;figure(3)stem(n,x)axis(-1 8 0 0.35)4、 信號翻轉(zhuǎn)信號翻轉(zhuǎn)的表達(dá)式為:y(n)=x(-n),在MATLAB中可以用fliplr函數(shù)實(shí)現(xiàn)此操作例3.4:用MATLAB實(shí)現(xiàn)“信號相加”中的序列翻轉(zhuǎn)clear all;n=0:3x1=2 0.5 0.9 1;x=fliplr(x1);stem(n,x)axis(-1 4 0 2.1 )5、 信號和對于N點(diǎn)信號,其和的定義為:例3.5:用MATLAB實(shí)現(xiàn)“信號相加”中的序列和clear all;n=0:3x1=2 0.5 0.9 1;x=sum(x1)6、 信號積對于N點(diǎn)信號,其積的定義為:例3.5:用MATLAB實(shí)現(xiàn)“信號相加”中的序列積clear all;n=0:3x1=2 0.5 0.9 1;x=prod(x1)(四)、離散傅里葉變換的MATLAB實(shí)現(xiàn)例:若是一個(gè)N=32的有限序列,利用MATLAB計(jì)算它的DFT并畫出圖形。N=32;n=0:N-1;xn=cos(pi*n/6);k=0:N-1;WN=exp(-j*2*pi/N);nk=n*k;WNnk=WN.nk;Xk=xn*WNnk;figure(1)stem(n,xn)figure(2)stem(k,abs(Xk)在MATLAB中,可以直接利用內(nèi)部函數(shù)fft來實(shí)現(xiàn)FFT算法,該函數(shù)是機(jī)器語言,而不是MATLAB指令寫成的,執(zhí)行速度很快。常用格式為:y=fft(x)y=fft(x,N)(五)、IIR數(shù)字濾波器設(shè)計(jì)1、 基于巴特沃斯法直接設(shè)計(jì)IIR數(shù)字濾波器例.1:設(shè)計(jì)一個(gè)10階的帶通巴特沃斯數(shù)字濾波器,帶通頻率為100Hz到200Hz,采樣頻率為1000Hz,繪出該濾波器的幅頻于相頻特性,以及其沖擊響應(yīng)圖clear all;N=10;Wn=100 200/500;b,a=butter(N,Wn,bandpass);freqz(b,a,128,1000)figure(2)y,t=impz(b,a,101);stem(t,y)2、 基于切比雪夫法直接設(shè)計(jì)IIR數(shù)字濾波器例5.2:設(shè)計(jì)一個(gè)切比雪夫型數(shù)字低通濾波器,要求:Ws=200Hz,Wp=100Hz,Rp=3dB,Rs=30dB,Fs=1000Hzclear all;Wp=100;Rp=3;Ws=200;Rs=30;Fs=1000;N,Wn=cheb1ord(Wp/(Fs/2),Ws/(Fs/2),Rp,Rs);b,a=cheby1(N,Rp,Wn);freqz(b,a,512,1000);例5.3:設(shè)計(jì)一個(gè)切比雪夫型數(shù)字帶通濾波器,要求帶通范圍100-250Hz,帶阻上限為300Hz,下限為50Hz,通帶內(nèi)紋波小于3dB,阻帶紋波為30 dB,抽樣頻率為1000 Hz,并利用最小的階次實(shí)現(xiàn)。clear all;Wpl=100;Wph=250;Wp=Wpl,Wph;Rp=3;Wsl=50;Wsh=300;Ws=Wsl,Wsh;Rs=30;Fs=1000;N,Wn=cheb2ord(Wp/(Fs/2),Ws/(Fs/2),Rp,Rs);b,a=cheby2(N,Rp,Wn);freqz(b,a,512,1000);(六)、FIR數(shù)字濾波器設(shè)計(jì)1、在MATLAB 中產(chǎn)生窗函數(shù)十分簡單:(1)矩形窗(Rectangle Window)調(diào)用格式:w=boxcar(n),根據(jù)長度n 產(chǎn)生一個(gè)矩形窗w。(2)三角窗(Triangular Window)調(diào)用格式:w=triang(n) ,根據(jù)長度n 產(chǎn)生一個(gè)三角窗w。(3)漢寧窗(Hanning Window)調(diào)用格式:w=hanning(n) ,根據(jù)長度n 產(chǎn)生一個(gè)漢寧窗w。(4)海明窗(Hamming Window)調(diào)用格式:w=hamming(n) ,根據(jù)長度n 產(chǎn)生一個(gè)海明窗w。(5)布拉克曼窗(Blackman Window)調(diào)用格式:w=blackman(n) ,根據(jù)長度n 產(chǎn)生一個(gè)布拉克曼窗w。(6)愷撒窗(Kaiser Window)調(diào)用格式:w=kaiser(n,beta) ,根據(jù)長度n 和影響窗函數(shù)旁瓣的參數(shù)產(chǎn)生一個(gè)愷撒窗w。2、基于窗函數(shù)的FIR 濾波器設(shè)計(jì)利用MATLAB 提供的函數(shù)firl 來實(shí)現(xiàn)調(diào)用格式:firl (n,Wn,ftype,Window),n 為階數(shù)、Wn 是截止頻率(如果輸入是形如W1 W2的矢量時(shí),本函數(shù)將設(shè)計(jì)帶通濾波器,其通帶為W1=n0; %生成離散序列fstem(n,f,filled);title(單位階躍序列)axis(n1 n2 0 1.1*max(f);%限定橫坐標(biāo)和縱坐標(biāo)的顯示范圍ylabel(幅度f(n);n=0:16;f=exp(0.1+1.6*pi*j)*n); %建立信號fstem(n,f,fill),grid onxlabel(n),title(f(n);n=0:20; f=3*sin(pi/4*n); %建立信號fstem(n,f,fill),xlabel(n),grid ontitle(f(n)axis(0,20,-3.5,3.5); %限定橫坐標(biāo)和縱坐標(biāo)的顯示范圍n=-20:20; f=sinc(n/5); %建立信號fstem(n,f,fill),xlabel(n),grid ontitle(f(n)(3)f=50;Um=2;nt=2; %顯示周期個(gè)數(shù)N=16; %采樣點(diǎn)數(shù)T=1/f; %信號周期dt=T/N; %采樣時(shí)間間隔n=0:nt*N-1; %建立離散時(shí)間的時(shí)間序列tn=n*dt; %確定時(shí)間序列樣點(diǎn)在時(shí)間軸上的位置x=1+0.5*Um*sawtooth(2*f*pi*tn);%產(chǎn)生時(shí)域信號subplot(2,1,1);plot(tn,x); %顯示原連續(xù)信號axis(0 nt*T 0 2); %限定橫坐標(biāo)和縱坐標(biāo)的顯示范圍ylabel(x(t);subplot(2,1,2);stem(tn,x); %顯示經(jīng)采樣的信號axis(0 nt*T 0 2);ylabel(x(n);(4)f=200;nt=2; %顯示周期個(gè)數(shù)Fs=4000;N=Fs/f; %求采樣點(diǎn)數(shù)T=1/f; %求信號周期dt=T/N; %采樣時(shí)間間隔n=0:nt*N-1; %建立離散時(shí)間的時(shí)間序列tn=n*dt; %確定時(shí)間序列樣點(diǎn)在時(shí)間軸上的位置x=square(2*f*pi*tn); %產(chǎn)生時(shí)域信號subplot(2,1,1);plot(tn,x); %顯示原連續(xù)信號axis(0 nt*T -1 1); %限定橫坐標(biāo)和縱坐標(biāo)的顯示范圍ylabel(x(t);subplot(2,1,2);stem(tn,x); %顯示經(jīng)采樣的信號axis(0 nt*T -1 1);ylabel(x(n);實(shí)驗(yàn)三:離散序列的基本運(yùn)算(2)n1=-5;n2=5;n0=0;n3=-3;n4=4; n=n1:n2; %生成離散信號的時(shí)間序列f1=n=n0; %建立f1信號f2=n=n3; %建立f2信號f3=n=n4; %建立f3信號f=f2+2*f3; %建立f信號stem(n,f,filled); %畫f信號的波形圖axis(n1 n2 0 1.1*max(f); %限定橫坐標(biāo)和縱坐標(biāo)的顯示范圍ylabel(f(n);n1=-5;n2=5;n0=0;n3=2;n4=-2;n=n1:n2;f1=n=n0; %建立f1信號f2=n=n3; %建立f2信號f3=n=n4; %建立f3信號f=f2+f3; %建立f信號stem(n,f,filled); %畫f信號的波形圖axis(n1 n2 0 1.1*max(f); %限定橫坐標(biāo)和縱坐標(biāo)的顯示范圍ylabel(f(n);n1=0;n2=20;n3=3;n4=-3;n=n1:n2;x1=3*cos(2*pi*n/10); %建立原信號x(n)x2=3*cos(2*pi*(n-n3)/10); %建立x(n-3)信號x3=3*cos(2*pi*(n-n4)/10); %建立x(n+3)信號subplot(3,1,1);stem(n,x1,filled);%畫x1的波形圖ylabel(x(n);subplot(3,1,2);stem(n,x2,filled);%畫x(n-3)的波形圖ylabel(x(n-3);subplot(3,1,3);stem(n,x3,filled);%畫x(n+3)的波形圖ylabel(x(n+3);n1=0;n2=24;n=n1:n2;x1=exp(-n)/16); %建立x1(n)信號x2=5*sin(2*pi*n/10); %建立x2(n)信號x=x1.*x2; %建立x1(n)*x2(n)信號subplot(3,1,1);stem(n,x1,filled);%畫x1(n)的波形圖ylabel(x1(n);subplot(3,1,2);stem(n,x2,filled);%畫x2(n)的波形圖ylabel(x1(n);subplot(3,1,3);stem(n,x,filled); %畫x1(n)*x2(n)的波形圖ylabel(x(n);(3)n1=0;n2=20;n=n1:n2;x0=n.*sin(n); %建立原信號x(n)y1=(n-3).*sin(n-3); %建立信號x(n-3)y2=(-n).*sin(-n); %建立信號x(-n)y3=-(n.*sin(n); %建立信號-x(n)y4=(-n+3).*sin(-n+3); %建立信號x(-n+3)y5=n/2.*sin(n/2); %建立信號x(n/2)subplot(5,1,1);stem(n,y1,filled);ylabel(y1(n)=x(n-3);subplot(3,2,2);stem(n,y2,filled);ylabel(y2(n)=x(-n);subplot(3,2,3);stem(n,y3,filled);ylabel(y3(n)=-x(n);subplot(5,1,4);stem(n,y4,filled);ylabel(y4(n)=x(-n+3);subplot(3,2,5);stem(n,y5,filled);ylabel(y5(n)=x(n/2);(4)n1=-4:-1;x1=2*n1+5; %建立信號x1(n)n2=0:4;x2=6; %建立信號x2(n)n=min(n1,n2):max(n1,n2); %為x信號建立時(shí)間序列nN=length(n); %求時(shí)間序列n的點(diǎn)數(shù)Ny1=zeros(1,N); %新建一維N列的y1全0數(shù)組y2=zeros(1,N); %新建一維N列的y2全0數(shù)組y1(find(n=min(n1)&(n=min(n2)&(n=min(n1)&(n=min(n2)&(n=max(n2)=x2; %為y2賦值x=y1+y2; %建立信號xy3=2*x %建立信號y3y4=2*x; %建立信號y4y5=x; %建立信號y5subplot(3,1,1);stem(n3,y3,filled);title(x1(n);axis(min(n3),max(n3),1.1*min(y3),1.1*max(y3);subplot(3,1,2);stem(n4,y4,filled);title(x2(n);axis(min(n4),max(n4),1.1*min(y4),1.1*max(y4);subplot(3,1,3);stem(n5,y5,filled);title(x3(n);axis(min(n5),max(n5),1.1*min(y5),1.1*max(y5);附錄一 信號、系統(tǒng)和系統(tǒng)響應(yīng) 1、理想采樣信號序列 (1)首先產(chǎn)生信號x(n),0=n=50 n=0:50; %定義序列的長度是50 A=444.128; %設(shè)置信號有關(guān)的參數(shù) a=50*sqrt(2.0)*pi; T=0.001; %采樣率 w0=50*sqrt(2.0)*pi; x=A*exp(-a*n*T).*sin(w0*n*T); %pi是MATLAB定義的,信號乘可采用“.*” close all %清除已經(jīng)繪制的x(n)圖形 subplot(3,1,1);stem(x); %繪制x(n)的圖形 title(理想采樣信號序列); (2)繪制信號x(n)的幅度譜和相位譜 k=-25:25; W=(pi/12.5)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論