您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字信号处理实验指导书(合体版)
数字信号处理实验指导书实验名称:采样定理依托实验室:信号系统与处理实验室二00六年十二月数字信号处理实验一:采样定理一.实验目的1.熟练掌握SYSTEMVIEW软件工具的使用2.掌握采样定理的精髓3.了解采样定理在实际中的应用4.了解巴特沃斯滤波器的设计与仿真二.实验原理及方案1.采样定理的内容:奈奎斯特采样定理说明要从抽样信号中无失真地恢复原信号,抽样频率应大于或等于信号最高频率的2倍。抽样频率小于信号最高频率的2倍时,抽样信号的频谱有混叠,用低通滤波器不可能恢复原始信号。2.实验方案:三.实验内容系统参数设置:(1)系统时钟采样频率:最好大于4000HZ信号预处理抽样脉冲信号源低通滤波乘法器观察信号波形(2)观察时间0—0.1秒(3)低通滤波器:巴特沃斯滤波器(5阶,截止频率150HZ)(4)信号预处理:低通滤波器+放大器(5)抽样脉冲宽度:0.002秒1.信号源是100HZ的正弦波;抽样信号的频率分别设置为180HZ,350HZ,800HZ,分别观察信号的输出波形是否有失真,记录结果。2.信号源是20HZ的方波抽样信号的频率分别设置为180HZ,350HZ,800HZ,分别观察信号的输出波形是否有失真,记录结果。四.实验结果分析分析实验内容中信号的频率改变以及抽样脉冲频率改变对结果的影响,在分析的基础上得出结论。五.思考题1.方波信号的最大频率如何确定?2.为什么180HZ的采样频率会使结果失真?3.滤波器的阶数改变时对结果有何影响?4.系统的时钟抽样频率如何确定,为什么越大越好?数字信号处理实验一序列的绘图一、实验目的:1.了解MATLAB的实验环境;2.充分熟悉subplot函数的使用;3.能够画出单位脉冲序列及单位阶跃序列的图形;4.能够画出矩形序列及正弦序列的图形。二、实验步骤:1.打开MATLAB,了解三个区域(工作区、命令区、历史记录区)的作用;2.用help查找subplot函数的使用情况;3.编辑并生成函数impseq.m(单位脉冲序列)function[x,n]=impseq(n0,n1,n2)%产生x(n)=delta(n-n0);n1=n,n0=n2%[x,n]=impseq(n0,n1,n2)if((n0n1)|(n0n2)|(n1n2))error('参数必须满足n1=n0=n2')endn=[n1:n2];%x=[zeros(1,(n0-n1)),1,zeros(1,(n2-n0))];x=[(n-n0)==0];以及函数stepseq.m(单位阶跃序列)function[x,n]=stepseq(n0,n1,n2)%产生x(n)=u(n-n0);n1=n0=n2%[x,n]=stepseq(n0,n1,n2)if((n0n1)|(n0n2)|(n1n2))error('参数必须满足n1=n0=n2')endn=[n1:n2];%x=[zeros(1,(n0-n1)),ones(1,(n2-n0+1))];x=[(n-n0)=0];主函数test1.mn=[-5:5];x1=impseq(0,-5,5);subplot(2,2,1);stem(n,x1);title('单位脉冲序列')xlabel('n');ylabel('x(n)');n=[0:10];x2=stepseq(0,0,10);subplot(2,2,2);stem(n,x2);title('单位阶跃序列');xlabel('n');ylabel('x(n)');或主函数test2.mn=[0:10];x3=stepseq(0,0,10)-stepseq(5,0,10);subplot(2,2,3);stem(n,x3);title('矩形序列');xlabel('n');ylabel('x(n)');n=[0:20];x4=sin(0.3*n);subplot(2,2,4);stem(n,x4);title('正弦序列');xlabel('n');ylabel('x(n)');4.先运行test1.m,再运行test2.m,并改变坐标尺度n的范围,分别画出另外两种坐标尺度的图形。5.画出)5(n,)3(nu,)2()3(nunu,sin(0.6*n)的图形。三、实验报告要求:1.实验目的2.实验步骤3.16个图形的结果,并得出结论或体会。4.思考题:请问有几种方法可以改变坐标尺度?数字信号处理实验二序列的运算一、实验目的:5.充分熟悉复指数函数find、sigshift、sigfold函数的使用;6.熟悉序列的加、减、乘、除、移位、折叠的计算;7.能够画出结果的图形。二、实验步骤:6.用help查找find、sigshift、sigfold函数的使用情况;7.编辑并生成函数sigadd.m(序列相加)function[y,n]=sigadd(x1,n1,x2,n2)%实现y(n)=x1(n)+x2(n)%[y,n]=sigadd(x1,n1,x2,n2)%y=在包含n1和n2的n点上求序列和%x1=在n1上的第一序列%x2=在n2上的第二序列(n2可与n1不等)n=min(min(n1),min(n2)):max(max(n1),max(n2));%y(n)的长度y1=zeros(1,length(n));y2=y1;%初始化y1(find((n=min(n1))&(n=max(n1))==1))=x1;%具有y的长度的x1y2(find((n=min(n2))&(n=max(n2))==1))=x2;%具有y的长度的x2y=y1+y2;%序列相加.8.编辑并生成函数sigmult.m(序列相乘)function[y,n]=sigmult(x1,n1,x2,n2)%实现y(n)=x1(n)*x2(n)%[y,n]=sigmult(x1,n1,x2,n2)%y=在n区间上的乘积序列,n包含n1和n2%x1=在n1上的第一序列%x2=在n2上的第二序列(n2可与n1不等)n=min(min(n1),min(n2)):max(max(n1),max(n2));%y(n)的长度y1=zeros(1,length(n));y2=y1;%初始化y1(find((n=min(n1))&(n=max(n1))==1))=x1;%具有y的长度的x1y2(find((n=min(n2))&(n=max(n2))==1))=x2;%具有y的长度的x2y=y1.*y2;%序列相乘9.编辑并生成函数sigshift.m(序列移位)function[y,n]=sigshift(x,m,n0)%实现y(n)=x(n-n0)%[y,n]=sigshift(x,m,n0)n=m+n0;y=x;10.编辑并生成函数sigfold.m(序列折叠)function[y,n]=sigfold(x,n)%实现y(n)=x(-n)%[y,n]=sigfold(x,n)y=fliplr(x);n=-fliplr(n);11.编辑并生成实现两序列相乘和相加程序clc;clear;x1=[0,1,2,3,4,3,2,1,0];n1=-2:6;x2=[2,2,0,0,0,-2,-2];n2=2:8;[y1,n]=sigmult(x1,n1,x2,n2);[y2,n]=sigadd(x1,n1,x2,n2);subplot(2,2,1);stem(n1,x1);title('序列x1')xlabel('n');ylabel('x1(n)');subplot(2,2,2);stem(n2,x2);title('序列x2')xlabel('n');ylabel('x2(n)');subplot(2,2,3);stem(n,y1);title('两序列相乘')xlabel('n');ylabel('y1(n)');subplot(2,2,4);stem(n,y2);title('两序列相加')xlabel('n');ylabel('y2(n)');12.改变坐标尺度重新画图,使图形更加直观;13.在命令窗口打出x1,x2,y1,y2的值,并贴进实验报告。14.编辑并生成实现序列移位和折叠程序x1=[0,1,2,3,4,3,2,1,0];n1=-2:6;[y1,n2]=sigshift(x1,n1,2);[y2,n3]=sigfold(x1,n1);subplot(3,1,1);stem(n1,x1);title('序列x1')xlabel('n');ylabel('x1(n)');subplot(3,1,2);stem(n2,y1);title('序列移位')xlabel('n');ylabel('y1(n)');subplot(3,1,3);stem(n3,y2);title('序列折叠')xlabel('n');ylabel('y2(n)');9.在命令窗口打出y1,y2,n2,n3的值,并贴进实验报告。10.画出y3=2x1(2-n),y4=x1(3n)的图形,在命令窗口打出y3,y4的值,并贴进实验报告。三、实验报告要求:5.实验目的6.实验步骤7.根据图形的结果,得出结论或体会。数字信号处理实验三复指数序列的绘图一、实验目的:8.充分熟悉复指数函数exp的使用;9.熟悉复指数函数的实部、虚部、振幅、相位的计算;10.能够画出复指数函数实部、虚部、振幅、相位的图形。二、实验步骤:15.用help查找exp函数的使用情况;16.编辑并生成函数exp.m(单位脉冲序列)n=[0:1:20];alpha=-0.1+0.5j;x=exp(alpha*n);subplot(2,2,1);stem(n,real(x));title('实部');xlabel('n')subplot(2,2,3);stem(n,imag(x));title('虚部');xlabel('n')subplot(2,2,2);stem(n,abs(x));title('振幅');xlabel('n')subplot(2,2,4);stem(n,(180/pi)*angle(x));title('相位');xlabel('n')17.先运行exp.m,画出图形,分析图形的结果。18.当alpha=-0.1+0.5j时,计算x的共轭对称分量和共轭反对称分量.也分实部、虚部、振幅、相位分别画图。5.再改变alpha=1.5,alpha=-2,画出图形,分析图形的结果。三、实验报告要求:8.实验目的9.实验步骤10.14个图形的结果,并得出结论或体会。11.思考题:试用公式表示x=exp(alpha*n)的实部、虚部、振幅、相位。数字信号处理实验四序列的卷积和一、实验目的:11.充分熟悉conv函数的使用;12.熟悉序列卷积和的计算;13.能够画出结果的图形。二、实验步骤:19.用help查找conv函数的使用情况;20.编辑并生成函数conv_m.m(带长度的卷积和)function[y,ny]=conv_m(x,nx,h,nh)%信号处理的改进卷积程序%[y,ny]=conv_m(x,nx,h,nh)%y=卷积结果%ny=y的基底(support)%x=基底nx上的第一个信号%nx=x的支架%h=基底nh上的第二个信号%nh=h的基底nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h));ny=[nyb:nye];y=conv(x,h);21.编辑并生成函数sigconv.m(序列卷积和)x=[00.511.50];nx=-1:3;h=[11100];nh=-2:2;[y,ny]=conv_m(x,nx,h,nh);%y=conv(x,h);subplot(2,2,1);stem(nx,x);title('序列x')xlabel('n');ylabel('x(n)');subplot(2,2,2);stem(nh,h);title('序列h')xlabel('n');ylabel('h(n)');subpl
本文标题:数字信号处理实验指导书(合体版)
链接地址:https://www.777doc.com/doc-2387727 .html