文档介绍:该【数字信号处理实验报告1-5 】是由【青山代下】上传分享,文档一共【32】页,该文档可以免费在线阅读,需要了解更多关于【数字信号处理实验报告1-5 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。:..实验一时域离散信号的产生及时域处理实验目的:了解Matlab软件数字信号处理工具箱的初步使用方法。掌握其简单的Matlab语言进行简单的时域信号分析。实验内容:[]已知两序列x1=[0,1,2,3,4,3,2,1,0];n1=[-2:6];x2=[2,2,0,0,0,-2,-2],n2=[2:8].:x1=[0,1,2,3,4,3,2,1,0];ns1=-2;x2=[2,2,0,0,0,-2,-2];ns2=2;nf1=ns1+length(x1)-1;nf2=ns2+length(x2)-1;ny=min(ns1,ns2):max(nf1,nf2);xa1=zeros(1,length(ny));xa2=xa1;xa1(find((ny>=ns1)&(ny<=nf1)==1))=x1;xa2(find((ny>=ns2)&(ny<=nf2)==1))=x2;ya=xa1+xa2yp=xa1.*xa2subplot(4,4,1),stem(ny,xa1,'.')subplot(4,1,2),stem(ny,xa2,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,3),stem(ny,ya,'.')line([ny(1),ny(end)],[0,0])subplot(4,1,4),stem(ny,yp,'.')line([ny(1),ny(end)],[0,0])[]编写产生矩形序列的程序。并用它截取一个复正弦序列,最:..后画出波形。程序如下:clear;closealln0=input('输入序列起点:n0=');N=input('输入序列长度:N=');n1=input('输入位移:n1=');n=n0:n1+N+5;u=[(n-n1)>=0];x1=[(n-n1)>=0]-[(n-n1-N)>=0];x2=[(n>=n1)&(n<(N+n1))];x3=exp(j*n*pi/8).*x2;subplot(2,2,1);stem(n,x1,'.');xlabel('n');ylabel('x1(n)');axis([n0,max(n),0,1]);subplot(2,2,3);stem(n,x2,'.');xlabel('n');ylabel('x2(n)');axis([n0,max(n),0,1]);subplot(2,2,2);stem(n,real(x3),'.');xlabel('n');ylabel('x3(n)的实部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);subplot(2,2,4);stem(n,imag(x3),'.');xlabel('n');ylabel('x3(n)的虚部');line([n0,max(n)],[0,0]);axis([n0,max(n),-1,1]);:..[]利用已知条件,利用MATLAB生成图形。程序如下:clear;closeallN=24;M=8;m=input('输入位移值:m=');if(m<1|m>=N-M+1)fprintf('输入数据不在规定范围内!');breakendn=0:N-1;x1=().^n;x2=[(n>=0)&(n<M)];xn=x1.*x2;xm=zeros(1,N);fork=m+1:m+Mxm(k)=xn(k-m);endxc=xn(mod(n,8)+1);xcm=xn(mod(n-m,8)+1);subplot(2,2,1);stem(n,xn,'.');xlabel('n');ylabel('xn');axis([0,length(n),0,1]);subplot(2,2,2);stem(n,xm,'.');xlabel('n');ylabel('x(n-m)');axis([0,length(n),0,1]);subplot(2,2,3);stem(n,xc,'.');xlabel('n');ylabel('x(mod(n,g))');axis([0,length(n),0,1]);subplot(2,2,4);stem(n,xcm,'.');xlabel('n');ylabel('x(mod(n-m,g))');axis([0,length(n),0,1]);:..[]给定因果稳定线性时不变系统的差分方程,设为低通数字滤波器,其系统函数如下,求出系统的输出序列y(n)。程序如下:clear;closeall;N=64;n=0:N-1;m=10;B=*conv([1,1],conv([1,1],conv([1,1],...conv([1,1],conv([1,1],[1,1])))))A=conv([1,-,],conv([1,-,],...[1,-,]))x1=[n==0];y1=filter(B,A,x1);x2=[(n-m)==0];y2=filter(B,A,x2);x3=[n>=0];y3=filter(B,A,x3);x4=[(n>=0)&(n<32)];y4=filter(B,A,x4);x5=exp(j*pi*n/8);y5=filter(B,A,x5);subplot(3,2,1),stem(n,y1,'.')xlabel('n'),ylabel('y1(n)');axis([0,N,-,]);subplot(3,2,2),stem(n,y2,'.')xlabel('n'),ylabel('y2(n)');axis([0,N,-,]);subplot(3,2,3),stem(n,y3,'.')xlabel('n'),ylabel('y3(n)');:..axis([0,N,0,]);subplot(3,2,4),stem(n,y4,'.')xlabel('n'),ylabel('y4(n)');axis([0,N,-,]);subplot(3,2,5),stem(n,real(y5),'.')xlabel('n'),ylabel('Re[y5(n)]');axis([0,N,-]);subplot(3,2,6),stem(n,imag(y5),'.')xlabel('n'),ylabel('Im[y5(n)]');axis([0,N,-]);[]系统差分方程如下,要求用程序验证系统的线性性质。程序如下:clear;closeall;N=64;n=0:N-1;m=20B=1;A=[1,-];x1=.^n;x=[(n>=0)&(n<32)];x1=x1.*x;y1=filter(B,A,x1);x2=[(n-m)==0];y2=filter(B,A,x2);x3=5*x1+3*x2;:..y3=filter(B,A,x3);y=5*y1+3*y2;subplot(2,2,1),stem(n,y1,'.')xlabel('n'),ylabel('y1(n)');axis([0,N,0,2])subplot(2,2,2),stem(n,y2,'.')xlabel('n'),ylabel('y2(n)')axis([0,N,0,1])subplot(2,2,3),stem(n,y3,'.')xlabel('n'),ylabel('y3(n)')axis([0,N,0,10])subplot(2,2,4),stem(n,y,'.')xlabel('n'),ylabel('y4(n)')axis([0,N,0,10])问题解决:,出现了拼写错误,把tel写成了tle导致查错的时候很长一段时间没有发现错误在哪里。,:..导致最后程序执行的时候出现了好几个错误。,对于中括号和小括号的配对没有注意,导致执行时出现了错误。实验提问:(1)每行末尾……是什么意思?代表这行内容还没有结束。(2)==是什么意思?等于的意思。(3)filter是什么意思?滤波器。实验总结:通过本次实验,使我初步认识里数字信号处理实验的一些基本操作,了解了MATLAB软件数字信号处理工具箱的初步使用方法。并掌握了简单的MATLAB语言进行简单的时域信号分析。通过基本技能训练内容对这些知识掌握的更加熟练,更加深刻。实验二Z变换和傅立叶变换实验目的:掌握Z变换和反变换和傅立叶变换在MATLAB信号处理工具箱提供的求连续和离散系统频率响应的函数。实验内容:(1)有限长序列的Z变换和逆Z变换x1=[1,2,3];ns1=-1;nf1=ns1+length(x1)-1;x2=[2,4,3,5];ns2=-2;nf2=ns1+length(x1)-1;:..x=conv(x1,x2)n=(ns1+ns2):(nf1+nf2)结果:x=2817231915n=-3-2-1012(2)clear,closeallx=[2,4,3,5];nsx=-2;nfx=nsx+length(x)-1;Bw=-3;nsbw=-1;Aw=[2,-,.5];nsaw=0;B=conv(-3,x);A=Aw;nsy=nsaw-(nsbw-nsx)[r,p,k]=residuez(B,A):..nf=input('终点时间nf=');n=min(nsx,nsy):nf;yi=(r(1)*p(1).^(n-nsy)+r(2)*p(2).^(n-nsy)).*stepseq(nsy,n(1),nf);yd=k(1)*impseq(nsy,n(1),nf)+k(2)*impseq(-1-nsy,n(1),nf);y=yi+yd;xe=zeros(1,length(n));xe(find((n>=nsx)&(n<=nfx)==1))=x;subplot(2,1,1),stem(n,xe,'.'),line([min(n(1),0),nf],[0,0])subplot(2,1,2),stem(n,y,'.'),line([min(n(1),0),nf],[0,0])[x,n]=impseq(n0,ns,nf)n=[ns:nf];x=[(n-n0)==0];[x,n]=stepseq(n0,ns,nf)n=[ns:nf];x=[(n-n0)>=0];:..1)离散时间傅立叶变换disp('八点时间信号的离散时间傅立叶变换')x0=sin(2*pi*[1:8]/8)*5;dt=2*pi/8;w=linspace(-8,2*pi,1000)/dt;X0=dtft(x0,w)*dt;subplot(3,1,1),plot(w,abs(X0)),axis([-8,max(w),0,max(abs(X0))]),grid,shgdisp('重复N次的八点时间信号的离散离散时间傅立叶变换')N=input('N=');x1=reshape(x0'*ones(1,N),1,N*length(x0));X1=dtft(x1,w)*dt;:..subplot(3,1,2),plot(w,abs(X1)),axis([-8,max(w),0,max(abs(X1))]),grid,shgdisp('')pause,X2=fft(x0*dt);w1=2*pi*[0:length(x0)-1]/length(x0);subplot(3,1,3),stem([-w1,w1],[abs(X2),abs(X2)]),grid,shgaxis([-8,max(w),0,max(abs(X2))]),grid,=dtft(x,w)X=x*exp(-j*[1:length(x)]'*w);:..2)由离散序列恢复模拟信号clear,closeall;A=;a=50*sqrt(2)*pi;b=a;fork=1:2ifk==1Fs=400;elseifk==2Fs=1000;endT=1/Fs;dt=T/3;Tp=;t=0:dt:Tp;n=0:Tp/T;TMN=ones(length(n),1)*t-n'*T*ones(1,length(t));x=A*exp(-a*n*T).*sin(b*n*T);:..xa=x*sinc(Fs*TMN);subplot(2,1,k);plot(t,xa);holdonaxis([0,max(t),min(xa)-10,max(xa)+10]);st1=sprintf('Fs=%d',Fs);st2='Hz的采样序列z(n)重构的信号';st=[st1,st2];title(st)ylabel('xa(t)');xo=A*exp(-a*t).*sin(b*t);stem(t,xo,'.');line([0,max(t)],[0,0])emax2=max(abs(xa-xo))end:..3)梳状滤波器零极点和幅频特性clear;closeallb=[1,0,0,0,0,0,0,0,-1];a0=1;a1=[1,0,0,0,0,0,0,0,-()^8];a2=[1,0,0,0,0,0,0,0,-()^8];a3=[1,0,0,0,0,0,0,0,-()^8];[H,w]=freqz(b,a0);[H1,w1]=freqz(b,a1);[H2,w2]=freqz(b,a2);[H3,w3]=freqz(b,a3);subplot(4,2,1),zplane(b,a0),gridsubplot(4,2,2),zplane(b,a1),gridsubplot(4,2,3),plot(w/pi,abs(H)),gridsubplot(4,2,4),plot(w1/pi,abs(H1)),gridsubplot(4,2,5),zplane(b,a2),gridsubplot(4,2,6),zplane(b,a3),gridsubplot(4,2,7),plot(w2/pi,abs(H2)),gridsubplot(4,2,8),plot(w3/pi,abs(H3)),grid:..4)低通滤波效果及傅立叶变换时域卷积定理验证clear;closealln=0:255;N=4096;x=cos(*pi*n)+cos(*pi*n)+cos(*pi*n);w=randn(size(x));x=x+*w;b=[1,2,1];B=*conv(conv(b,b),b);a1=[1,-,];a2=[1,-,];:..a3=[1,-,];A=conv(conv(a1,a2),a3);y=filter(B,A,x);X=fft(x,N);Y=fft(y,N);[H,f]=freqz(B,A,N,'whole');Ym=H'.*X;k=0:N-1;f=2*k/N;subplot(3,2,1);stem(x,'.');xlabel('n'),ylabel('x(n)')subplot(3,2,2);plot(f,abs(X));xlabel('w/pi'),ylabel('IFT[y(n)]I')subplot(3,2,3);stem(y,'.');xlabel('n'),ylabel('y(n)')axis([0,60,-1,1])subplot(3,2,4);plot(f,abs(Y));xlabel('w/pi'),ylabel('Ift[y(n)]I')subplot(3,2,5);plot(f/pi,abs(H));xlabel('w/pi'),ylabel('H幅度')subplot(3,2,6);plot(f/pi,abs(Ym));xlabel('w/pi'),ylabel('Ym幅度'):..实验提问:(1)linspace是什么意思?用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、终止值、元素个数。(2)reshape是什么意思?塑形。实验总结:这次试验让我学会了Z变换和傅里叶变换,掌握Z变换和反变换和傅里叶变换在MATLAB中的处理过程,通过基本技能训练内容对这一技能掌握的更熟练了。并在实验的过程中发现了自己的不足,并加以改正。实验三离散傅立叶变换实验目的:应用MATLAB数字信号处理工具箱处理离散信号(DFT),对各种典型序列做傅立叶变换,验证N点DFT的物理意义,严整频域采样与时域采样的对偶性及快速卷积算法:..实验内容:(1)基本序列的离散傅立叶变换计算程序:clear;closeallN=16;N1=8;n=0:N-1;k=0:N1-1;x1n=exp(j*pi*n/8);X1k=fft(x1n,N);Xk1=fft(x1n,N1);x2n=cos(pi*n/8);X2k=fft(x2n,N);Xk2=fft(x2n,N1);x3n=sin(pi*n/8);X3k=fft(x3n,N);Xk3=fft(x3n,N1);subplot(2,3,1),stem(n,abs(X1k),'.')subplot(2,3,2),stem(n,abs(X2k),'.')subplot(2,3,3),stem(n,abs(X3k),'.')subplot(2,3,4),stem(k,abs(Xk1),'.')subplot(2,3,5),stem(k,abs(Xk2),'.')subplot(2,3,6),stem(k,abs(Xk3),'.')图形::..(2)验证N点DFT的物理意义clear;closeallN1=8;N2=16;n=0:N1-1;w=2*pi*(0:2047)/2048;Xw=(1-exp(-j*4*w))./(1-exp(-j*w));subplot(3,2,1);plot(w/pi,abs(Xw))title('x(n)的相频曲线');xlabel('w/pi');ylabel('幅度');subplot(3,2,2);plot(w/pi,angle(Xw))title('x(n)的相频曲线');axis([0,2,-pi,pi]);line([0,2],[0,0])xlabel('w/pi,');ylabel('相位(rad)');xn=[(n>=0)&(n<4)];X1k=fft(xn,N1);:..X2k=fft(xn,N2);k1=0:N1-1;subplot(3,2,3);stem(k1,abs(X1k),'.')title('N1点DFT[x(n)]=X1(k)')xlabel('k(w=2pik/N1)'):ylabel('|X1(k)|');holdonplot(N1/2*w/pi,abs(Xw))subplot(3,2,4);stem(k1,angle(X1k),'.')title('X1(k)的相位');axis([0,N1,-pi,pi]);line([0,N1],[0,0])xlabel('k(w=2pik/N1)');ylabel('相位(rad)');holdonplot(N1/2*w/pi,angle(Xw))k2=0:N2-1;subplot(3,2,5);stem(k2,abs(X2k),'.')title('N2点DFT[x(n)]=X2(k)')xlabel('k(w=2pik/N2)'):ylabel('|X2(k)|');holdonplot(N2/2*w/pi,abs(Xw))subplot(3,2,6);stem(k2,angle(X2k),'.')title('N2点DFT[x(n)]=X2(k)')holdonplot(N2/2*w/pi,angle(Xw)):..图形:(3)快速卷积程序:clear;closeallxn=input('请输入x(n)序列:xn=');hn=input('请输入h(n)长度:hn=');M=length(xn);N=length(hn);nx=1:M;nh=1:N;L=pow2(nextpow2(M+N-1));tic,Xk=fft(xn,L);Hk=fft(hn,L);Yk=Xk.*Hk;:..yn=ifft(Yk,L);tocsubplot(2,2,1),stem(nx,xn,'.');ylabel('x(n)')subplot(2,2,2),stem(nh,hn,'.');ylabel('h(n)')subplot(2,1,2);ny=1:L;stem(ny,real(yn),'.');ylabel('y(n)')tic,yn=conv(xn,hn);toc图形:实验总结:这次实验主要是应用MATLAB数字信号处理工具箱处理离散信号,各种典型序列做傅里叶变换,验证N点DFT的物理意义,严整频域采样与时:..域采样的对偶性及快速卷积算法。通过基本巡礼啊去年内容让我对实验的基本内容了解的更加深刻,并发现了自己的基础错误,收获非常大。实验四简单FIR数字滤波器的设计实验目的:掌握FIR数字滤波器的结构,运用窗函数法设计FIR数字滤波器实验内容:(1)用各种窗函数法设计FIR数字滤波器运行程序:clear;closeall;N=21;wc=pi/4;n=0:N-1;r=(N-1)/2;hdn=sin(wc*(n-r))/pi./(n-r);ifrem(N,2)~=0hdn(r+1)=wc/pi;endwn1=boxcar(N);hn1=hdn.*wn1';wn2=hamming(N);hn2=hdn.*wn2';subplot(3,2,1)stem(n,hn1,'.')line([0,20],[0,0]);:..title('矩形窗设计的h(n)');xlabel('n');ylabel('h(n)');subplot(3,2,3)stem(n,hn2,'.')line([0,20],[0,0]);title('hamming窗设计的h(n)');xlabel('n');ylabel('h(n)');hn11=fft(hn1,512);w=2*[0:511]/512;subplot(3,2,2)plot(w,20*log10(abs(hn11)))grid;axis([0,2,-80,5]);title('幅度特性');xlabel('w/pi');ylabel('幅度(dB)');hn22=fft(hn2,512);subplot(3,2,4)plot(w,20*log10(abs(hn22)))grid;axis([0,2,-80,5]);title('幅度特性');xlabel('w/pi');ylabel('幅度(dB)');:..f=[0,,,1];m=[0,0,1,1];b=fir2(30,f,m);n=0:30;subplot(3,2,5);stem(n,b,'.')xlabel('n');ylabel('h(n)');axis([0,30,-,]),line([0,30],[0,0])[h,w]=freqz(b,1,256);subplot(3,2,6);plot(w/pi,20*log10(abs(h)));gridaxis([0,1,-80,0]);xlabel('w/pi');ylabel('幅度(dB)');图形:(2)用窗函数法设计FIR带通滤波器运行程序:clear;closeall;wls=*pi;wlp=*pi;whp=*pi;:..B=wlp-wls;N=ceil(12/);n=0:N-1;wc=[wlp/pi-6/N,whp/pi+6/N];hn=fir1(N-1,wc,blackman(N));subplot(1,2,1);stem(n,hn,'.');xlabel('n');ylabel('h(n)');title('');hn11=fft(hn,512);w=2*[0:511]/512;subplot(1,2,2);plot(w,20*log10(abs(hn11)))grid;axis([0,2,-100,5]);title('幅度特性(dB)');xlabel('w/pi');ylabel('Magnitude(dB)');图形:通过本次实验,是我掌握了FIR数字滤波器的结构,运用窗函数法设计FIR数字滤波器,在做基本技能训练的过程中遇见了一些问题,但是通过对同:..IIR数字滤波器的设计实验目的:熟练掌握IIR数字滤波器的设计方法(模拟低通滤波器,高通带通滤波器及带阻滤波器)实验内容:(1)低通巴特沃斯模拟滤波器设计:运行程序:clear;closeallfp=3400;fs=4000;Rp=3;As=40;[N,fc]=buttord(fp,fs,Rp,As,'s')[B,A]=butter(N,fc,'s');[hf,f]=freqs(B,A,1024);subplot(3,2,1);plot(f,20*log10(abs(hf)/abs(hf(1))))grid;xlabel('f/Hz');ylabel('幅度(dB)');axis([0,4000,-40,5])line([0,4000],[-3,-3]);line([3400,3400],[-40,5]);:..2)模拟低通转换为数字低通滤波器运行程序:clear;closeallb=1000;a=[1,1000];w=[0:1000*2*pi];[hf,w]=freqs(b,a,w);subplot(2,3,1)plot(w/2/pi,abs(hf));grid;xlabel('f/(hz)');ylabel('fudu');Fs0=[1000,500];form=1:2:..Fs=Fs0(m);[d,c]=impinvar(b,a,Fs);wd=[0:512]*pi/512;hw1=freqz(d,c,wd);subplot(2,3,2)plot(wd/pi,abs(hw1)/abs(hw1(1)));holdon;endgrid;xlabel('f/(hz)');text(,,'T=');text(,,'T=');form=1:2Fs=Fs0(m);[f,e]=bilinear(b,a,Fs);wd=[0:512]*pi/512;hw2=freqz(f,e,wd);subplot(2,3,3)plot(w