实验一离散时间信号与系统的时域分析.ppt
实验一 离散时间信号与系统的时域分析,一、实验目的,1、掌握离散时间信号的MATLAB表示;2、信号运算;3、离散时间信号的卷积运算。,二、实验原理,离散时间信号离散时间信号只在某些离散的瞬时给出函数值,而在其他时刻无定义。它是时间上不连续按一定先后次序排列的一组数的集合,称为时间序列,用x(n)表示,n取整数代表时间的离散时刻。在matlab中用向量来表示一个有限长度的序列。序列的类型为了分析的方便,在数字信号处理中规定了一些基本的序列。,单位采样序列,function x,n=impseq(n1,n2,n0)n=n1:n2;x=(n-n0)=0;,调用该函数x,n=impseq(-2,8,2);stem(n,x),单位采样序列的另一种生成方法,n0=-2;n=-10:10;nc=length(n);x=zeros(1,nc);for i=1:nc if n(i)=n0 x(i)=1 endendstem(n,x),单位阶跃序列,function x,n=stepseq(n1,n2,n0)n=n1:n2;x=(n-n0)=0;,调用该函数x,n=stepseq(-2,8,2);stem(n,x),实数指数序列,x(n)=an(运算符“.”)n=0:10;x=0.9.n;stem(n,x),复数指数序列,n=-10:10;alpha=-0.1+0.3*j;x=exp(alpha*n);real_x=real(x);image_x=imag(x);mag_x=abs(x);phase_x=angle(x);subplot(2,2,1);stem(n,real_x)subplot(2,2,2);stem(n,image_x)subplot(2,2,3);stem(n,mag_x)subplot(2,2,4);stem(n,phase_x),正、余弦序列,n=0:10;x=3*cos(0.1*pi*n+pi/3);stem(n,x),随机序列,rand(1,N)产生其元素在0,1之间均匀分布长度为N的随机序列randn(1,N)产生均值为0,方差为1,长度为N的高斯随机序列,周期序列,如果序列x(n)=x(n+N)如何生成周期序列 1、将一个周期复制p次;2、借助矩阵运算、matlab下标能力。先生成一个包含p列x(n)值的矩阵,然后用结构(:)来把p列串接成一个长周期序列。因为这个结构只能用于列向,最后还需要做矩阵转置获得所需序列。,例:生成3个周期的周期序列x=1,2,3;一个x(n)xn=x*ones(1,3)生成p列x(n)xn=xn(:)将p列串接成长列序列并转置,信号运算,信号时移信号倒置信号加信号乘信号微分信号积分等,序列运算,在matlab中进行序列运算要求参与运算的序列的长度要一样,如果出现长度不一样或者长度相同但采样位置不同时,不能直接利用加减运算符,利用matlab中的下标运算使其具有相同的长度。,function y,n=sigadd(x1,n1,x2,n2)n=min(min(n1),min(n2):max(max(n1),max(n2);y1=zeros(1,length(n);y2=y1;y1(find(n=min(n1),移位,function y,n=sigshift(x,m,n0)n=m+n0;y=x;,例:求出下列波形 x1(n)=2x(n-5)-3x(n+4),n=-2:10;x=1:7,6:-1:1;x11,n11=sigshift(x,n,5);x12,n12=sigshift(x,n,-4);x1,n1=sigadd(2*x11,n11,-3*x12,n12);stem(n1,x1),离散卷积的计算公式如下:序列x(n)、h(n)可以是有限长或无限长,但为了在计算机上绘图观察方便,我们主要讨论有限长序列。如果x(n)和h(n)长度分别为M和N,则响应序列y(n)也为有限长序列,其长度为 L=M+N-1。于是,上式可以“形象”地描述为两个有限长序列的反褶、移位、相乘、累加过程,这使计算机编程十分方便。,卷积函数conv(a,b),实现两个序列a,b的卷积。,例:假定两个序列。x=3,11,7,0,-1,4,2;h=2,3,0,-5,2,1;c=conv(x,y);stem(c),将函数conv稍加扩展为函数conv-m,它可以对任意的序列求卷积。格式如下:function y,ny=conv-m(x,nx,h,nh,p)%信号处理的改进卷积程序 nyb=nx(1)+nh(1);nyc=nx(length(x)+nh(length(h);ny=nyb:p:nyc;y=conv(x,h);,已知试求卷积C(t)=f1(t)*f2(t),并绘制出f1、f2、及卷积以后的波形。,p=0.1;t1=0:p:1;f1=t1.*(t10);t2=-1:p:2;f2=t2.*exp(-t2).*(t2=0)+exp(t2).*(t20);y,ny=conv_m(f1,t1,f2,t2,p);Subplot(3,1,1);stem(t1,f1)Subplot(3,1,2);stem(t2,f2)Subplot(3,1,3);stem(ny,y),练习题,1、利用zeros和ones函数来产生单位阶跃序列。函数格式:zeros(1,n)ones(1,n)n为序列长度。2、已知一个IIR数字低通滤波器的系统函数公式为 输入一个矩形信号序列 x=square(n/5)(-2n10),求该系统的响应。(h,t=impz(b,a,n),四、实验报告要求,简述实验目的和实验原理。列写练习题的代码并绘制程序产生的图形。总结实验中你的收获和体会。,