脉冲时间信号MATLAB表示

合集下载

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编写程序来生成更复杂的脉冲信号。

矩形周期脉冲信号MATLAB实现

矩形周期脉冲信号MATLAB实现

矩形周期脉冲信号MATLAB实现MATLAB中可以使用矩形函数实现周期脉冲信号。

矩形函数是一个具有矩形形状的周期函数,当函数的自变量在一些区间上时函数值为1,其余区间上函数值为0。

以下是使用MATLAB实现矩形周期脉冲信号的详细步骤。

首先,确定矩形函数的周期和脉宽。

周期(T)是函数在一个完整周期内重复的间隔,脉宽(Pw)是函数的“高”值持续的时间。

```T=10;%周期Pw=2;%脉宽```接下来,创建时间轴。

在MATLAB中,可以使用`linspace`函数生成均匀间隔的时间点,用于作为x轴的取值。

假设我们需要500个时间点。

```num_points = 500; % 时间点个数t = linspace(0, T, num_points); % 时间轴```然后,定义矩形函数。

在时间轴上,矩形函数的值为1的区间应为一个相对原点0的固定时间区域。

可以使用以下代码定义矩形函数:```rect_func = zeros(1, num_points); % 初始化矩形函数rect_func(t >= 0 & t <= Pw) = 1; % 在脉宽内,矩形函数值为1```最后,绘制矩形周期脉冲信号的图像。

```plot(t, rect_func); % 绘制图像title('Rectangular Pulse Signal'); % 添加标题```完整代码如下所示:```MATLABT=10;%周期Pw=2;%脉宽num_points = 500; % 时间点个数t = linspace(0, T, num_points); % 时间轴rect_func = zeros(1, num_points); % 初始化矩形函数rect_func(t >= 0 & t <= Pw) = 1; % 在脉宽内,矩形函数值为1plot(t, rect_func); % 绘制图像title('Rectangular Pulse Signal'); % 添加标题```这段代码将在MATLAB中绘制出一个矩形周期脉冲信号的图像。

matlab 脉冲信号的时域响应

matlab 脉冲信号的时域响应

一、概述近年来,脉冲信号在通信、雷达、生物医学等领域中得到了广泛的应用。

脉冲信号的时域响应是研究脉冲信号特性的重要方面,对于了解脉冲信号的传输、处理以及系统的性能具有重要的意义。

Matlab作为一款强大的科学计算软件,可以方便地分析和处理信号数据,因此在研究脉冲信号的时域响应方面具有很大的优势。

二、脉冲信号的定义脉冲信号是一种瞬时信号,具有极短的脉冲宽度和高幅值的特点。

在时域中,脉冲信号通常可以表示为冲激函数的加权和,其数学表达式为:x(t) = Aδ(t - t0)其中,A为脉冲信号的幅值,δ(t - t0)为冲激函数,t0为脉冲信号的到达时间。

三、脉冲信号的时域响应分析1. 矩形脉冲信号的时域响应矩形脉冲信号是一种常用的脉冲信号模型,其在时域中呈现矩形波形。

对于矩形脉冲信号的时域响应分析,可以利用Matlab中的矩形脉冲信号生成函数rectpuls来实现。

在生成矩形脉冲信号之后,可以利用Matlab的时域分析工具对其进行时域响应分析,例如脉冲响应函数、脉冲频谱分析等。

2. 高斯脉冲信号的时域响应高斯脉冲信号是一种常见的信号模型,具有良好的时域和频域特性。

在Matlab中,可以利用高斯脉冲信号生成函数gauspuls来生成高斯脉冲信号,并对其进行时域响应分析。

通过Matlab的绘图工具,可以直观地观察高斯脉冲信号的时域响应特性,例如波形、幅值和到达时间等。

3. 单个脉冲信号的时域响应对于单个脉冲信号的时域响应分析,可以利用Matlab中的信号处理工具箱中的相关函数,例如conv和filter等进行分析。

通过对单个脉冲信号的卷积运算或者滤波操作,可以得到脉冲信号在系统中的时域响应,分析其衰减、延迟和失真等特性。

四、Matlab在脉冲信号时域响应分析中的应用1. 时域响应仿真在进行脉冲信号的时域响应分析时,Matlab提供了丰富的时域仿真工具,例如波形绘制、幅值分析、频谱分析等。

利用Matlab的仿真工具,可以直观地观察脉冲信号的时域响应特性,加深对信号传输、滤波和系统性能的理解。

信号与系统MATLAB常见信号的表示及运算

信号与系统MATLAB常见信号的表示及运算

信号与系统——实验指导实验一 常见信号的表示及运算一、实验目的1.熟悉常见信号的意义、特性及波形2. 掌握用matlab软件产生基本信号的方法.3. 应用matlab软件实现信号的加、减、乘、反褶、移位、尺度变换及卷积运算。

