实验一常用信号的Matlab表示及运算一、实验目的1、掌握Matlab中表示信号的方法.2、掌握Matlab中信号运算的实现方法。3、掌握在Matlab中画信号波形的方法。二、实验原理1、Matlab中表示信号的方法信号可以分为连续时间信号与离散时间信号,由于Matlab是通过软件进行信号处理的,所以Matlab中的信号都是离散时间信号,不过在一定条件下,可以近似地表示连续信号。Matlab语言中的基本数据类型是向量和矩阵,所以信号也用向量或矩阵来表示,列向量和行向量表示单通道信号,矩阵表示多通道信号,矩阵中的每一列表示一个通道。例如,输入语句x=[12357]’;就定义了一个五采样点的离散信号x,以x为基础,可以定义3通道信号y=[xx/22*x];结果为y=1.00000.50002.00002.00001.00004.00003.00001.50006.00005.00002.500010.00007.00003.500014.0000需要注意的是,Matlab约定向量和矩阵的下标从1开始,如果用户要指定信号的真实时间下标,则应另外构造一个向量作为时间轴。例如表示离散信号x(n)={x(-2)x(-1)x(0)x(1)x(2)};则应定义时间轴向量nn=[-2-1012];然后定义采样点向量x=[12357];键入命令stem(n,x)axis([-3208])就可以得到具有真实时间下标的信号x(n)的图形,见图1.1。若要产生具有特定采样频率的信号,也需要定义时间轴向量。例如要产生一个采样频率为1000Hz的采样信号,应先定义时间轴Fs=1000;t=0:1/Fs:1;然后定义采样信号x=sin(2*pi*50*t)+2*sin(2*pi*120*t);键入命令stem(t(1:50),x(1:50))就可以画出信号x的前50个采样点的图形,见图1.2。-3-2.5-2-1.5-1-0.500.511.5201234567800.0050.010.0150.020.0250.030.0350.040.0450.05-3-2-10123图1.1图1.2若要近似地表示连续信号x=sin(2*pi*50*t)+2*sin(2*pi*120*t);前面定义时间轴和信号x的语句可保持不变,只需将画图的命令改成plot(t(1:50),x(1:50))即可得到连续的波形,见图1.3。00.0050.010.0150.020.0250.030.0350.040.0450.05-3-2-10123图1.3需要说明的是,Matlab中画离散信号的图形用stem命令,例如画图1.1和图1.2,画连续信号的波形用plot命令,例如画图1.3。表1.1是常用序列的数学描述和Matlab表示。表1.1常用序列的数学描述和Matlab表示名称数学描述Matlab表示单位采样信号)(nx=zeros(1,N);x(1)=1;单位阶跃信号)(nux=ones(1,N);实指数信号为实常数aanxn,)(n=0:N-1;x=a.^n;复指数信号均为实常数,,)(jnenxn=0:N-1;x=exp((sigema+j*w)*n);正(余)弦信号均为实常数,),sin()(nnxn=0:N-1;x=sin(w*n+sita);MATLAB提供了许多工具箱函数来产生信号,其中大部分函数都需要一个时间向量t作为参数。下面列举几种常用的函数:正弦信号:用sin()函数产生。格式:x=sin(t);产生周期为2的正弦信号。周期锯齿波或三角波信号:用sawtooth()函数产生。格式:x=sawtooth(t)产生周期为2,函数值从-1到+1的锯齿波,在2的整数倍处,值为-1,从-1到+1这一段波形的斜率为1/2。x=sawtooth(t,0.5)产生周期为2,函数值从-1到+1的三角波。方波信号:用square()函数产生。格式:x=square(t)产生周期为2,函数值为-1和+1的方波信号。x=square(t,DUTY)产生周期为2,占空比为DUTY*1%,函数值为-1和+1的方波信号。例:输入以下语句:t=[-2:0.001:2];时间向量作为参数(该句必不可少)x=square(pi*t);形成周期为2的方波plot(t,x);显示波形axis([-22-1.21.2]);规定横轴的范围为[-22],纵轴的范围为[-1.21.2]显示的波形如图1.4:-2-1.5-1-0.500.511.52-1-0.8-0.6-0.4-0.200.20.40.60.81-5-4-3-2-1012345-0.4-0.200.20.40.60.81图1.4图1.5Sinc函数或tt)sin(函数:用sinc()函数产生。格式:x=sinc(t)产生sinc(t)信号,即0)sin(01csintπtπttt例:产生sinc函数波形,结果见图1.5:t=linspace(-5,5);x=sinc(t);plot(t,x)2、Matlab中信号运算的实现方法表1.2是信号运算的基本描述和Matlab实现。表1.2信号运算的基本描述和Matlab实现运算名称数学描述Matlab表示信号加)()()(21nxnxnxx=x1+x2;信号乘)()()(21nxnxnxx=x1.*x2;幅度变化为常数)()(nxnyy=alpha*x;位移为整数00)()(nnnxnyy=[zeros(1,n0)x];折叠nxny)(y=fliplr(x);n=-fliplr(n);采样和21)(nnnnxnyy=sum(x(n1:n2));采样积21)(nnnnxnyy=prod(x(n1:n2));N次幂(N为常数)nxnyN)(y=x.^N;三、实验内容和步骤1、阅读本实验的实验原理。2、用Matlab生成以下信号,并画出其图形。}12108642{)(01nnxnRnxn325.0)(nRenxn8)6(j3)()873sin(2)(4ttx连续信号s1.0,)()(),(455采样间隔为采样所得是对txnxnx。nxnx3)(16四、实验报告要求1、简述实验原理及目的。2、给出完成实验内容所需的源程序和生成的信号波形。