实验一脉冲时间信号MATLAB表示
matlab输出脉冲信号的程序
一、概述脉冲信号是指在一段时间内突然发生的信号,其幅度瞬间上升并在短时间内保持恒定。
脉冲信号在工程领域中有着广泛的应用,比如在雷达系统、通信系统和生物医学工程中经常会用到脉冲信号。
而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进行系统的时域分析一.实验目的: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中的表示和运算
实验一基本信号在 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中的显示
信号软件实验报告实验一信号在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。
信号分析与处理实验报告(基于MATLAB)
武汉工程大学电气信息学院三、实验数据与结果分析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。
实验一 常用基本信号的MATLAB表示和运算
一.实验目的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,注意与实际的阶跃信号定义的区别。
信号与系统 MATLAB实验报告(可打印修改)
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-20
-15
-10
-5
0
5
10
15
20
对比可知此法做出的图像更加清晰美观。 (2)MATLAB 可以自动地根据曲线数据的范围选择合适的坐标系,从而使得 曲线尽可能清晰地显示出来,一般情况下不必选择坐标系。但是,如果对 MATLAB 自动产生的坐标轴不满意,可以利用 axis 命令对坐标轴进行调整。
title('f=R(t)')
axis([-5 5 -0.5 1.5])
(5) f (t) Sa(t)
ω=1 时:
t=-20:0.01:20 f=sin(t)./t 实现抽样函数
%调用正弦函数sin(),并用sin(t)./t
plot(t,f)
title('f(t)=Sa(t)')
axis([-20,-20,-0.5,1.1])
改进想法:
本题中函数的表示方法都不只一种。如阶跃函数可以借助符号函数来实现
可视化。其程序和结果如下:
t=-5:0.05:5 f=sign(t)
%调用符号函数 sign()
axis([-5,5,-1.1,1.1])
ff=1/2+1/2*f
%运用阶跃函数与符号函数的关系,表示出阶跃函数
ff
plot(t,ff)
实验程序:
(1)
n=-10:20
%设置变量范围,默认步长为1
f=heaviside(n)
x=heaviside(n)-heaviside(n-10) %阶跃函数直接相减
的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。 在 MATLAB 中 t = t1: p: t2 的命令定义时间范围向量,t1 为信号起始时间,t2 为终止时间,p 为时间间隔。
数字信号处理实验1--5含代码
数字信号处理实验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表示与计算学院专业班级姓名学号指导教师实验报告评分:_______题目:连续时间信号得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))信号,给图形标出名称与坐标轴名称。
信号与系统部分实验matlab代码-供参考辩析
信号与系统第三版112学期部分实验代码目录实验一 常用信号的实现和时域变换部分实验答案 (1)实验二 LTI 时间系统的时域分析 (3)实验四 连续信号与系统的频域分析 (4)实验七 连续时间信号的采样与重构 (15)实验一 常用信号的实现和时域变换部分实验答案(1)⎪⎭⎫ ⎝⎛=-t e t f t 32sin )(1.0t=0:0.1:30; x=exp(-0.1*t).*sin(2/3*t);plot(t,x);axis([0 30 -1 1]); grid;xlabel('Time(sec)'); ylabel('f(t)'); …………………………………………………………………………………………… 对上面的f(t)进行抽样f(n)=f(t)|t=nT =x(nT)就可以得到抽样信号,将上述命令里的时间增量改为1s ,plot(t,x)命令改为 可以得到下图。
4.已知离散序列x(n)如图所示,试用Matlab 编程绘出以下的离散序列波形。
(1)x(-n+3)clc;close all;clear all;n=-3:2x=[3 3 3 3 2 1];[x1,n1]=xlpy(x,n,-3);[x2,n2]=xlfz(x1,n1);subplot(311)stem(n,x,'filled');axis([min(n)-1,max(n)+1,min(x)-0.5,max(x)+0.5]) subplot(312)stem(n1,x1,'filled');axis([min(n1)-1,max(n1)+1,min(x1)-0.5,max(x1)+0.5]) subplot(313)stem(n2,x2,'filled');axis([min(n2)-1,max(n2)+1,min(x2)-0.5,max(x2)+0.5])(2) x(n-3)x(n+2)clc;close all;clear all;n=-3:2x=[ 3 3 3 3 2 1 ];[x1,n1]=xlpy(x,n,3);[x2,n2]=xlpy(x,n,-2);nn=-5:5;x3=[0 0 0 0 0 x1];x4=[x2 zeros(1,5)];x=x3.*x4;subplot(311)stem(nn,x3,'filled');subplot(312)stem(nn,x4,'filled');subplot(313)stem(nn,x,'filled');实验二 LTI 时间系统的时域分析6.对于因果和稳定的LTI 系统,对于下列二阶微分方程确定其单位冲激响应是否是欠阻尼、过阻尼或临界阻尼,画出系统的h(t)和频率响应模的波特图。
实验一MATLAB编程环境及常用信号的生成及波形仿真
实验⼀MATLAB编程环境及常⽤信号的⽣成及波形仿真实验⼀ MATLAB 编程环境及常⽤信号的⽣成及波形仿真⼀、实验⽬的1、学会运⽤Matlab 表⽰常⽤连续时间信号的⽅法2、观察并熟悉这些信号的波形和特性:3、实验内容:编程实现如下常⽤离散信号:单位脉冲序列,单位阶跃序列,矩形序列,实指数序列,正弦序列,复指数序列;⼆、实验原理及实例分析2、如何表⽰连续信号?从严格意义上讲,Matlab 数值计算的⽅法不能处理连续时间信号。
然⽽,可利⽤连续信号在等时间间隔点的取样值来近似表⽰连续信号,即当取样时间间隔⾜够⼩时,这些离散样值能被Matlab 处理,并且能较好地近似表⽰连续信号。
3、Matlab 提供了⼤量⽣成基本信号的函数。
如:(1)指数信号:K*exp(a*t)(2)正弦信号:K*sin(w*t+phi)和K*cos(w*t+phi)(3)复指数信号:K*exp((a+i*b)*t)(4)抽样信号:sin(t*pi)注意:在Matlab 中⽤与Sa(t)类似的sinc(t)函数表⽰,定义为:)t /()t (sin )t (sinc ππ=(5)矩形脉冲信号:rectpuls(t,width)(6)周期矩形脉冲信号:square(t,DUTY),其中DUTY 参数表⽰信号的占空⽐DUTY%,即在⼀个周期脉冲宽度(正值部分)与脉冲周期的⽐值。
占空⽐默认为0.5。
(7)三⾓波脉冲信号:tripuls(t, width, skew),其中skew 取值范围在-1~+1之间。
(8)周期三⾓波信号:sawtooth(t, width)(9)单位阶跃信号:y=(t>=0)常⽤的图形控制函数1)学习clc, dir(ls), help, clear, format,hold, clf控制命令的使⽤和M⽂件编辑/调试器使⽤操作;2)主函数函数的创建和⼦程序的调⽤;3)plot,subplot, grid on, figure, xlabel,ylabel,title,hold,title,Legend,绘图函数使⽤;axis([xmin,xmax,ymin,ymax]):图型显⽰区域控制函数,其中xmin为横轴的显⽰起点,xmax为横轴的显⽰终点,ymin为纵轴的显⽰起点,ymax为纵轴的显⽰终点。
信号与信号实验
信号与信号实验MATLAB 部分实验一:基本信号在MATLAB 中的表示和运算 一、 实验目的;1、学会用MATLAB 表示常用连续信号的方法;2、学会用MATLAB 进行信号基本运算的方法;3、学会用MATLAB 实现连续时间信号的卷积的方法。
二、 实验内容:1、绘出下列信号的时域波形(1)f(t)=(2-e-2t)u(t) (2)f(t)=cos(πt)[u(t)-u(t-1)] (3)f(t)=u(-3t+2) (4)f(t)= -(1/2)tu(t+2) 解:t1=0:0.01:5; y1=(2-exp(-2*t1)).*(t1>0); subplot(221);plot(t1,y1);grid; title('f(t)=(2-e-2t)u(t)'); t2=0:0.01:5; y2=cos(pi*t2).*((t2>0)-(t2>1)); subplot(222);plot(t2,y2);grid; title('f(t)=cos(πt)[u(t)-u(t-1)]'); t3=-2:0.01:5; y3=(-3*t3+2>0); subplot(223);plot(t3,y3);grid; title('f(t)=u(-3t+2)'); t4=-3:0.01:5; y4=(-1/2)*t4.*(t4>-2); subplot(224);plot(t4,y4);grid; title('f(t)=-(1/2)tu(t+2)');00.511.52f(t)=(2-e-2t)u(t)图 1-1f(t)=cos(πt)[u(t)-u(t-1)]图1-200.51f(t)=u(-3t+2)图1-3f(t)=-(1/2)tu(t+2)图 1-42、用MATLAB 绘出下列信号的卷积积分f1(t)*f2(t)的时域波形(1) f1(t)=tu(t), f2(t)=u(t) (2) f1(t)=u(t)-u(t-4), f2(t)=sin(πt)u(t) (3) f1(t)= e-2t u(t), f2(t)= e-t u(t) (4) f1(t)= e-t u(t), f2(t)=u(t) 解:(1)fs=1000; t=-1:1/fs:4; x1=stepfun(t,0); x2=x1.*t; y=conv(x1,x2)/fs; n=length(y1); tt=(0:n-1)/fs-2; subplot(311),plot(t,x1),grid; title('f1(t)=tu(t)'); subplot(312),plot(t,x2),grid; title(' f2(t)=u(t)'); subplot(313),plot(tt,y),grid on; title('f1(t) * f2(t)');(2)fs=1000; t=-1:1/fs:4; x1=(t>0)-(t>4); x2=sin(pi*t).*(t>0); x=conv(x1,x2)/fs; n=length(x); tt=(0:n-1)/fs-2; subplot(311);plot(t,x1);grid; title('f1(t)=u(t)-u(t-4))'); subplot(312);plot(t,x2);grid; title('f2(t)=sin(πt)u(t)'); subplot(313);plot(tt,x);grid; title('f1(t) * f2');(3)t=0:1/fs:4; x1=exp(-2*t).*(t>0); x2=exp(-t).*(t>0); x=conv(x1,x2)/fs; n=length(x); tt=(0:n-1)/fs-0; subplot(311);plot(t,x1);grid; title('f1(t)= e-2t u(t)'); subplot(312);plot(t,x2);grid; title('f2(t)= e-t u(t)'); subplot(313);plot(tt,x);grid; title('f1(t) * f2(t)');(4)t=0:1/fs:2; x1=exp(-2*t).*(t>0); x2=(t>0); x=conv(x1,x2)/fs; n=length(x); tt=(0:n-1)/fs-0; subplot(311);plot(t,x1);grid; title(' f1(t)= e-t u(t))'); subplot(312);plot(t,x2);grid; title('f2(t)=u(t)'); subplot(313);plot(tt,x);grid; title('f1(t)*f2(t)');0.51 1.52 2.53 3.540.51 1.52 2.53 3.5412345678-1 -0.5 00.51 1.52 2.53 3.54? 2-1 -1 -0.5 00.51 1.52 2.53 3.54? 2-2 -2-112 3 4 5678? 2-3实验二:连续时间LTI 系统的时域分析一、实验目的:学会用MATLAB 求解连续系统的零状态响应、冲击响应和阶跃响应。
信号的MATLAB实现
信号的MATLAB实现一、基本信号的生成MATLAB中提供了多种函数用于生成常用的信号波形,如正弦波、方波、脉冲信号等。
以下是一些常用信号的MATLAB代码示例:1.正弦信号:```MATLABt=0:0.1:10;%时间序列f=1;%频率A=1;%幅值x = A*sin(2*pi*f*t); % 生成正弦信号plot(t, x); % 绘制信号波形```2.方波信号:```MATLABt=0:0.1:10;%时间序列f=1;%频率A=1;%幅值x = A*square(2*pi*f*t); % 生成方波信号plot(t, x); % 绘制信号波形```3.脉冲信号:```MATLABt=0:0.1:10;%时间序列T=1;%脉宽A=1;%幅值x = A*pulstran(t, 0:1:T, 'rectpuls', T); % 生成脉冲信号plot(t, x); % 绘制信号波形```二、时域频域变换对信号进行时域和频域分析是信号处理的重要一环。
MATLAB提供了丰富的函数用于信号的时域频域变换,如傅里叶变换、正弦变换、小波变换等。
以下是一些常用的时域频域变换的MATLAB代码示例:1.傅里叶变换:```MATLABt=0:0.1:10;%时间序列f=1;%频率A=1;%幅值x = A*sin(2*pi*f*t); % 生成正弦信号X = fft(x); % 进行傅里叶变换plot(abs(X)); % 绘制频谱图```2.离散傅里叶变换:```MATLABx=[1,2,3,4];%输入序列X = fft(x); % 进行傅里叶变换plot(abs(X)); % 绘制频谱图```3.小波变换:```MATLABt=0:0.1:10;%时间序列f=1;%频率A=1;%幅值x = A*sin(2*pi*f*t); % 生成正弦信号[c, l] = wavedec(x, 3, 'db4'); % 用db4小波进行3级小波分解plot(c); % 绘制小波系数图```三、滤波滤波是信号处理中常用的操作,用于去除信号中的噪声或部分频率分量。
实验一离散时间信号在MATLAB中的表示
实验一离散时间信号的表示及运算一、实验目的1、学会运用MATLAB 表示的常用离散时间信号;2、学会运用MATLAB 实现离散时间信号的基本运算。
二、实验原理及实例分析2.1 离散时间信号在MATLAB中的表示离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。
离散序列通常用x(n)来表示,自变量n 必须是整数。
离散时间信号的波形绘制在MA TLAB 中一般用stem( )函数(注释:stem中文意思是茎、干、柄)。
stem( )函数的基本用法和plot( )函数一样,它绘制的波形图的每个样本点上有一个小圆圈,默认是空心的。
如果要实心,需使用参数“ fill ”、“ filled ”,或者参数“ .”。
由于MATLAB 中矩阵元素的个数有限,所以MATLAB 只能表示一定时间范围内有限长度的序列;而对于无限序列,也只能在一定时间范围内表示出来。
类似于连续时间信号,离散时间信号也有一些典型的离散时间信号。
0、判断n 是否为整数function y = isInt(n)y = (n==fix(n)); % fix(n) 为取整运算end1、单位取样序列单位取样序列(n) ,也称为单位冲激序列,定义为1 (n 0)1)0 (n 0)要注意,单位冲激序列不是单位冲激函数的简单离散抽样,它在n=0 处是取确定的值1。
在MA TLAB 中,冲激序列可以通过编写以下的impDT .m 文件来实现,即function y=impDT(n)y=(n==0); %当参数n 为0 时冲激为1,否则为0end调用该函数时n 必须为整数或整数向量。
【实例1】利用MA TLAB 的impDT 函数绘出单位冲激序列的波形图。
解:MATLAB 源程序为>>n=-3:3; % n=[-3,-2,-1,0,1,2,3]>>x=impDT(n);>>stem(n,x,'fill'), xlabel('n'), grid on>>title(' 单位冲激序列')>>axis([-3 3 -0.1 1.1])程序运行结果如图 1 所示。
信号与系统部分实验matlab代码-供参考
信号与系统第三版112学期部分实验代码目录实验一 常用信号的实现和时域变换部分实验答案 (1)实验二 LTI 时间系统的时域分析 (3)实验四 连续信号与系统的频域分析 (4)实验七 连续时间信号的采样与重构 (15)实验一 常用信号的实现和时域变换部分实验答案(1)⎪⎭⎫ ⎝⎛=-t e t f t 32sin )(1.0t=0:0.1:30; x=exp(-0.1*t).*sin(2/3*t);plot(t,x);axis([0 30 -1 1]); grid;xlabel('Time(sec)'); ylabel('f(t)'); …………………………………………………………………………………………… 对上面的f(t)进行抽样f(n)=f(t)|t=nT =x(nT)就可以得到抽样信号,将上述命令里的时间增量改为1s ,plot(t,x)命令改为 可以得到下图。
4.已知离散序列x(n)如图所示,试用Matlab 编程绘出以下的离散序列波形。
(1)x(-n+3)clc;close all;clear all;n=-3:2x=[3 3 3 3 2 1];[x1,n1]=xlpy(x,n,-3);[x2,n2]=xlfz(x1,n1);subplot(311)stem(n,x,'filled');axis([min(n)-1,max(n)+1,min(x)-0.5,max(x)+0.5]) subplot(312)stem(n1,x1,'filled');axis([min(n1)-1,max(n1)+1,min(x1)-0.5,max(x1)+0.5]) subplot(313)stem(n2,x2,'filled');axis([min(n2)-1,max(n2)+1,min(x2)-0.5,max(x2)+0.5])(2) x(n-3)x(n+2)clc;close all;clear all;n=-3:2x=[ 3 3 3 3 2 1 ];[x1,n1]=xlpy(x,n,3);[x2,n2]=xlpy(x,n,-2);nn=-5:5;x3=[0 0 0 0 0 x1];x4=[x2 zeros(1,5)];x=x3.*x4;subplot(311)stem(nn,x3,'filled');subplot(312)stem(nn,x4,'filled');subplot(313)stem(nn,x,'filled');实验二 LTI 时间系统的时域分析6.对于因果和稳定的LTI 系统,对于下列二阶微分方程确定其单位冲激响应是否是欠阻尼、过阻尼或临界阻尼,画出系统的h(t)和频率响应模的波特图。
实验一信号基本运算的MATLAB实现
实验一信号基本运算的MATLAB实现MATLAB是一种用于数值计算和数据可视化的高级编程语言和环境。
它提供了丰富的函数和工具箱来处理信号。
在MATLAB中,我们可以进行一系列信号的基本运算,包括信号的加法、乘法、平移、取反等。
下面将介绍几种常见的信号基本运算的MATLAB实现方法。
1.信号的加法:信号的加法可以使用MATLAB的"+"操作符来实现。
例如,我们有两个信号x1和x2,它们的采样点分别存储在向量x1和x2中,我们可以使用以下代码将它们相加,并将结果存储在向量y中:```matlabx1=[1,2,3];x2=[4,5,6];y=x1+x2;disp(y); % 输出结果:5 7 9```2.信号的乘法:信号的乘法可以使用MATLAB的"\*"操作符来实现。
与信号的加法类似,我们可以将要相乘的信号存储在向量中,并使用"\*"操作符进行乘法运算。
例如,两个信号x1和x2的乘积可以用以下代码实现:```matlabx1=[1,2,3];x2=[4,5,6];y=x1.*x2;disp(y); % 输出结果:4 10 18```3.信号的平移:信号的平移是将信号在时间上移动一定的步长。
在MATLAB中,我们可以使用向量索引来实现信号的平移。
例如,我们有一个信号x,要将其向右平移3个单位,可以使用以下代码实现:```matlabx=[1,2,3,4,5];shift = 3;y = [zeros(1, shift), x];disp(y); % 输出结果:0 0 0 1 2 3 4 5```在上述代码中,我们使用了`zeros`函数生成了一个长度为平移步长的零向量,并将其与信号x进行拼接。
4.信号的取反:信号的取反是将信号的每个采样点的值取相反数。
在MATLAB中,我们可以使用"-"操作符来实现信号的取反。
例如,我们有一个信号x,要将其取反,可以使用以下代码实现:```matlabx=[1,-2,3,-4,5];y=-x;disp(y); % 输出结果:-1 2 -3 4 -5```在上述代码中,我们使用了"-"操作符来实现信号的取反。
实验一连续时间信号的Matlab表示与计算
实验一连续时间信号的Matlab表示与计算一、实验目的1、初步学习MATLAB语言,熟悉MATLAB软件的基本使用。
2、掌握用MATLAB描述连续时间信号方法,能够编写MATLAB程序,实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形。
二、实验原理连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点之外,信号都有确定的值与之对应。
严格来说,MATLAB并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。
当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。
在MATLAB可视化绘图中,对于以t为自变量的连续信号,在绘图时统一用plot函数;而对n为自变量的离散序列,在绘图时统一用stem函数。
对于连续时间信号f(t),可用f、t两个行向量来表示。
例:t=-10:1.5:10;f=sin(t)./ t ;可以产生t= -10~10,间隔1.5的序列以及t tf)sin(=的值。
用命令:plot(t,f)可得如下图形,显然显示效果较差,这是因为t的间隔过大,只要改变为:t=-10:0.5:10;可得图1.2。
图1.1 图1.21. 信号的时域表示方法MATLAB提供了大量用以生成基本信号的函数,比如最常用的指数信号、正弦信号等就是MATLAB的内部函数,即不需要安装任何工具箱就可以调用的函数。
1.1单位阶跃信号u(t)function y=heaviside(t) %阶跃信号y = (t>=0); % y = 1 for t > 0, else y = 01.2单位冲激信号δ(t)function chongji(t1,t2,t0) %冲激信号δ(t- t 0),t 1和t 2分为起始时间和终止时间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]) 或function y = delta(t)dt = 0.01;y = (u(t)-u(t-dt))/dt;1.3指数信号指数信号atAe 在MATLAB 中可以用exp 函数表示,其调用形式为:y=A*exp(a*t)例如图1-3所示指数衰减信号的MATLAB 源程序如下(取A=1,a=-0.4):%program7_1 Decaying expponential signalA=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;1.4正弦信号正弦信号)cos(ϕω+t A o 和)sin(ϕω+t A o 分别用MATLAB 的内部函数cos 和sin 表示,其调用形式为:)*cos(*phi t A o +ω)*sin(*phi t A o +ω 例如图1-4所示MATLAB 源程序如下(取A=1,πω20=,6/πϕ=):%program7_2 Sinusoidal signalA=1;w0=2*pi;phi=pi/6;t=0:0.01:8;ft=A*sin(w0*t+phi);plot(t,ft);grid on;图1-3 单边指数衰减信号 图1-4 正弦信号 除了内部函数外,在信号处理工具箱(Signal Processing Toolbox )中还提供了诸如抽样 函数、矩形波、三角波、周期性矩形波和周期性三角波等在信号处理中常用的信号。
脉冲时间信号MATLAB表示
实验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 onaxis([0,3,0,2.2]);title('单边指数衰减信号');(2)正弦信号正弦信号的基本形式为()sin()f t K t ωϕ=+或者()cos()f t K t ωϕ=+。
其中K 是振幅;ω是角频率;ϕ是初相位。
这三个参数称为正弦信号的三要素。
matlab 脉冲函数
matlab 脉冲函数Matlab脉冲函数(也称为狄拉克函数),在信号处理与控制系统中经常使用。
它是一种理想化的函数,可以表示无限窄且无限高的脉冲信号。
其数学定义如下:δ(t) = 0, t ≠0δ(t) = ∞, t = 0在Matlab中,脉冲函数可以通过dirac函数或者kroneckerDelta函数来实现。
下面我们就来一步步介绍。
第一步,使用dirac函数实现dirac函数是Matlab内置的函数之一,它就是脉冲函数δ(t)在Matlab中的实现。
使用方法如下:请注意,因为dirac是瞬时点函数,因此绘制时通常需要使用很小的时间增量“dt”来保证高质量的绘图。
否则,直接绘制将会导致图像看起来不光滑。
第二步,使用kroneckerDelta函数实现kroneckerDelta函数也是Matlab内置的函数之一,它可以模拟脉冲函数δ(t),用法如下:与使用dirac函数实现相似,kroneckerDelta函数也需要一个很小的时间增量“dt”来保证高质量的绘图。
第三步,绘制图形通过以上两个函数实现脉冲函数之后,我们可以使用plot函数来绘制相应的图像。
以下是一个示例代码:t = -1:0.001:1;y1 = dirac(t);y2 = kroneckerDelta(t);figure(1)plot(t,y1,'linewidth',2)hold onplot(t,y2,'r','linewidth',2)grid onxlabel('Time(t)');ylabel('Amplitude(f)');title('Dirac function VS Kronecker Delta function');legend('Dirac function','Kronecker Delta function');该示例将会绘制出一个脉冲函数的图像,分别采用了dirac函数和kroneckerDelta函数实现的版本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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 )的含义。