二、实验原理1. 信号的表示方法● 常用信号:连续函数()θω+=t t f sin )(, at Ae t f =)(,ttt Sa sin )(= 离散信号()n n f 0sin )(ω=,njw e n f 0)(=,)()(n u a n f n =● 奇异信号:连续函数:冲激函数)(t δ,阶跃函数)(t u ,斜坡函数)(t R 离散信号:冲激函数)(n δ,阶跃函数)(n u ,斜坡函数)(n R2.卷积连续函数的卷积:⎰∞∞--=τττd t f f t g )()()(21离散函数的卷积:∑∞-∞=-=m m n fm f n g )()()(21三、实验要求1.预习实验原理;2.对实验内容编写程序(M文件),上机运行;3.绘出运算或变换后信号的波形.四.实验内容1. 熟悉matlab 工作环境(1) 运行matlab.exe ,进入matlab 工作环境,如图(1)所示。

图1 matlab工作环境(2) matlab工作环境由Command Window(命令窗口)、Current Direcroty(当前目录)、workspace(工作空间)、command History(历史命令)和Editor(文件编辑器)5部分组成。

其中所有文件的编辑和调试、运行在Editor编辑窗口下进行。

程序的运行也可以在命令窗口进行。

程序调试的信息显示在命令窗口。

(3) 程序文件的产生:点击菜单file下的New下的M_files,进入编辑器界面,如图2。

图2 M文件编辑器(4) 在m文件编辑器下键入程序代码,保存程序文件(命名规则同C语言)。

如果所定义的是函数文件,则要求函数名为M文件名。

用MATLAB实现常用的连续时间信号及其时域运算

用MATLAB实现常用的连续时间信号及其时域运算

用MATLAB实现常用的连续时间信号及其时域运算信息与通信工程学院通信133班卢承慧一.引言1.要求:1.1用MATLAB语言产生连续时间信号1.2对连续时间信号进行时域运算2.任务:①绘制用于产生以下信号的通用程序,要求对于任意给定的参数都能实现所要求的信号。

调试并运行这些程序,具体产生由指导教师制定的信号并绘制信号波形。

a. f(t)=δ(t-t );b. f (t) = Au(t-t )。

②已知信号波形如图7.6所示,使用MATLAB语言求出下列信号的表达式并绘制出各信号波形。

a.f(-t);b.f(t-2);c.f(1-2t)。

图7.6任务②中的f(t)3.思考题编制一通用程序用于产生信号)()cos()(0t t u t Ae t f at -=-ω,要求对于任意给定的参数都能实现所要求的信号。

二.基本原理1.1连续时间信号如果在所讨论的时间间隔内,除若干个不连续点之外,对于任意时间值都可以给出确定的函数值,此信号就称为连续信号。

从严格意义上来讲,MATLAB 不能处理连续时间信号。

在MATLAB 中,使用连续时间信号在等时间间隔点的样值来近似表示连续时间信号的。

当取样时间间隔足够小时,这些离散的样值就能较好的近似出连续时间信号。

由于在MATLAB 中,矩阵的元素个数是有限的,因此MATLAB 无法表示无限序列。

MATLAB 的绘图命令有很多种,其中比较常用的绘制连续时间信号的绘图命令有“plot ”,“stairs ”,“ezplot ”等。

“plot ”适用于绘制平滑的曲线,而“stairs ”适合于绘制具有阶跃形式的图形,“ezplot ”只能用于符号函数的绘图。

1.2单位阶跃信号单位阶跃信号的波形图如图1所示,通常以符号u (t )表示⎩⎨⎧><=)0( 1)0( 0)(t t t u在跳变点t=0处,函数未定义,或在t=0处规定函数值u (0)=21。

图1用MATLAB 实现单位阶跃信号%t1:起始时刻;t2:终止时刻;t0:跳变时刻function u(t1,t0,t2)t=t1:0.01:t2; %步长值越小,图形越精确 n=length(t); tt=t0:0.01:t2; n1=length(tt);x=[zeros(1,n-n1),ones(1,n1)]; %产生单位阶跃信号 stairs(t,x),grid on title('单位阶跃信号')axis([t1 t2 -0.2 1.1]) %为方便波形顶部避开图 框,改变图框坐标1.3单位冲激信号单位冲激信号是持续时间无穷小、瞬间幅度无穷大、涵盖面积恒1的理想信号。

课程设计--连续时间信号和系统时域分析及MATLAB实现

课程设计--连续时间信号和系统时域分析及MATLAB实现

课程设计任务书题目:连续时间信号和系统时域分析及MATLAB实现课题内容:一、用MATLAB实现常用连续时间信号的时域波形(通过改变参数,分析其时域特性)。

二、用MATLAB实现信号的时域运算三、用MATLAB实现信号的时域变换(参数变化,分析波形变化)1、反转,2、使移(超时,延时),3、展缩,4、倒相,5、综合变化四、用MATLAB实现信号简单的时域分解1、信号的交直流分解,2、信号的奇偶分解五、用MATLAB实现连续时间系统的卷积积分的仿真波形给出几个典型例子,对每个例子,要求画出对应波形。

六、用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形。

给出几个典型例子,四种调用格式。

七、利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形。

给出几个典型例子,要求可以改变激励的参数,分析波形的变化。

时间安排:学习MATLAB语言的概况第1天学习MATLAB语言的基本知识第2、3天学习MATLAB语言的应用环境,调试命令,绘图能力第4、5天课程设计第6-9天答辩第10天指导教师签名:年月日目录摘要 (Ⅰ)1.绪论 (1)2.对课题内容的分析 (2)2.1连续时间信号概述 (2)2.2采样定理 (2)2.3总体思路 (2)3.设计内容 (2)3.1用MATLAB实现常用连续时间信号的时域波形 (2)3.1.1单位阶跃信号和单位冲击信号 (2)3.1.2正弦信号 (4)3.1.3指数信号 (5)3.1.4实指数信号和虚指数信号 (6)3.2用MATLAB实现信号的时域运算 (7)3.2.1相加 (7)3.2.2相乘 (8)3.2.3数乘 (9)3.2.4微分 (10)3.2.5积分 (12)3.3用MATLAB实现信号的时域变换 (13)3.4用MATLAB实现信号简单的时域分解 (15)3.4.1 交直流分解 (15)3.4.2 奇偶分解 (16)3.5用MATLAB实现连续时间系统的卷积积分的仿真波形 (18)3.6用MATLAB实现连续时间系统的冲激响应、阶跃响应的仿真波形 (19)3.7利用MATLAB实现连续时间系统对正弦信号、实指数信号的零状态响应的仿真波形 (20)4.心得体会 (22)5.参考文献 (23)摘要本文介绍了基于MATLAB的连续时间信号与系统时域分析。

matlab 脉冲函数

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函数实现的版本。

matlab 激光脉冲时间波形

matlab 激光脉冲时间波形

matlab 激光脉冲时间波形
激光脉冲时间波形是描述激光脉冲在时间上的变化规律的图形或数学表达。

在MATLAB中,我们可以使用不同的方法来生成和分析激光脉冲时间波形。

首先,我们可以使用MATLAB的plot函数来绘制激光脉冲的时间波形。

我们可以定义时间轴上的时间点和对应的激光脉冲强度或幅度,然后使用plot函数将这些点连接起来,从而得到激光脉冲的时间波形图。

另外,MATLAB还提供了许多其他绘图函数和工具,如stem函数、subplot函数等,可以帮助我们更加灵活地绘制和分析激光脉冲时间波形。

其次,我们可以使用MATLAB进行激光脉冲时间波形的数学建模和分析。

通过使用MATLAB的信号处理工具箱,我们可以对激光脉冲进行数字信号处理,比如滤波、频谱分析、时域分析等,从而深入研究激光脉冲的时间特性和频谱特性。

此外,如果我们已经有了激光脉冲的采集数据,我们也可以利用MATLAB进行数据导入和处理,然后使用MATLAB的工具进行波形重构和分析,以获取激光脉冲的时间波形信息。

总之,MATLAB提供了丰富的绘图函数、信号处理工具和数据处理工具,可以帮助我们全面地分析和研究激光脉冲的时间波形,从而更好地理解和应用激光技术。

希望以上回答能够满足你的要求。

matlab表示

matlab表示

信号与系统分析一、典型信号的matlab 表示表示连续信号,需定义自变量的范围和取样间隔,如t=0:0.01:3 1. 实指数信号 y=k*exp(a*t)2. 正弦信号 k*sin(w*t+phi) k*cos(w*t+phi)3. 复指数信号 y=k*exp((a+i*b)*t)实部real(y) 虚部imag(y) 模abs(y) 相角angle(y) 共轭conj(y) 4. 抽样信号 Sat=sinc(t/pi)5. 矩形脉冲信号 y=rectpuls(t,width)周期方波信号 y=square(2*pi*f*t,duty) %产生频率为fHZ ,占空比为duty%的方波 6. 三角脉冲信号非周期三角波y=tripuls(t,width,skew) %斜度 skew ,最大幅度出现在t=(width/2)*skew 周期三角波 y=sawtooth(t,width)7. 单位阶跃信号 function y=uCT(t) y=(t>=0)阶跃信号符号函数 Heaviside() y=sym(‘Heaviside(t)’) %调用时必须用sym 定义 冲激信号符号函数 Dirac()二、Matlab 的符号运算 1. 定义符号变量syms 变量名 syms xsym(‘变量名’) x=sym(‘x ’) sym(‘表达式’) sym(‘x+1’)2. 化简符号运算结果 simple 或simplify3. 绘制符号表达式图形 ezplot(y,[a,b])三、连续信号的运算微分和积分运算(用符号表达式来表示) 1. 微分运算Diff(function,’variable ’,n) % variable 为求导变量,n 为求导阶数 例:syms a x y y=sin(a*x^2); dy=diff(y ,’x ’) 2. 积分运算int(function, ’variable ’,a,b) %a 为积分下限,b 为积分上限 3. 信号的反折 fliplr(x) 4. 卷积计算1) 符号运算计算卷积(求解积分的方法) 例:)(*)()(t u e t u et y tTt --=syms T t taoxt1=exp(-t); xt2=exp(-t/T);xt_tao=subs(xt1,t,tao)*subs(xt2,t,t-tao);yt=int(xt_tao,tao,0,t); yt=simplify(yt);2) 数值计算法求卷积 conv( )y = dt*conv(e,h)例:求e(t) = u(t)-u(t-1)和h(t) = u(t)-u(t-1)的卷积 t0 = -2; t1 = 4; dt = 0.01; t = t0:dt:t1; e = u(t)-u(t-1); h = u(t)-u(t-1);y = dt*conv(e,h); % Compute the convolution of x(t) and h(t) subplot(221)plot(t,e), grid on, title('Signal e(t)'), axis([t0,t1,-0.2,1.2]) subplot(222)plot(t,h), grid on, title('Signal h(t)'), axis([t0,t1,-0.2,1.2]) subplot(212)t = 2*t0:dt:2*t1; % the time range to the convolution of e and h.plot(t,y), grid on, title('The convolution of x(t) and h(t)'), axis([2*t0,2*t1,-0.1,1.2]), xlabel('Time t sec')四、连续LTI 系统的时域分析1. 系统响应的符号求解 dsolve(‘eq1,eq2,…’,’cond1,cond2,…’); %eqi 表示微分方程,condi 表示初始条件 例:eq=’D3y+2*D2y+Dy=0’;cond=’y(0)=1,Dy(0)=1,D2y(0)=2’; yzi=dsolve(eq,cond); %零输入响应 simplify(yzi);eq1=’D3y+4*D2y+8*Dy=3*Dx+8*x ’; eq2=’x=Heaviside(t)’;cond=’y(-0.01)=0,Dy(-0.01)= 0,D2y(-0.01)=0’; yzs=dsolve(eq1,eq2,cond);simplify(yzs.y); %零状态响应2. 零状态响应的数值求解1)y=lsim(sys,f,t)%sys 表示系统模型,由sys=tf(b,a)生成的系统函数对象 %f 输入信号向量,t 时间抽样点向量例:)()sin()(),()()()('''t u t t f t f t y t y t y π210665==++ ts=0;te=5;dt=0.01; sys=tf([6],[1,5,6]); t=ts:dt:te;f=10*sin(2*pi*t).*UT(t);y=lsim(sys,f,t);plot(t,y),grid on;xlabel(‘time ’),ylabel(‘y(t)’); title(‘零状态响应’); 2)y=conv(f,impul)3. 连续系统冲激响应 y=impulse(sys,t) %sys 表示系统模型4. 连续系统阶跃响应 y=step(sys,t)五、信号的频域分析 1.傅立叶变换 1)符号运算求法 fourier( )和ifourier( )例:)()(t u e t f t 2-=的傅立叶变换ft=sym(‘exp(-2*t)*Heaviside(t)’); fw=fourier(ft)ezplot(abs(fw)); %或者fw_conj=conj(fw);Gw=sqrt(fw*fw_conj); phase=atan(image(fw)/real(fw));%或者angle(fw) ezplot(phase)211Ω+=Ω)(j F 的傅立叶反变换syms tfw=sym(‘1/(1+w^2’); ft=ifourier(fw,t) 2)数值计算求法[][][]Nk k N en f k F k TN M n j TM TN k ≤≤∆=∆∆=-⨯-∆--⨯-⨯02111111,)()()()()()(πωω例:求)(t G 82的傅立叶变换 1)数值计算dt=0.01; t=-4:dt:4;ft=(t+4)/2.*uCT(t+4)-t.*uCT(t)+(t-4)/2.*uCT(t-4); N=2000; k=-N:N;W=pi*k/(N*dt);F=dt*ft*exp(-j*t'*W); F=abs(F); plot(W,F),grid on; axis([-pi pi -1 9]);title('amplitude spectrum'); 2)符号计算ft=sym('(t+4)/2*Heaviside(t+4)-t*Heaviside(t)+(t-4)/2*Heaviside(t-4)'); Fw=simplify(fourier(ft));ezplot(abs(Fw),[-pi pi]);grid on;2. 系统的频率特性1) [H,w] = freqs(b,a):连续系统频率响应的函数2) 波特图:采用对数坐标的幅频特性和相频特性曲线,可显示频响间的微小差异 bode(sys)例:求11+=s s H )(的频率特性w=0:0.01:8*pi; b=[1]; a=[1 1]; H=freqs(b,a,w); subplot(211); plot(w,abs(H)); subplot(212); plot(w,angle(H)); figure(2); sys=tf(b,a); bode(sys);3. 连续时间LTI 系统的频域分析 例:551+Ω=Ω--=j j H t u t u t x )(),()()(,求系统的响应。

matlab描述常用信号

matlab描述常用信号
(2)文件的创建、保存 用【File】菜单下 【New】菜单选项的【M-File】命令打开Matlab的m 文件编辑器窗口。m文件编辑器窗口如图1-4所示。
三、资讯
m文件编辑器窗口
三、资讯
单击m文件编辑器窗口工具栏中的【Save】图标,打 开保存对话框。
m文件保存对话框
三、资讯
2、matlab的二维图形的绘制。Matlab中最常用的绘图 函数是plot,plot的命令格式有以下几种: ①plot(y):当y为一向量时,以y元素的值为纵坐标, y 的序号为横坐标值绘制Z 曲线。当y为一实矩阵时, 则以其序号为横坐标,绘制每列元素值相对于其序号 的曲线。
;
;
syms
;
f sym('sin c(t)');
ezplot( f ,[6,6]);
grid ;
学生自己编写程序,运行结果,教师巡回指导
t;
4)矩形脉冲信号,用rectpuls表示,其形式为 f=rectpuls(t,width),表示的含义为产生一个幅值 为1,宽度为width,以t=0为对称的方波,width ;;默认为1.
;
width 1; t 10 : 0.01:10; f rectpuls(t, width); plot(t, f ); axis([10,10,2,2]);
学生自己编写程序,运行结果,教师巡回指导
t;
5)三角波脉冲信号,在 Matlab 中用 tripuls 表示,其形式为 f tripuls (t, width) , 用以产生一个幅值为 1、宽度为 width、以 t=0 为对称的三角波。
三、资讯
正弦信号与指数信号曲线图
④plot(x,y,‘s’):曲线属性设置格式,字符串s设定曲线 颜色和绘图方式。命令格式也可以写为plot(x1,y1,‘s1’, x2,y2,‘s2’,…)。

实验一 常用基本信号的MATLAB表示和运算

实验一 常用基本信号的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表示

matlab表示

信号与系统分析一、典型信号的matlab 表示表示连续信号,需定义自变量的范围和取样间隔,如t=0:0.01:3 1. 实指数信号 y=k*exp(a*t)2. 正弦信号 k*sin(w*t+phi) k*cos(w*t+phi)3. 复指数信号 y=k*exp((a+i*b)*t)实部real(y) 虚部imag(y) 模abs(y) 相角angle(y) 共轭conj(y) 4. 抽样信号 Sat=sinc(t/pi)5. 矩形脉冲信号 y=rectpuls(t,width)周期方波信号 y=square(2*pi*f*t,duty) %产生频率为fHZ ,占空比为duty%的方波 6. 三角脉冲信号非周期三角波y=tripuls(t,width,skew) %斜度 skew ,最大幅度出现在t=(width/2)*skew 周期三角波 y=sawtooth(t,width)7. 单位阶跃信号 function y=uCT(t) y=(t>=0)阶跃信号符号函数 Heaviside() y=sym(‘Heaviside(t)’) %调用时必须用sym 定义 冲激信号符号函数 Dirac()二、Matlab 的符号运算 1. 定义符号变量syms 变量名 syms xsym(‘变量名’) x=sym(‘x ’) sym(‘表达式’) sym(‘x+1’)2. 化简符号运算结果 simple 或simplify3. 绘制符号表达式图形 ezplot(y,[a,b])三、连续信号的运算微分和积分运算(用符号表达式来表示) 1. 微分运算Diff(function,’variable ’,n) % variable 为求导变量,n 为求导阶数 例:syms a x y y=sin(a*x^2); dy=diff(y ,’x ’) 2. 积分运算int(function, ’variable ’,a,b) %a 为积分下限,b 为积分上限 3. 信号的反折 fliplr(x) 4. 卷积计算1) 符号运算计算卷积(求解积分的方法) 例:)(*)()(t u e t u et y tTt --=syms T t taoxt1=exp(-t); xt2=exp(-t/T);xt_tao=subs(xt1,t,tao)*subs(xt2,t,t-tao);yt=int(xt_tao,tao,0,t); yt=simplify(yt);2) 数值计算法求卷积 conv( )y = dt*conv(e,h)例:求e(t) = u(t)-u(t-1)和h(t) = u(t)-u(t-1)的卷积 t0 = -2; t1 = 4; dt = 0.01; t = t0:dt:t1; e = u(t)-u(t-1); h = u(t)-u(t-1);y = dt*conv(e,h); % Compute the convolution of x(t) and h(t) subplot(221)plot(t,e), grid on, title('Signal e(t)'), axis([t0,t1,-0.2,1.2]) subplot(222)plot(t,h), grid on, title('Signal h(t)'), axis([t0,t1,-0.2,1.2]) subplot(212)t = 2*t0:dt:2*t1; % the time range to the convolution of e and h.plot(t,y), grid on, title('The convolution of x(t) and h(t)'), axis([2*t0,2*t1,-0.1,1.2]), xlabel('Time t sec')四、连续LTI 系统的时域分析1. 系统响应的符号求解 dsolve(‘eq1,eq2,…’,’cond1,cond2,…’); %eqi 表示微分方程,condi 表示初始条件 例:eq=’D3y+2*D2y+Dy=0’;cond=’y(0)=1,Dy(0)=1,D2y(0)=2’; yzi=dsolve(eq,cond); %零输入响应 simplify(yzi);eq1=’D3y+4*D2y+8*Dy=3*Dx+8*x ’; eq2=’x=Heaviside(t)’;cond=’y(-0.01)=0,Dy(-0.01)= 0,D2y(-0.01)=0’; yzs=dsolve(eq1,eq2,cond);simplify(yzs.y); %零状态响应2. 零状态响应的数值求解1)y=lsim(sys,f,t)%sys 表示系统模型,由sys=tf(b,a)生成的系统函数对象 %f 输入信号向量,t 时间抽样点向量例:)()sin()(),()()()('''t u t t f t f t y t y t y π210665==++ ts=0;te=5;dt=0.01; sys=tf([6],[1,5,6]); t=ts:dt:te;f=10*sin(2*pi*t).*UT(t);y=lsim(sys,f,t);plot(t,y),grid on;xlabel(‘time ’),ylabel(‘y(t)’); title(‘零状态响应’); 2)y=conv(f,impul)3. 连续系统冲激响应 y=impulse(sys,t) %sys 表示系统模型4. 连续系统阶跃响应 y=step(sys,t)五、信号的频域分析 1.傅立叶变换 1)符号运算求法 fourier( )和ifourier( )例:)()(t u e t f t 2-=的傅立叶变换ft=sym(‘exp(-2*t)*Heaviside(t)’); fw=fourier(ft)ezplot(abs(fw)); %或者fw_conj=conj(fw);Gw=sqrt(fw*fw_conj); phase=atan(image(fw)/real(fw));%或者angle(fw) ezplot(phase)211Ω+=Ω)(j F 的傅立叶反变换syms tfw=sym(‘1/(1+w^2’); ft=ifourier(fw,t) 2)数值计算求法[][][]Nk k N en f k F k TN M n j TM TN k ≤≤∆=∆∆=-⨯-∆--⨯-⨯02111111,)()()()()()(πωω例:求)(t G 82的傅立叶变换 1)数值计算dt=0.01; t=-4:dt:4;ft=(t+4)/2.*uCT(t+4)-t.*uCT(t)+(t-4)/2.*uCT(t-4); N=2000; k=-N:N;W=pi*k/(N*dt);F=dt*ft*exp(-j*t'*W); F=abs(F); plot(W,F),grid on; axis([-pi pi -1 9]);title('amplitude spectrum'); 2)符号计算ft=sym('(t+4)/2*Heaviside(t+4)-t*Heaviside(t)+(t-4)/2*Heaviside(t-4)'); Fw=simplify(fourier(ft));ezplot(abs(Fw),[-pi pi]);grid on;2. 系统的频率特性1) [H,w] = freqs(b,a):连续系统频率响应的函数2) 波特图:采用对数坐标的幅频特性和相频特性曲线,可显示频响间的微小差异 bode(sys)例:求11+=s s H )(的频率特性w=0:0.01:8*pi; b=[1]; a=[1 1]; H=freqs(b,a,w); subplot(211); plot(w,abs(H)); subplot(212); plot(w,angle(H)); figure(2); sys=tf(b,a); bode(sys);3. 连续时间LTI 系统的频域分析 例:551+Ω=Ω--=j j H t u t u t x )(),()()(,求系统的响应。

matlab 单位脉冲响应变为传递函数

matlab 单位脉冲响应变为传递函数

一、概述在信号处理和系统控制领域,单位脉冲响应和传递函数是非常重要的概念。

单位脉冲响应描述了系统对一个单位脉冲输入的响应,而传递函数则描述了系统的输入输出关系。

在matlab中,可以通过一些简单的步骤将单位脉冲响应转换为传递函数。

本文将介绍如何在matlab中进行这一转换,并给出相关的实例。

二、单位脉冲响应的定义单位脉冲响应是线性时不变系统对一个单位脉冲输入的响应函数。

在时域中,单位脉冲信号被定义为δ(t),其拉普拉斯变换为1。

单位脉冲响应h(t)描述了系统对一个单位脉冲输入信号的响应。

在离散时间下,单位脉冲信号δ[n]为在n=0时为1,其他时刻为0。

相应地,单位脉冲响应h[n]描述了系统对一个单位脉冲输入信号的离散时间响应。

三、传递函数的定义传递函数是描述系统输入输出关系的函数。

在连续时间下,传递函数H(s)是系统的输出信号Y(s)与输入信号X(s)的拉普拉斯变换之比。

在离散时间下,传递函数H(z)是系统的输出信号Y(z)与输入信号X(z)的Z变换之比。

传递函数描述了系统对不同频率信号的放大或衰减情况,以及相位延迟。

四、单位脉冲响应到传递函数的变换方法在matlab中,可以使用以下步骤将单位脉冲响应变换为传递函数。

1. 得到单位脉冲响应的表达式,如果是连续时间系统,则是h(t),如果是离散时间系统,则是h[n]。

2. 对连续时间系统,需要对h(t)进行拉普拉斯变换。

对离散时间系统,需要对h[n]进行Z变换。

3. 将单位脉冲响应的变换结果表示为H(s)或H(z)。

五、matlab中的示例以下是一个简单的例子,演示如何在matlab中将单位脉冲响应变换为传递函数。

假设有一个离散时间系统,其单位脉冲响应为h[n] = [1, 2, 1]。

```matlab定义单位脉冲响应h = [1, 2, 1];进行Z变换H = ztrans(h)```运行以上matlab代码,得到传递函数H(z)的表达式。

六、结论本文介绍了单位脉冲响应和传递函数的概念,并在matlab中演示了如何将单位脉冲响应变换为传递函数的方法。

单位脉冲序列matlab代码

单位脉冲序列matlab代码

单位脉冲序列matlab代码单位脉冲序列是一种非常重要的信号,它在信号处理领域中有着广泛的应用。

在Matlab中,我们可以使用一些简单的代码来生成单位脉冲序列。

下面将详细介绍如何使用Matlab生成单位脉冲序列。

一、什么是单位脉冲序列?单位脉冲序列是一种离散时间信号,它在时间轴上只有一个采样点的值为1,其余采样点的值均为0。

通常表示为δ[n],其中n为时间轴上的采样点。

二、如何生成单位脉冲序列?在Matlab中,我们可以使用dirac函数或impulse函数来生成单位脉冲序列。

1. 使用dirac函数生成单位脉冲序列dirac函数是Matlab中定义好的函数,它可以直接生成离散时间下的Dirac delta函数。

在Matlab中可以通过调用dirac函数来生成单位脉冲序列。

代码如下:```matlabn = -10:10;x = dirac(n);stem(n, x);```这段代码首先定义了一个时间轴n,然后调用dirac函数生成对应的离散时间Dirac delta函数,并将结果存储在变量x中。

最后使用stem函数将结果画出来。

2. 使用impulse函数生成单位脉冲序列impulse函数也是Matlab中定义好的函数,它可以直接生成离散时间下的单位脉冲序列。

在Matlab中可以通过调用impulse函数来生成单位脉冲序列。

代码如下:```matlabn = -10:10;x = impulse(n == 0);stem(n, x);```这段代码首先定义了一个时间轴n,然后使用n == 0生成对应的逻辑向量,并将其作为参数传递给impulse函数。

最后使用stem函数将结果画出来。

三、如何修改单位脉冲序列的幅值和位置?在实际应用中,我们可能需要修改单位脉冲序列的幅值和位置。

在Matlab中,我们可以通过简单的操作来实现这一点。

1. 修改幅值如果需要修改单位脉冲序列的幅值,我们可以将其乘以一个常数即可。

在Matlab中实现信号分析和信号处理的方法

在Matlab中实现信号分析和信号处理的方法

在Matlab中实现信号分析和信号处理的方法信号分析和信号处理是数字信号处理领域的核心内容,广泛应用于通信、音频、图像等领域。

Matlab作为一款功能强大的科学计算软件,提供了丰富的工具箱和函数,可以方便地实现信号分析和信号处理的方法。

本文将介绍在Matlab中实现信号分析和信号处理的方法及相关技巧。

一、信号的表示与加载在Matlab中,信号可以以向量的形式表示。

我们可以使用`zeros`、`ones`、`linspace`等函数生成一维向量,并通过对向量元素的赋值来表示信号的幅度。

例如,我们可以使用以下代码生成一个长度为N的单位矩形脉冲信号:```matlabN = 1000; % 信号长度T = 1/N; % 采样间隔t = linspace(0, 1, N); % 生成等间隔时间向量x = zeros(1, N); % 初始化信号向量x(0.2*N:0.8*N) = 1; % 脉冲信号赋值```加载信号是信号分析的第一步,Matlab提供了多种方式加载信号,包括加载本地文件和从外部设备获取实时信号。

加载本地文件需要使用`audioread`函数(适用于音频信号)或`imread`函数(适用于图像信号)。

例如:```matlab% 加载音频信号[y, fs] = audioread('audio.wav');% 加载图像信号I = imread('image.jpg');```二、信号频谱分析频谱分析是对信号频率特性进行分析的方法,常用的频谱分析方法包括傅里叶变换和小波变换。

Matlab提供了`fft`函数和`cwt`函数来实现傅里叶变换和连续小波变换。

傅里叶变换可以将信号从时域转换到频域,显示信号的频率成分。

以下是使用`fft`函数进行傅里叶变换的示例代码:```matlabX = fft(x); % 傅里叶变换f = (0:N-1)/N; % 频率向量figure;plot(f, abs(X)); % 绘制频谱图xlabel('Frequency (Hz)');ylabel('Amplitude');title('Frequency Spectrum');```小波变换是一种时间频率分析方法,可以同时提供信号在时间和频率上的分辨率。

信号的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单位脉冲响应

matlab单位脉冲响应

matlab单位脉冲响应
MATLAB单位脉冲响应是MATLAB中常用的信号处理方法之一,由于具有较好的特性,它广泛应用在生物、电路、数学控制、音频与视频等领域。

单位脉冲响应(又称单位步函数响应)是一种数学变换,用于表达一个系统元件状态变化的、可解析的模型,也被用来表示一个响应系统对脉冲输入的响应行为。

单位脉冲响应的原理很简单,就是用时间把一系列单位脉冲的信号序列响应的变化量叠加起来,从而最终得到信号响应的函数,即某一信号的单位脉冲响应(UPR)。

MATLAB的UPR算法可以用来描述系统的反应和非线性特性,预测信号的行为,以及优化信号的动态表现。

UPR程序可以用来比较不同信号的响应。

MATLAB中通过调用指定函数实现UPR,比如调用impz()函数可以在给定脉冲源条件下计算相应的脉冲响应函数。

在实际应用中,这个函数可以被用来检验和估计系统的动态响应性能,在诊断和优化控制系统中很有用。

此外,MATLAB中还提供了其他便捷的UPR函数,例如tf()、zpk()和ss()等。

matlab 还提供了实现UPR的更多工具,比如step()函数可以用来模拟系统的步态响应、impulse()函数可以模拟系统的脉冲响应、initial()函数可以用来模拟系统的初始响应,可以用于
模拟不同响应系统的响应行为。

总而言之,MATLAB单位脉冲响应是一种很有用的信号处理方法,可以提供可靠的系统建模能力,用以更好地理解和控制系统的运行行为,以及比较不同响应系统的动态表现,为系统的运行提供重要的参考及优化信息。

matlab simulink 脉冲函数

matlab simulink 脉冲函数

matlab simulink 脉冲函数
MatlabSimulink脉冲函数是一种可以产生脉冲信号的函数,在控制系统设计中非常实用。

在 Simulink 中,脉冲函数可以用来模拟控制系统中的开关行为,比如将开关从开到关或者从关到开。

脉冲函数的基本形式为:
u(t) = A * (t >= t1 & t < t2)
其中,A 为脉冲的幅度,t1 和 t2 为脉冲的起始时间和结束时间。

在 Simulink 中,脉冲函数可以通过使用“Pulse Generator”模块来实现。

这个模块可以设置脉冲的幅度、起始时间、周期、脉宽等参数。

除了普通的脉冲函数之外,在 Simulink 中还有许多其他类型的脉冲信号,比如单脉冲、周期性脉冲、单边脉冲、带宽限制脉冲等等。

这些信号可以通过使用不同的模块来实现,比如“Unit Delay”、“Sample Time”、“Waveform Generator”等。

总之,Matlab Simulink 脉冲函数是控制系统设计中的重要工具,它可以帮助工程师模拟并优化系统的开关行为,从而提高系统的性能和稳定性。

- 1 -。

实验一连续时间信号的Matlab表示与计算

实验一连续时间信号的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 )中还提供了诸如抽样 函数、矩形波、三角波、周期性矩形波和周期性三角波等在信号处理中常用的信号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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()00t 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 )的含义。

Welcome !!! 欢迎您的下载,资料仅供参考!。

相关文档
最新文档