实验一脉冲时间信号MATLAB表示
- 格式:doc
- 大小:126.32 KB
- 文档页数:6
一、概述脉冲信号是指在一段时间内突然发生的信号,其幅度瞬间上升并在短时间内保持恒定。
脉冲信号在工程领域中有着广泛的应用,比如在雷达系统、通信系统和生物医学工程中经常会用到脉冲信号。
而MATLAB作为一种强大的数学软件工具,可以用来快速、方便地生成和分析各种信号,包括脉冲信号。
本文将介绍如何使用MATLAB编写程序来输出脉冲信号。
二、MATLAB中的脉冲信号表示在MATLAB中,脉冲信号可以用一个突变的方波来表示。
这个方波的宽度非常窄,幅度非常高,代表了脉冲信号的特点。
通过控制方波的宽度和幅度,我们可以生成不同特征的脉冲信号。
三、MATLAB程序实现下面是一个简单的MATLAB程序,用来生成一个持续时间为0.1秒的脉冲信号。
```matlab设置脉冲信号的参数pulseWidth = 0.001; 脉冲宽度为0.001秒pulseAmplitude = 10; 脉冲幅度为10生成时间向量t = 0:0.0001:0.1; 时间范围为0到0.1秒,时间步长为0.0001秒生成脉冲信号pulseSignal = (t<=pulseWidth) * pulseAmplitude;绘制脉冲信号图像plot(t, pulseSignal);xlabel('Time (s)');ylabel('Amplitude');title('Pulse Signal');```上述程序首先设置了脉冲信号的参数,包括脉冲宽度和脉冲幅度。
然后生成了一个时间向量,并利用MATLAB中的逻辑运算生成了脉冲信号。
利用plot函数绘制了脉冲信号的图像。
四、程序运行结果运行上述程序后,我们可以得到一个如图所示的脉冲信号图像。
图中可以清晰地看到脉冲信号在0.001秒内瞬间达到了幅度为10的峰值,并在接下来的时间内保持恒定。
五、扩展除了简单的脉冲信号外,我们还可以利用MATLAB编写程序来生成更复杂的脉冲信号。
实验1 利用matlab进行系统的时域分析一.实验目的:1.了解离散时间序列卷积与的matlab实现;2.利用卷积与求解系统的零状态响应;二.实验原理:1.连续时间系统零状态响应的求解连续时间LTI系统以常系数微分方程描述,系统的零状态响应可通过求解初始状态为零的微分方程得到。
在MATLAB中,控制系统工具箱提供了一个用于求解零初始状态微分方程数值解的函数lsim。
其调用方式为y= lsim( sys,x,t)式中t表示计算系统响应的抽样点向量,x就是系统输入信号向量,sys就是连续时间LTI系统模型,用来表示微分方程、差分方程、状态方程。
在求解微分方程时,微分方程的连续时间LTI系统模型sys要借助tf函数获得,其调用方式为sys= tf(b,a)式中b与a分别为微分方程右端与左端各项的系数向量。
例如对3阶微分方程+++=+++可用a=[ a3, a2, a1, a0];b=[b3 ,b2, b1,b0]; sys=tf( b,a)获得连续时间LTI模型。
注意微分方程中为零的系数一定要写入向量a与b中。
【例2-1】描述某力学系统中物体位移y(t)与外力f(t)的关系为++y(t)=x(t)物体质量m=l kg,弹簧的弹性系数ks= 100 N/m,物体与地面的摩擦系数fd=2 N·s/m,系统的初始储能为零,若外力x(t)就是振幅为10、周期为1的正弦信号,求物体的位移y(t)。
解:由已知条件,系统的输入信号为x(t)=10sin(2πt),系统的微分方程为++100y(t)=x(t)计算物体位移y(t)的MATLAB程序如下:%program2_1微分方程求解ts=0;te=5;dt=0、01;sys=tf([1],[1 2 100]);t=ts:dt:te;x=10*sin(2*pi*t);y=lsim(sys,x,t);plot(t,y);xlabel('Time(sec)')ylabel('y(t)')-0.25-0.2-0.15-0.1-0.0500.050.10.150.2Time(sec)y (t )图2-1系统的零状态响应2、连续时间系统冲激响应与阶跃响应的求解在MATLAB 中,求解系统冲激响应可应用控制系统工具箱提供的函数impulse,求解阶跃响应可利用函数step 。
实验一基本信号在 MATLAB中的表示和运算一、[实验目的]1.学会常用连续信号的MATLAB表示方法;2.学会用MATLAB进行信号的基本运算,为信号分析和滤波器设计奠定基础;3. 通过信号的求导,观察信号在跳变点处的导数;4. 通过卷积积分运算,观察两个时限信号的卷积积分结果所具有的特点;5. 掌握信号相关与卷积的关系;6. 通过实验熟悉自相关和互相关性质在周期信号识别、延迟信号检测等场合中的应用。
三、[实验内容]1.验证实验原理中所述的有关程序;2.绘出下列信号的时域波形及其导数波形(注意在绘制导数波形图时,为便于观察结果,可调整坐标轴,如t=-3:h:4;并合理利用坐标轴调整函数axis)3.绘制如图所示信号及其积分波形。
4. 求如图所示函数f1(t)和f2(t )的卷积积分,并给出卷积结果的图形。
5. 编写信号相关的函数%Rxy为相关估计,消除步长的影响%tao为相关估计Rxy的序号向量%x为参加相关的信号,xt为信号 x的序号向量%y为需反转的信号,yt为 y的序号向量%dt为xt 或yt的步长(xt,yt的步长要一致)%信号反转可利用:ytf=fliplr(-yt);yf=fliplr(y);6.已知两信号x=rectpuls(t-0.5,1); y=rectpuls(t+0.5,1) ;调用自编函数[Rxy,tao]=my_xcorr(x,xt,y,yt,dt)计算 x 与 y 的时延差,即Rxy 取得最大值的时刻。
7. 已知频率为10Hz的余弦信号,分别求:(1)不带噪声的余弦信号的自相关;(2)分别求带有白噪声干扰的频率为 10Hz 的余弦信号和白噪声信号的自相关函数并进行比较,得出相应的结论。
主要信号如下:N=1000;Fs=500; %数据长度和采样频率n=0:N-1; t=n/Fs; %时间序列x=cos(2*pi*10*t); %频率为10Hz的余弦信号xz=cos(2*pi*10*t)+0.6*randn(1,length(t)); %带有白噪声干扰的频率为10Hz 的余弦信号noise_sig=randn(1,length(x)); %产生一与 x长度一致的随y=cos(2*pi*20*t); %频率为20Hz的余弦信号xy=x+y; 频率为10Hz, 20Hz的余弦信号的叠加信号…..调用 MATLAB 提供的函数[Rxx,tao]=xcorr(x,Lags,'unbiased')完成三个自相关运算。
信号软件实验报告实验一信号在matlab 中的显示1、使用MATLAB 命令画出下列信号的波形图(1)||21)(t e t y -=a=-2;t=-3:0.001:3;ft=exp(a*abs(t));plot(t,ft),grid on ;axis([-3,3,0,3])(2)n()y)9.0(n2n=-100:100;a=0.9;xn=a.^n;stem(n,xn);grid onaxis([-10,10,0,6])(3)33)(n i e n y π=(-1010≤≤n )的实部 i=sqrt(-1);a=i*pi/3;n=-10:10;xn=exp(a*n);stem(n,real(xn)); grid onaxis([-10,10,-3,3])A=3;a=-2;t=0:0.01:3;ft=A*exp(a*t);plot(t,ft),grid onaxis([0,3,0,3])title('单边指数衰减信号')A=1;w=2*pi;phi=pi/6;t=0:0.01:3;ft=A*sin(w*t+phi); plot(t,ft),grid on axis([0,3,-3,3]) title('正弦信号')t=-10:0.001:10;ft=sinc(t);plot(t,ft),grid on axis([-10,10,-1,1]) title('抽样信号')t=0:0.01:10;ft=square(3*t,60); plot(t,ft),grid on axis([0,10,-2,2]) title('周期方波信号')t=-4:0.001:4;ft=tripuls(t,6,0.7);plot(t,ft),grid onaxis([-4,4,-1,2])title('非周期三角波信号')t=-6:0.001:6;ft=sawtooth(pi*t,0.5); plot(t,ft),grid onaxis([-6,6,-2,2])title('周期三角波函数')离散时间信号n=0:20;a=-0.9;xn=a.^n;stem(n,xn);grid onaxis([0,20,-1.2,1.2]) title('指数序列')实验二信号运算的MATLAB 实现1、试用MATLAB 命令画出下列波形(1)53)(21++=t t t yt=-100:100;ft=3*t.^2+t+5;plot(t,ft),grid onaxis([-60,60,3,1000])(2))(5sin )(2t u t t t y •=πt=-3:0.001:100;w=5*pi;ft=t.*sin(w*t).*heaviside(t);plot(t,ft),grid onaxis([-1,5,0,5])(3))9sin()10sin()(2t e t et f t t ππ--+= t=-3:0.001:3;a1=-1;a2=-1/2;w1=10*pi;w2=9*pi;ft=exp(a1*t).*sin(w1*t)+exp(a2*t).*sin(w2*t);plot(t,ft),grid onaxis([-4,4,-15,15])2、试用MATLAB命令,自行完成教材中的同类习题1))(t f是幅度为1,宽度为2,斜率为0.5的非周期三角波信号,画出)2(tf-的波形图tf、、-)f((t)2t=-4:0.001:4;ft=tripuls(t,2,0.5);subplot(2,2,1),plot(t,ft),grid onaxis([-4,4,-0.5,1.5])title('f(t-1)')ft1=tripuls(t-2,2,0.5);subplot(2,2,2),plot(t,ft1),grid onaxis([-4,4,-0.5,1.5])title('f(t)')ft2=tripuls(-t,2,0.5);subplot(2,2,3),plot(t,ft2),grid onaxis([-4,4,-0.5,1.5])title('f(t+1)')ft3=tripuls(2*t,2,0.5);subplot(2,2,4),plot(t,ft3),grid onaxis([-4,4,-0.5,1.5])title('f(3t)')2)离散信号n n f 5.0)(=,80≤≤n ,画出)2()(n f n f 、-的波形图x=0:6;n=0:1:6;x=0.5*n;subplot(311),stem(n,x);title('原信号');xlabel('f(n)');x2=fliplr(x);subplot(312),stem(n,x2);title('信号反折');xlabel('f(n)');n=0:1:floor(length(x)/3)x3=2.*n;subplot(313),stem(n,x3);title('尺度变换');xlabel('f(3n)');3)分别求x x y x y sin ),2sin(221==关于变量x 的一阶导数syms a x y1 y2;y1=sin(3.*x^2);y2=x*sin(x);dy1=diff(y1,'x')dy2=diff(y2,'x')4)求⎰103sin 2-1xdxsyms x yy=1-2.*sin(3*x);int(y,0,1)5)计算)(2)(t u t y =的微分与积分syms t ;y=2*heaviside(t);dy=diff(y)f=int(dy)6)已知)6sin()(),sin()(21t t f t t f Ω=Ω=,绘出)()()()(2121t f t f t f t f 和+的波形图,Hz f 3=f=3;t=0:0.01:3/f;f1=sin(2*pi*f*t);f2=sin(2*pi*6*f*t);subplot(211),plot(t,f1+f2),grid on ,title('f1+f2');subplot(212),plot(t,f1.*f2),grid on ,title('f1*f2');7))f为幅度1,宽度2,斜率0.5的非周期三角波,画出奇对称分量和偶对称(t分量的波形图t=-4:0.001:4;ft=tripuls(t,2,0.5);subplot(2,2,1),plot(t,ft),grid onaxis([-4,4,-0.5,1.5])title('f(t)')ft1=tripuls(-t,2,0.5);subplot(2,2,2),plot(t,ft1),grid onaxis([-4,4,-0.5,1.5])title('f(-t)')fet=1/2*(ft+ft1);subplot(2,2,3),plot(t,fet),grid onaxis([-4,4,-0.5,1.5])title('fe(t)')fot=1/2*(ft-ft1);subplot(2,2,4),plot(t,fot),grid onaxis([-4,4,-0.5,1.5])title('fo(t)')实验三 信号的卷积计算自行完成教材中同类型习题1、已知)(*)()(),4()1()(),1()()(t h t f t y t u t u t h t u t u t f =---=--=试求时域积分有 p=0.01;t1=0:p:2;f=ones(size(t1));t2=1:p:4;h=ones(size(t2));y=conv(f,h);y=y*p;t0=t1(1)+t2(1);t3=length(f)+length(h)-2;t=t0:p:(t3*p+t0);subplot(221)plot(t1,f)title('f(t)')xlabel('t')ylabel('f(t)')subplot(222)plot(t2,h)title('h(t)')xlabel('t')ylabel('h(t)')subplot(223)plot(t,y);g=get(gca,'position'); g(3)=2.5*g(3);set(gca,'position',g) title('y(t)=f(t)*h(t)') xlabel('t')ylabel('y(t)')2、求的卷积与)(*2)(2sin )(4t t e e t g t t f +==- s=0.1;k1=0:s:10;k2=k1;f=sin(2*k1);g=2*(exp(-k2)+exp(4*(-k2))); y=conv(f,g);y=y*s;k0=k1(1)+k2(1);k3=length(f)+length(g)-2;k=k0:s:k3*s;subplot(3,1,1);plot(k1,f);title('f(t)'); subplot(3,1,2);plot(k2,g);title('g(t)'); subplot(3,1,3);plot(k,y);title('y(t)');3、nsin)(*4cosnny5n=-0:70;x=sin(.4*n);h=cos(.5*n);y=conv(x,h);stem(n,y(1:length(n)))实验四 LTI 系统的时域分析1、观察函数step()和impulse ()的调用格式,假设系统函数为146473)(2342++++++=s s s s s s s H 可以用几种方法绘制出阶跃响应曲线?试分别绘制t=0:0.001:30;sys=tf([1,3,7],[1,4,6,4,1]);h=impulse(sys,t);g=step(sys,t);plot(t,g),grid onts=0;dt=0.001;te=30;sys=tf([1,3,7],[1,4,6,4,1]);t=ts:dt:te;h=impulse(sys,t);g=step(sys,t);plot(t,g),grid on2、自行完成同类型习题1)已知LTI微分方程为)yttftfy+=y+t+试画出系统的冲激(('2)13()33)3(')(''t响应和阶跃响应t=0:0.001:6;sys=tf([2,13],[1,3,33]);h=impulse(sys,t);g=step(sys,t);subplot(211),plot(t,h),grid on ;xlabel('time(sec)'),ylabel('h(t)')title('冲激响应')subplot(212),plot(t,g),grid on ;xlabel('time(sec)'),ylabel('g(t)')title('阶跃响应')2)当初始状态为2)0(',1)0(==--y y 时,确定系统)(3)(2)(12)(7)(22t f dt t df t y dt t dy dt t y d +=++的零输入响应并画出波形,如果系统输入信号为)()(3t u e t f t -=画出输入及零状态响应波形eq='D2y+7*Dy+12*y=0';cond='y(0)=1,Dy(0)=2';yzi=dsolve(eq,cond);yzi=simplify(yzi);ezplot(yzi,[-0.3,4]);grid on title('零输入响应')a=[1 7 12];b=[2 3];t=0:0.01:8;f=exp(-3*t);lsim(b,a,f,t);3)一线性时不变离散系统)nyy=y--,绘出系统冲激响应-+nnx)2(5.2((n)()1波形图a=[1,-1,2.5];b=[1];n=0:4;impz(b,a,30)4)已知)6.0sin()cos()(2n n n x ππ+=,设系统)1(8.0)()(-+=n n x n y ,画出输入输出波形图n=(-10:10);x=cos(pi*n.^2)+sin(0.6*pi*n);a=1;b=[1,0.8];z=filter(b,a,x)figure;subplot(211)stem(x);title('输入序列')subplot(212)stem(z);title('输出序列')5)一线性时不变离散系统)1()(3)2(2)1(25.0)(-+=-+--n x n x n y n y n y ,绘出冲激响应、阶跃响应波形图,以及激励)()5.0()(n u n x n =,初始条件为0时的系统响应波形图a=[1 -0.25 2];b=[3 1];n=0:30;h=impz(b,a,n);subplot(221)stem(n,h)title('h(n)')x1=ones(1,length(n));g=filter(b,a,x1);subplot(222)stem(n,g)title('g(n)')x2=(1/2).^n;subplot(223)stem(n,x2)title('输入序列')subplot(224)stem(n,y)title('输出序列')实验五周期信号的傅里叶级数与频谱试完成教材中同类型的习题1、求频率为2hz、占空比为40%的周期方波信号的傅里叶级数,实现各次谐波的叠加,观测吉布斯现象t=-1:0.001:1;ft=square(4*pi*t,40);subplot(3,2,1),plot(t,ft),grid onaxis([-1,1,-1.5,1.5])title('周期方波信号')n_max=[1 3 5 11 35];for k=1:Nn=1:2:n_max(k);b=4./(pi*n);x=b*sin(4*pi*n'*t);subplot(3,2,k+1),plot(t,x),grid on axis([-1,1,-1.5,1.5])title(['最大谐波次数=',num2str(n_max(k))]) end2、将周期矩形脉冲展开为傅里叶级数,画出935282.0======T T T 、和、、、τττ三种情况下的傅里叶系数 n=-30:30;tau=0.2;T=8;w1=2*pi/T;x=n*tau/T;fn=tau/T*sinc(x);subplot(311);stem(n*w1,fn),grid ontitle('\tau=1,T=10')tau=2;T=5;w2=2*pi/T;x=n*tau/T;fn=tau/T*sinc(x);m=round(30*w1/w2);n1=-m:m;fn=fn(30-m+1:30+m+1);subplot(312);stem(n1*w2,fn),grid ontitle('\tau=1,T=5')tau=3;T=9;w3=2*pi/T;x=n*tau/T;fn=tau/T*sinc(x);subplot(313);stem(n*w3,fn),grid ontitle('\tau=2,T=10')31。
武汉工程大学电气信息学院三、实验数据与结果分析1、2、四、思考:2. 3.四、思考:1、代数运算符号*和.*的区别是?*是矩阵相乘,是矩阵A行元素与B的列元素相乘的和.*是数组相乘,表示数组A和数组B中的对应元素相乘实验内容实验三连续时间信号的卷积一、实验内容1、已知两连续时间信号如下图所示,绘制信号f1(t)、f2(t)及卷积结果f(t)的波形;设时间变化步长dt分别取为0.5、0.1、0.01,当dt取多少时,程序的计算结果就是连续时间卷积的较好近似?2、、计算信号()()()11==-a t u e t f at 和()()t tu t f sin 2=的卷积f(t),f 1(t)、f 2(t)的时间范围取为0~10,步长值取为0.1。
绘制三个信号的波形。
二、实验方法与步骤1、绘制信号f 1(t)、f 2(t)及卷积结果f(t)的波形,当dt 取0.01时程序的计算结果就是连续时间卷积的较好近似程序代码如下:clear allclose allclcdt=0.01t1=0:dt:2;t2=-1:dt:1;f1=0.5*t1;f2=0.5*(t2+1);y=dt*conv(f1,f2); %计算卷积t0=t1(1)+t2(1); %计算卷积结果的非零样值的起点位置2.实验内容三、实验数据与结果分析1.2.实验内容实验五连续时间信号的频域分析一、实验内容1、如图5.4所示的奇谐周期方波信号,周期为T1=1,幅度为A=1,将该方波信号展开成三角形式Fourier级数并分别采用频域矩形窗和Hanning窗加权,绘制两种窗函数加权后的方波合成图像。
时间范围取为-2~2,步长值取为0.01。
2、将图5.5中的锯齿波展开为三角形式Fourier级数,按(2)式求出Fourier级数的系数,并在频域分别采用矩形窗、Hanning窗和三角窗加权,观察其Gibbs效应及其消除情况。
时间范围取为-2~2,步长值取为0.01。
一.实验目的1.学会用MATLAB 表示常用连续信号的方法;2.学会用MATLAB 进行信号基本运算的方法; 二.实验原理与步骤 原理:1.信号的MATLAB 表示 (1)向量表示法对于连续时间信号()f t ,可以用两个行向量f 和t 来表示,其中向量t 是用形如12::t t p t =的命令定义的时间范围向量,其中,1t 为信号起始时间,2t 为终止时间,p 为时间间隔。
向量f 为连续信号f(t)在向量t 所定义的时间点上的样值。
例如:对于连续信号sin()()()t f t Sa t t==,同时用绘图命令plot()函数绘制其波形。
其程序如下: t2=-10:0.1:10; %定义时间t 的取值范围:-10~10,取样间隔为0.1,%则t2是一个维数为201的行向量 f2=sin(t2)./t2; %定义信号表达式,求出对应采样点上的样值 %同时生成与向量t2维数相同的行向量f2 figure(2); %打开图形窗口2Plot(t2,f2); %以t2为横坐标,f2为纵坐标绘制f2的波形 运行结果如下:(2)符号运算表示法如果一个信号或函数可以用符号表达式来表示,那么我们就可以用前面介绍的符号函数专用绘图命令ezplot()等函数来绘出信号的波形。
例如:对于连续信号sin()()()t f t Sa t t==,我们也可以用符号表达式来表示它,同时用ezplot()命令绘出其波形。
其MATLAB 程序如下: Syms t; %符号变量说明f=sin (t )/t; %定义函数表达式ezplot (f,[-10,10]); %绘制波形,并且设置坐标轴显示范围 运行结果如下:(3)常见信号的MATLAB 表示 单位阶跃信号:方法一:调用Heaviside(t)函数首先定义函数Heaviside(t)的m函数文件,该文件名应与函数名同名即Heaviside.m。
%定义函数文件,函数名为Heaviside,输入变量为x,输出变量为yfunction y=Heaviside(t)y=(t>0);%定义函数体,即函数所执行指令%此处定义t>0时y=1,t<=0时y=0,注意与实际的阶跃信号定义的区别。
数字信号处理实验1--5含代码实验一离散时间信号的时域分析 1. 在MATLAB中利用逻辑关系式n,,0来实现序列,显示范围。
(产生如下,,,n,nn,n,n012图所示的单位脉冲信号的函数为impseq(n0,n1,n2),程序如示例所示),3,n,10并利用impseq函数实现序列:; ,,,,,,yn,2,n,3,,n,6,,xn1nnnn120源代码:impseq.mfunction y=impseq(n0,n1,n2)n=[n1:n2]y=[(n-n0)==0]exp01-1.mfunction impseq(n0,n1,n2)n=-3:1:10y=2*impseq(3,-3,10)+impseq(6,-3,10);stem(n,y)n,,0,,2. 在MATLAB中利用逻辑关系式来实现序列,显示范围。
(自己编写un,nn,n,n012产生单位阶跃信号的函数,函数命名为stepseq(n0,n1,n2)) 并利用编写的stepseq函数实现序列: ,,,,,,yn,un,2,un,2,5,n,10源代码:stepseq.mfunction y=stepseq(n0,n1,n2)n=n1:1:n2y=[(n-n0)>=0]exp01-2.mfunction stepseq(n0,n1,n2)n=-5:1:20y=stepseq(-2,-5,20)+stepseq(2,-5,20)stem(n,y)3. 在MATLAB中利用数组运算符“.^”来实现一个实指数序列。
如: n ,,,,xn,0.30,n,15源代码:n=0:1:15;x=0.3.^nstem(n,x)4. 在MATLAB中调用函数sin或cos产生正余弦序列,如:π,, ,,,,xn,3sin0.4πn,,5cos0.3πn0,n,20,,5,,源代码:n=0:1:20x=11*sin(0.3*pi*n+pi/5)+5*cos(0.3*pi*n)stem(n,x)思考题:1.在MATLAB环境下产生单位脉冲序列和单位阶跃序列各有几种方法,如何使用,2.在MATLAB环境下进行序列的相乘运算时应注意什么问题,实验二离散时间系统的时域分析1. 在MATLAB中利用内部函数conv来计算两个有限长序列的卷积。
实验一信号的时域描述与运算一、实验目的1.学会用MATLAB 表示常用连续信号的方法,了解这些信号的基本特征;2.学会用MATLAB 表示常用离散信号的方法,了解这些信号的基本特征;3.学会用MATLAB 进行信号基本运算的方法,了解信号运算对信号所起的作用。
二、实验原理1.连续信号的MATLAB 表示MATLAB 提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。
表示连续时间信号有两种方法,一是数值法,二是符号法。
数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MATLAB 的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。
(一)数值法(向量表示法)对于连续时间信号f (t ),我们可以用两个行向量f 和t 来表示,其中向量t 是形如t =t1:p :t2的MATLAB 命令定义的时间范围向量,t 1为信号起始时间,t 2为中止时间,p 为时间间隔。
向量f 为连续信号f (t )在向量t 所定义的时间点上的样值。
例如对于连续信号f (t )=sin(t ),我们可以用如下两个向量来表示:t=-10:1.5:10;f=sin(t)用上述向量对连续信号表示后,就可以用plot 命令来绘出该信号的时域波形。
Plot 命令可将点与点间用直线连接,当点与点间的距离很小时,绘出的图形就成了光滑的曲线。
命令如下:plot(t,f)title(‘f(t)=sint’)xlabel(‘t’)axis([-10,10,-1.1,1.1])绘制的信号波形如图1.1所示,当把时间间隔p 取得更小(如0.01)时,就可得到sint 较好的近似波形,如图1.2所示。
图1.1p=1.5的sint 近似波形图1.2p=0.01的sint 近似波形MATLAB 提供了大量用以生成基本信号的函数,比如最常用的指数信号、正弦信号等就是MATLAB 的内部函数,即不需要安装任何工具箱就可以调用的函数。
信号与系统实验报告实验一连续时间信号得MATLAB表示与计算学院专业班级姓名学号指导教师实验报告评分:_______题目:连续时间信号得MATLAB表示与计算一、实验目得(1)初步学习MATLAB语言,熟悉MATLAB软件得基本使用。
(2)掌握用MATLAB描述连续时间信号方法,能够棉靴MALTAB 程序,实现各种信号得时域变换与运算,并且以图形得方式再现各种信号得波形。
二、实验内容与步骤1、编写m文件,将实验原理中所给得单位冲激信号与单位阶跃信号得函数文件在MATLAB文件编辑器中编写好,并分别以文件名chongji与heaviside存入文件夹中以便于使用。
单位阶跃信号:function y = heaviside(t)y = (t>=0);单位冲激信号:function chongji(t1, t2, t0)dt =0、01;t= t1:dt:t2;n = length(t);x = zeros(1,n);x(1, (t0-t1)/dt +1) = 1/dt;stairs(t,x);axis([t1, t2,0, 1、1/dt])2、编写m文件,并以Q1_1为文件名存盘,产生信号f(t)=sin(2πt),时间范围在-2~2秒之间,dt = 0、01。
若将dt改为0、2,再执行该程序,保存图形,瞧瞧所得图形得效果如何?代码:t1 = [-2:0、01:2];f1 = sin(2*pi*t1);subplot(1,2,1);plot(t1,f1);title('dt = 0、01');xlabel('t1');ylabel('sin(2*pi*t1)');t2=[-2:0、2:2];f2 = sin(2*pi*t2);subplot(1,2,2);plot(t2,f2);title('dt = 0、2');xlabel('t2');ylabel('sin(2*pi*t2)');3、编写m文件,并以Q1_2为文件名存盘绘出 (u(t)-u(t-3))信号,给图形标出名称与坐标轴名称。
实验1 连续时间信号在MATLAB 中的表示
1. 实验目的
学会运用MATLAB 表示常用连续时间信号的方法;观察并熟悉这些信号的波形和特性。
2. 实验原理
在某一时间区间内,除若干个不连续点外,如果任意时刻都可以给出确定的函数值,则称该信号为连续时间信号,简称为连续信号。
从严格意义上讲,MATLAB 数值计算的方法并不能处理连续时间信号。
然而,可利用连续信号在等时间间隔点的取样值来近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能够被MATLAB 处理,并且能较好地近似表示连续信号。
MATLAB 提供了大量生成基本信号的函数。
比如常用的指数信号、正余弦信号等都是MATLAB 的内部函数。
为了表示连续时间信号,需定义某一时间或自变量的范围和取样时间间隔,然后调用该函数计算这些点的函数值,最后画出其波形图。
3. 实例分析
3.1 典型信号的MATLAB 表示
(1)实指数信号
实指数信号的基本形式为()t f t Ke α=。
式中,,K α为实数。
当0α>时,实指数信号随时间按指数式增长;当0α<时,实指数信号随时间按指数式衰减;当0α=时候,则转化为直流信号。
MATLAB 中用exp 函数来表示实指数信号,其语句格式为:
*exp(*)y K a t =
例1 用MATLAB 命令产生单边衰减指数信号 1.52()t e u t -,并绘出时间03t ≤≤的波形图。
解:MATLAB 源程序为:
clear;clc;
K = 2; a = -1.5;
t = 0:0.01:3;
ft = K*exp(a*t);
plot(t,ft);grid on
axis([0,3,0,2.2]);
title('单边指数衰减信号');
(2)正弦信号
正弦信号的基本形式为()sin()f t K t ωϕ=+或者()cos()f t K t ωϕ=+。
其中K
是振幅;ω是角频率;ϕ是初相位。
这三个参数称为正弦信号的三要素。
MATLAB 中可用sin 或者cos 函数来表示正弦信号,其语句格式为:
*sin(*)K t phi ω+ *cos(*)K t phi ω+
例2 用MATLAB 命令产生正弦信号2sin(2/4)t ππ+,并绘出时间03t ≤≤的波形图。
解:MATLAB 源程序为:
clear;clc;
K = 2; w = 2*pi; phi = pi/4;
t = 0:0.01:3;
ft = K*sin(w*t+phi);
plot(t,ft);grid on
axis([0,3,-2.2,2.2]);
title('正弦信号');
图1 单边指数衰减信号
图2 正弦信号 (3)抽样信号
抽样信号的基本形式为()sin()/Sa t t t =,在MATLAB 中用与()Sa t 类似的sinc()t 函数表示,定义为sinc()sin()/()t t t ππ=。
可以看出,()Sa t 函数与sinc()t 没有本质的区别,
只是在时间尺度上不同而已。
例3 用MATLAB 命令产生抽样信号()Sa t ,并绘出时间为66t ππ-≤≤的波形图。
解:MATLAB 源程序为:
clear;clc;
t = -6*pi: pi/100: 6*pi;
ft = sinc(t/pi);
plot(t,ft);grid on
axis([-20,20,-0.5,1.2]);
title('抽样信号');
图3 抽样信号
(4)矩形脉冲信号
矩形脉冲信号在MATLAB 中可用rectpuls 函数产生,其语句格式为:
(,)y rectpls t width = 该函数用于产生一个幅度为1、宽度为width ,且以t=0为对称轴的矩形脉冲信号,width 的默认值为1。
例4 用MATLAB 命令画出下列矩形脉冲信号的波形图。
2(01)()0(0,1)
t f t t t ≤≤⎧=⎨<>⎩ 解:根据所定义的矩形脉冲信号,()f t 定义的矩形脉冲宽度为1,脉冲的中心位置相对于纵轴向右移动了0.5。
因此,其MATLAB 源程序为:
clear;clc;
t = -0.5: 0.01: 3;
t0 = 0.5; width = 1;
ft = 2* rectpuls(t-t0, width);
plot(t,ft);grid on
axis([-0.5,3,-0.2,2.2]);
title('矩形脉冲信号');
图4 矩形脉冲信号
周期性矩形波信号或方波在MATLAB 中可用square 函数产生,其语句格式为:
y=square(t,DUTY)
该函数用于产生一个周期为2π,幅值为1±的周期性方波信号,其中,DUTY 参数用来表示信号的占空比DUTY%,即在一个周期内脉冲宽度(正值部分)与脉冲周期比值。
占空比默认值为0.5。
例5 用MATLAB 命令产生频率为10Hz ,占空比为30%的周期方波信号。
解:MATLAB 源程序为:
clear;clc;
t = 0: 0.001: 0.3;
y = square(2*pi*10*t, 30);
plot(t,y);grid on
axis([0,0.3,-1.2,1.2]);
title('周期方波信号');
图 5
周期方波信号
还有非周期的三角波脉冲可以用tripuls 函数,周期三角波(锯齿波)可以用sawtooth 函数实现。
同学们可以通过MATLAB help 自学,或者上网搜索及其他途径学习。
3.2 单位阶跃信号的MATLAB 表示
单位阶跃信号是信号分析中的基本信号之一,在信号与系统分析中有着十分重要的意义,常用于简化信号的时域数学表示。
例如,表示分段函数信号、时限信号和因果信号等。
单位阶跃信号用符号()u t 表示,定义为:
10()00
t u t t >⎧=⎨<⎩ 例6 用MATLAB 命令产生单位阶跃信号()u t 。
解:MATLAB 源程序为:
clear;clc;
t = -1: 0.01: 5;
ft = (t >=0 );
plot(t,ft);grid on
axis([-1,5,-0.5,1.5]);
title('单位阶跃信号');
图6 单
位阶跃信号
此外,也可以在MATLAB的工作目录下创建uCT的M文件,其MATLAB 源文件为:
function f = uCT(t)
f = (t>=0);
保存后,就可调用该函数,并运用plot命令来绘制单位阶跃信号的波形。
例如,图6中波形也可以用如下代码实现:
clear;clc;
t = -1: 0.01: 5;
ft = uCT(t);
plot(t,ft);grid on
axis([-1,5,-0.5,1.5]);
title('单位阶跃信号');
注意,在此定义的uCT函数是阶跃信号数值表示方法,因此在数值计算机中我们将调用uCT函数。
而在MATLAB的MAPLE内核中,将Heaviside函数定义为阶跃信号符号表达式,在符号运算过程中,若要调用它必须用sym定义后,才能实现。
例如,还可用下面的命令会出阶跃信号,即:
clear;clc;
y=sym('Heaviside(t)'); % 定义符号表达式
ezplot(y,[-1,5]).grid on
在表示分段函数信号、时限信号时,经常用到延时的单位阶跃信号,对于延时T的单位阶跃信号()
,可以用uCT(t-T)来表示。
u t T
例7用MATLAB命令实现幅度为1、宽度为1的门函数()
g t。
解:MATLAB 源程序为:
clear;clc;
t = -1: 0.01: 1;
ft = uCT(t+0.5)-uCT(t-0.5);
plot(t,ft);grid on
axis([-1,1 -0.2,1.2]);
title('门函数');
图
图7 门函数波形
(程序不对)
4. 实验内容
4.1 利用MATLAB 命令画出下列连续信号的波形图。
(1)2cos(3/4)t π+ (2)(2)()t e u t --
(3)[()(1)]t u t u t -- (4)[1cos()][()(2)]t u t u t π+--
4.2 利用MATLAB 命令产生幅度为1、周期为1、占空比为0.5的一个周期矩形脉冲信号。
4.3 利用MATLAB 命令画出如下信号的实部、虚部、模和幅角。
42()2j t j t f t e e ππ=++
5. 问题与思考
阶跃信号函数中语句ft = (t >=0 )的含义。