资源描述:
《数字信号处理实验讲义 -采用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一信号(模拟、数字)的输入输出实验(常见离散信号产生和实现)一、实验目的1.加深对常用离散信号的理解;2.掌握matlab中一些基本函数的建立方法。二、实验原理1.单位抽样序列在MATLAB中可以利用zeros()函数实现。如果在时间轴上延迟了k个单位,得到即:2.单位阶跃序列在MATLAB中可以利用ones()函数实现。x=ones(1,N)3.正弦序列在MATLAB中,n=0:N-1;x=A*sin(2*pi*f*n/Fs+fai)4.复指数序列20在MATLAB中,n=0:N-1;x=r*exp(j*w*n)5.指数序列在MATLAB中,n=0:N-
2、1;x=a.^n三、实验内容实现和图形生成1.五种基本函数的生成程序如下:(1)单位抽样序列方法一:%单位抽样序列和延时的单位抽样序列n=0:10;x1=[1zeros(1,10)];x2=[zeros(1,5)1zeros(1,5)];subplot(1,2,1);stem(n,x1);xlabel('时间序列n');ylabel('振幅');title('单位抽样序列x1');subplot(1,2,2);stem(n,x2);xlabel('时间序列n');ylabel('振幅');title('延时了5的单位抽样序列');20方法二:先在matlab中
3、定义单位抽样序列:function[x,n]=dwxl(n1,n2,n0)n=[n1:n2];x=(n==n0);在运行命令:[x,n]=dwxl(-5,5,3)stem(n,x);xlabel('n');title('单位抽样序列x');(2)单位阶跃序列方法一:n=0:10;u=[ones(1,11)];stem(n,u);xlabel('时间序列n');ylabel('振幅');title('单位阶跃序列');所得的图形如下所示:方法二;20先在matlab中定义单位阶跃序列:function[x,n]=jyxl(n1,n2,n0)n=[n1:n2];x
4、=(n>=n0);在运行命令:[x,n]=jyxl(-5,5,3)stem(n,x);xlabel('n');title('单位阶跃序列x');(3)正弦函数n=1:30;x=2*sin(pi*n/6+pi/3);stem(n,x);xlabel('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');(4)复指数序列n=1:30;x=2*exp(j*3*n);stem(n,x);xlabel('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)');图形如
5、下:(5)指数序列n=1:30;20x=1.2.^n;stem(n,x);xlabel('时间序列n');ylabel('振幅');title('指数序列x=1.2.^n');2.绘出信号的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期?程序如下:n=0:40;x1=1.5*sin(2*pi*0.1*n);x2=sin(0.9*n);subplot(1,2,1);stem(n,x1);xlabel('时间序列n');ylabel('振幅');title('正弦序列x1=1.5*sin(2*pi*0.1*n)');subpl
6、ot(1,2,2);stem(n,x2);xlabel('时间序列n');ylabel('振幅');title('正弦序列x2=sin(0.9*n)'); 运行结果如下:由上图看出:x1=1.5*sin(2*pi*0.1*n)的周期是10,而x2=sin(0.9*n)是非周期的。理论计算中对第一个,N=2*pi/(0.1*pi)=10,第二个0.9不是pi20的倍数,所以不是周期的。因此可以看出,实验结果和理论相符。3.x(n)=[2,3,1,1,2,-1,0,3],-2≤n≤5;h(n)=[2,4,1,-2,0,-1],-3≤n≤2,手工计算和MATLAB计
7、算卷积y(n)=x(n)*h(n)。参考程序如果、的起点不为0,则采用conv_m计算卷积;编写conv_m函数:function[y,ny]=conv_m(x,nx,h,nh)%改进卷积程序nyb=nx(1)+nh(1);nye=nx(length(x))+nh(length(h));ny=[nyb:nye];y=conv(x,h);%MATLAB自带的函数在命令窗口输入:x=[3,11,7,0,-1,4,2];nx=[-3:3];h=[2,3,0,-5,2,1];nh=[-1:4];[y,ny]=conv_m(x,nx,h,nh)stem(ny,y,'.'
8、);xlabel('时间序号n');t