常用信号的MATLAB表示
信号与信号实验
信号与信号实验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中的表示和运算一、[实验目的]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')完成三个自相关运算。
第4章 信号与系统的MATLAB仿真
模型、传递函数模型和零-极点增益模型。其中sos表示二次分式,g为比
例系数,sos为L×6的矩阵,即
b01 b11 b21 1 a11 a21
sos
b0L b1L b2L 1 a1L a2L
(4-15)
1.ss2tf函数 格式:[num, den]=ss2tf(A,B,C,D,iu) 功能:将指定输入量iu的线性系统(A,B,C,D)转换为传递函数模型[num,den]。
生成上述三种信号
• t =-5:0.01:5; • subplot(2,2,1); • a=2 • y1=2.^t • plot(t, y1, 'r') • subplot(2,2,2); • a=2; • theat=pi/3; • y2=sin(2*pi*t+theat) • plot(t, y2) • subplot(2,1,2); • w=4; • y3=exp((a+j*w)*t); • plot(t, y3, ‘y')
3、sinc函数
产生sinc波形或sin(πt)/(πt)波形
sinc(t
)
1
sin(
t)
t
t 0 t0
例: t=linspace(-10,+10,200); x=sinc(t);
plot(t,x);
4.1.2 信号运算
1信号的相加与相乘 y(n)=x1(n)+x2(n) MATLAB实现:y=x1+x2
离散系统: 6.状态空间模型ss
连续系统:
H ( z)
g
L k 1
b0k b1k z1 b2k z2 1 a1k z1 a2k z2
x' Ax Bu
信号与系统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表示
备注:(1)、按照要求独立完成实验项目内容,报告中要有程序代码和程序运行结果和波形图等原始截图。
(2)、实验结束后,把电子版实验报告按要求格式改名(例:09号-张三-实验一)后,交至学习委员那里汇总后再交给老师,并由实验教师批阅记录后;实验室统一刻盘留档。
实验二 MATLAB 的可视化绘图和常用信号的MATLAB表示一、实验目的1、掌握MATLAB的可视化绘图技术;2、结合《信号与系统》的特点,编程实现常用信号及其运算。
二、实验原理对于以t为自变量的连续信号,在绘图时统一用plot函数;而对n为自变量的离散序列,在绘图时统一用stem函数。
三、程序示例见课本P48~53四、实验内容1、熟悉示例中给出的常用信号的表示。
2、完成课本 P59 M2-1 (1)、(2)、(4)P60 M2-6 (2)、(4)、(5);写实验报告(程序及波形)。
t = 0:0.01:10;y1 = (t>=0);figure;subplot(221);plot(t, y1, 'b');xlabel('图1');ylabel('u(t)');y2 = (t>=0);f=y2.*t;subplot(222);plot(t, f, 'b');xlabel('图2');ylabel('r(t)');grid on;t2 = 0:0.0001:0.2;y3 =cos(100*t2)+cos(3000*t2); subplot(223);plot(t2, y3, 'b');xlabel('图3');k = 0:1:5;y = (k==1);y=y*2;figure;subplot(221);stem(k, y, 'r');xlabel('图1 2δ(k-1)');y1 = (k>=-2);y2=(k>=5);f=y1-y2;subplot(222);stem(k, f, 'r');xlabel('图2 u[k+2]-u[k-5]'); y3 = (k>=0);y=k.*y3;subplot(223);stem(k, y3, 'r');xlabel('图3 ku[k]');grid on;五、实验总结应注意以下几点:①在向量与向量相乘时要用点乘(.*),数字与向量、数字与数字之间用普通乘法(*)。
信号与系统matlab实验习题3 绘制典型信号及其频谱图
绘制典型信号及其频谱图答案在下面四个常用信号及其傅里叶变换式如表1所示。
(1)绘制单边指数信号及其频谱图的MATLAB程序如下:close all;E=1;a=1;t=0:0.01:4;w=-30:0.01:30;f=E*exp(-a*t);F=1./(a+j*w);plot(t,f);xlabel('t');ylabel('f(t)');figure;plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|');figure;max_logF=max(abs(F));plot(w,20*log10(abs(F)/max_logF));xlabel('\omega');ylabel('|F(\omega)| indB');figure;plot(w,angle(F));xlabel('\omega');ylabel('\phi(\omega)');请更改参数,调试此程序,绘制单边指数信号的波形图和频谱图。
观察参数a 对信号波形及其频谱的影响。
注:题目中阴影部分是幅频特性的对数表示形式,单位是(dB),请查阅相关资料,了解这种表示方法的意义及其典型数值对应的线性增益大小。
(2)绘制矩形脉冲信号、升余弦脉冲信号和三角脉冲信号的波形图和频谱图,观察并对比各信号的频带宽度和旁瓣的大小。
(3)更改参数,调试程序,绘制单边指数信号的波形图和频谱图。
观察参数a对信号波形及其频谱的影响。
答案附上程序代码:close all;E=1;a=1;t=0:0.01:4;w=-30:0.01:30;f=E*exp(-a*t);F=1./(a+j*w);plot(t,f);xlabel('t');ylabel('f(t)');figure;plot(w,abs(F));xlabel('\omega');ylabel('|F(\omega)|';E=1,a=1,波形图 频谱图更改参数E=2,a=1;更改参数a ,对信号波形及其频谱的影响。
信号分析实验一内容
实验一连续时间信号的时域和频域分析一. 实验目的:1. 熟悉MATLAB 软件平台。
2. 掌握MATLAB 编程方法、常用语句和可视化绘图技术。
3. 编程实现常用信号及其运算MATLAB 实现方法。
4. 编程实现常用信号的频域分析。
二. 实验原理:1、连续时间信号的描述:(1)向量表示法连续信号是指自变量的取值范围是连续的,且对于一切自变量的取值,除了有若干个不连续点之外,信号都有确定的值与之对应。
严格来说,MATLAB 并不能处理连续信号,而是用等时间间隔点的样值来近似表示连续信号。
当取样时间间隔足够小时,这些离散的样值就能较好地近似连续信号。
矩阵是MATLAB 进行数据处理的基本单元,矩阵运算是MATLAB 最重要的运算。
通常意义上的数量(也称为标量)在MATLAB 系统中是作为1×1 的矩阵来处理的,而向量实际上是仅有一行或者一列的矩阵。
通常用向量表示信号的时间取值范围,如t = -5:5,但信号x(t)、向量t 本身的下标都是从1 开始的,因此必须用一个与向量x 等长的定位时间变量t,以及向量x,才能完整地表示序列x(t)。
在MATLAB 可视化绘图中,对于以t 为自变量的连续信号,在绘图时统一用plot 函数;而对n 为自变量的离散序列,在绘图时统一用stem 函数。
(2)符号运算表示法符号对象(Symbolic Objects 不同于普通的数值计算)是Matlab 中的一种特殊数据类型,它可以用来表示符号变量、表达式以及矩阵,利用符号对象能够在不考虑符号所对应的具体数值的情况下能够进行代数分析和符号计算(symbolic math operations),例如解代数方程、微分方程、进行矩阵运算等。
符号对象需要通过sym 或syms 函数来指定, 普通的数字转换成符号类型后也可以被作为符号对象来处理.我们可以用一个简单的例子来表明数值计算和符号计算的区别: 2/5+1/3 的结果为0.7333(double 类型数值运算), 而sym(2)/sym(5)+sym(1)/sym(3)的结果为11/15, 且这里11/15 仍然是属于sym 类型, 是符号数。
用MATLAB实现常用的连续时间信号及其时域运算
用MATLAB实现常用的连续时间信号及其时域运算信息与通信工程学院通信133班卢承慧一.引言1.要求:1.1用MATLAB语言产生连续时间信号1.2对连续时间信号进行时域运算2.任务:①绘制用于产生以下信号的通用程序,要求对于任意给定的参数都能实现所要求的信号。
调试并运行这些程序,具体产生由指导教师制定的信号并绘制信号波形。
t );a. f(t)=δ(t-t )。
b. f (t) = Au(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 表示表示连续信号,需定义自变量的范围和取样间隔,如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表示和运算
一.实验目的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 产生和图形显示实验目的:加深对常用离散信号的理解; 实验原理:1.单位抽样序列⎩⎨⎧=01)(n δ≠=n n 在MATLAB 中可以利用zeros()函数实现。
;1)1();,1(==x N zeros x如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n kn2.单位阶跃序列⎩⎨⎧01)(n u00<≥n n 在MATLAB 中可以利用ones()函数实现。
);,1(N ones x =3.正弦序列)/2sin()(ϕπ+=Fs fn A n x在MATLAB 中)/***2sin(*1:0fai Fs n f pi A x N n +=-=4.复正弦序列n j e n x ϖ=)(在MATLAB 中)**ex p(1:0n w j x N n =-=5.指数序列n a n x =)(在MATLAB 中na x N n .^1:0=-=实验内容:编制程序产生上述5种信号(长度可输入确定),并绘出其图形。
实验要求:讨论复指数序列的性质。
实验过程: 1. 单位冲击序列:>> n=0:10;>> x1=[1 zeros(1,10)];>> x2=[zeros(1,8) 1 zeros(1,8)]; >> subplot(1,2,1); >> stem(n,x1);>> xlabel ('时间序列n'); >> ylabel('幅度');>> title('单位冲激序列δ(n )'); >> subplot(1,2,2); >> stem(x2);>> xlabel('时间序列n'); >> ylabel('幅度');>> title('延时了8个单位的冲激序列δ(n-8)'); >>>> n=0:10;>> u=[ones(1,11)];>> stem(n,u);>> xlabel ('时间序列n');>> ylabel('信号幅度');>> title('单位阶跃序列u(n)');>>3.正弦序列:>> n=1:30;>> x=2*sin(pi*n/6+pi/4);>> stem(n,x);>> xlabel ('时间序列n');>> ylabel('振幅');>> title('正弦函数序列x=2*sin(pi*n/6+pi/4)'); >>>> n=1:30;>> x=5*exp(j*3*n);>> stem(n,x);>> xlabel ('时间序列n');>> ylabel('振幅');>> title('复指数序列x=5*exp(j*3*n)');>>5.指数序列:>> n=1:30;>> x=1.8.^n;>> stem(n,x);>> xlabel ('时间序列n');>> ylabel('振幅');>> title('指数序列x=1.8.^n');>>复指数序列的周期性讨论:为了研究复指数序列的周期性质,我们分别作了正弦函数x1=1.5sin(0.3πn)和x2=sin(0.6n); 的幅度特性图像。
信号处理matlab1
连续系统冲激响应和阶跃响应求解
MATLAB源程序设计如下:
wp1=650;wp2=850;ws1=700;ws2=800;rp=0.1;rs=50;Fs=2000;
wp=[wp1,wp2]/(Fs/2);ws=[ws1,ws2]/(Fs/2); %利用Nyquist频率频率归一化
例 设计一个在通带内的最大衰减为3 dB,在阻带内的最小衰 减为40 dB的4阶低通模拟椭圆滤波器原型。
MATLAB程序如下: n=4; rp=3; rs=40; [z, p, k]=ellipap(n, rp, rs); [b, a]=zp2tf(z, p, k); w=logspace(-1, 1); freqs(b, a)
sinc(t) y = rectpuls(t,width) y = tripuls(t, width,skew)
周期信号:正弦信号,周期方波
ex1. 产生一个幅度为2,频率为4Hz,相位为 p / 6 的正弦信号
A=2; f=4; phi=pi/6; w0=2*pi*f; t=0:0.01:1; x=A*sin(w0*t+ph字低通滤波器的幅度特性
冲激响应不变法
1. 冲激响应不变法设计IIR数字滤波器的基本原理:
h(n) ha (t) tnT
2.MATLAB信号处理工箱中的专用函数impinvar( ): 格式:[BZ,AZ] =impinvar(B,A,Fs) 功能:把具有[B,A]模拟滤波器传递函数模型转换成采样频率为Fs(Hz)的数字滤波器的 传递函数模型[BZ,AZ]。采样频率Fs的默认值为Fs=1。
连续时间信号在matlab中的表示
连续时间信号在matlab中的表示连续时间信号在Matlab中被表示为一个连续的函数。
下面我们来详细介绍一下如何用Matlab来表示连续时间信号。
一、连续时间信号的定义连续时间信号是定义在连续时间区间上的一种信号,可以用一个经过时间变化的函数来描述。
在Matlab中,我们可以用几个不同的工具箱来表示连续时间信号。
其中,Signal Processing工具箱和Control System 工具箱包含了用于处理和分析信号的函数。
二、信号的表示在Matlab中,我们使用函数来表示连续时间信号,其中最基本的函数是"plot"函数。
这个函数可以用来绘制一类特殊的连续时间信号,即连续时间的模拟信号。
下面是一个简单的例子来说明如何绘制一个sin(t)的连续时间信号:```t = linspace(0,10,1000); % 创建一个时间向量y = sin(t); % 创建信号向量plot(t,y); % 绘制信号```在上面的代码中,我们首先使用linspace函数创建了一个包含1000个元素的向量t,这个向量的范围是从0到10。
然后我们使用sin函数生成了一个与t同样大小的向量y,这个向量包含了sin(t)的值。
最后我们使用plot函数将信号在时间轴上绘制出来。
三、向量的表示在Matlab中,一个连续时间信号通常被表示为一个向量。
这个向量包含了在离散时间点上的信号值。
在Signal Processing工具箱和Control System工具箱中,有很多可以创建信号向量的函数。
比如,我们可以使用linspace函数来创建一个包含N个元素的等间隔时间向量。
另外一个常用的向量表示方法是采用时间采样,即在特定的时间间隔上对信号进行采样。
对于周期性信号,我们可以使用波形发生器来获取采样,并将采样结果存储在一个向量中。
四、信号的操作在Matlab中,我们可以对信号进行很多不同的操作。
比如,我们可以对信号进行加减乘除、傅里叶变换、卷积、滤波等等。
实验一 常见离散信号的MATLAB产生和图形显示
实验一 常见离散信号的MATLAB 产生和图形显示授课课时:2学时一、实验目的:(1)熟悉MATLAB 应用环境,常用窗口的功能和使用方法。
(2)掌握MATLAB 在时域内产生常用离散时间信号的方法。
(3)掌握离散信号的基本运算。
(4)掌握简单的绘图命令。
二、实验原理:(一)信号的表示和产生① 单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ≠=n k n 参考程序:例1-1:)2010(()(<<-=n n n x )δclear all n1=-10;n2=20;n0=0;%在起点为n1,终点为n2的范围内,于n0处产生冲激。
n=n1:n2;%生成离散信号的时间序列x=[n==n0];%生成离散信号x(n)stem(n,x);%绘制脉冲杆图xlabel(' n');ylabel('x(n)');%横坐标和纵坐标的标注说明。
title('Unit Sample Sequence');%图形上方标注图名axis([-10 20 0 1.2]);%确定横坐标和纵坐标的取值范围② 单位阶跃序列⎩⎨⎧=01)(n u 00<≥n n 例1-2:)202((u )(<<-=n n n x )clear alln1=-2;n2=20;n0=0;n=n1:n2;%生成离散信号的时间序列x=[n>=n0];%生成离散信号x(n)stem(n,x,'filled');xlabel('n');ylabel('x(n)');title('Unit step Sequence');axis([-2 20 0 1.2]);③ 正弦序列)sin()(ϕ+=wn A n x例1-3:一正弦信号的频率为1HZ ,振幅值幅度A 为1V ,在窗口显示2个周期的信号波形,并对该信号的一个周期进行32点采样获得离散信号并显示该连续信号和离散信号的波形。
在Matlab中进行信号处理的常用函数与方法
在Matlab中进行信号处理的常用函数与方法引言信号处理是以数字信号为对象进行处理的一门学科,它涉及到信号的获取、变换、分析、传输等方面。
在现代科学研究和工程应用中,信号处理起到了举足轻重的作用。
而在信号处理领域中,Matlab作为一种功能强大的软件工具,被广泛应用于信号处理算法的开发与实现。
本文将介绍一些在Matlab中常用的信号处理函数和方法,以期为读者提供一些参考和指导。
一、基本信号处理函数1.1 信号的读取与写入在Matlab中,用于读取不同格式信号文件的函数有很多,其中最常用的是`audioread`和`audiowrite`函数。
`audioread`函数用于读取音频文件,函数的参数为文件路径,返回一个以列向量形式表示的音频信号。
例如:```matlab[x, fs] = audioread('example.wav');```其中`x`为读取的音频信号,`fs`为采样频率。
而`audiowrite`函数用于将音频信号写入文件,函数的参数为音频信号和目标文件名。
例如:```matlabaudiowrite('output.wav', x, fs);```1.2 信号的显示与绘图在信号处理工作中,对信号进行可视化是很重要的一步,Matlab提供了丰富的绘图函数来实现这一目的。
其中最常用的是`plot`函数,它可以用来绘制一维信号的图像。
例如,要绘制离散信号的波形图:```matlabplot(x);```如果要绘制连续信号的图像,需要先定义信号的时间范围`t`,再将信号和时间作为参数传入`plot`函数:```matlabt = 0 : 0.001 : 1; % 定义时间范围x = sin(2 * pi * 10 * t); % 定义信号plot(t, x);```Matlab还提供了许多其他的绘图函数,如`stem`函数用于绘制离散信号的点图、`spectrogram`函数用于绘制信号的频谱图等。
信号的matlab表示结果与讨论
信号的matlab表示结果与讨论摘要:1.引言2.MATLAB 表示的信号3.结果分析4.讨论5.结论正文:1.引言在现代电子技术和通信领域中,信号处理技术已成为必不可少的技术手段。
信号处理涉及到许多数学概念和方法,其中MATLAB 作为一种强大的数学软件工具,在信号处理领域发挥着越来越重要的作用。
本文将探讨信号的MATLAB 表示,并对其结果进行分析和讨论。
2.MATLAB 表示的信号MATLAB(Matrix Laboratory)是一种基于矩阵运算的编程语言,广泛应用于科学计算、数据分析和可视化等领域。
在信号处理中,MATLAB 可以用来表示和处理各种类型的信号,如模拟信号、数字信号、频域信号等。
通过MATLAB,可以方便地对信号进行采样、量化、调制、滤波等操作,从而实现信号的生成、传输和恢复。
3.结果分析在进行信号处理时,我们通常关心信号的幅度、相位、频率等特性。
利用MATLAB,我们可以方便地对信号进行分析,得到各种与时域、频域相关的参数。
例如,我们可以通过MATLAB 计算信号的幅度谱、相位谱、功率谱等,从而了解信号在不同频率下的能量分布情况。
同时,MATLAB 还可以绘制信号的时域波形、频域图等可视化图像,便于我们直观地观察信号的特性。
4.讨论信号的MATLAB 表示和分析在信号处理领域具有重要意义。
首先,通过MATLAB,我们可以方便地对信号进行各种数学运算和变换,为信号处理提供强大的计算支持。
其次,MATLAB 能够帮助我们快速地分析信号的特性,为信号识别、信号检测、信号恢复等任务提供重要依据。
此外,MATLAB 还有利于我们进行信号处理的算法研究和仿真实验,从而为信号处理技术的发展提供有力支持。
5.结论总之,信号的MATLAB 表示和分析在信号处理领域具有重要意义。
通过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 iq信号傅里叶变换
MATLAB IQ信号傅里叶变换一、引言IQ信号(In-phase and Quadrature)是一种常见的信号表示方式,广泛应用于无线通信、雷达、相干通信等领域。
傅里叶变换是一种重要的信号分析工具,可以将信号从时域转换到频域,帮助我们理解信号的频谱特性。
本文将介绍如何使用MATLAB对IQ信号进行傅里叶变换,并分析变换结果。
二、IQ信号简介IQ信号是由两个正交的基带信号(In-phase和Quadrature)组成的复信号。
其中In-phase信号表示信号在实部的分量,Quadrature信号表示信号在虚部的分量。
在数字通信中,IQ信号经过调制和解调后可以还原为原始信号。
三、MATLAB中的IQ信号表示在MATLAB中,可以使用复数的形式表示IQ信号。
复数由实部和虚部组成,分别表示In-phase和Quadrature信号。
例如,可以使用以下代码生成一个IQ信号序列:t = 0:0.01:1; % 时间序列f1 = 10; % In-phase信号频率f2 = 20; % Quadrature信号频率x = exp(1i*2*pi*f1*t) + exp(1i*2*pi*f2*t); % 生成IQ信号四、IQ信号的傅里叶变换傅里叶变换是一种将信号从时域转换到频域的方法,可以将信号分解成不同频率的分量。
在MATLAB中,可以使用fft函数对IQ信号进行傅里叶变换。
以下是对上述生成的IQ信号进行傅里叶变换的代码:N = length(x); % 信号长度X = fft(x); % 傅里叶变换f = (0:N-1)*(1/N); % 频率序列五、IQ信号频谱分析通过对IQ信号进行傅里叶变换,可以得到信号的频谱信息。
频谱图可以帮助我们理解信号中不同频率成分的强度和分布情况。
以下是绘制IQ信号频谱图的代码:figure;plot(f, abs(X)); % 绘制频谱图xlabel('频率 (Hz)');ylabel('幅度');title('IQ信号频谱');六、IQ信号频谱分析结果解读通过上述代码绘制的频谱图,可以观察到IQ信号的频谱特性。
信号的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); % 绘制小波系数图```三、滤波滤波是信号处理中常用的操作,用于去除信号中的噪声或部分频率分量。
信号与系统实验1:常见信号观测
号的相加和相乘都是基于向量的点运算。
f =symadd(f1,f2);或f=f1+f2; ezplot(f)f =symmul(f1,f2);或f=f1*f2; ezplot(f)3、连续时间信号的微分和积分符号运算工具箱有强大的积分运算和求导功能。
连续时间信号的微分运算,可使用diff 命令函数来完成,其语句格式为:diff(function, ‘variable ’,n)其中, function 表示需要进行求导运算的函数,或者被赋值的符号表达式;variable 为求导运算的独立变量; n 为求导阶数,默认值为一阶导数。
连续时间信号积分运算可以使用int 命令函数来完成,其语句格式为:int(function, ‘variable ’, a, b)其中,function 表示被积函数,或者被赋值的符号表达式;variable 为积分变量;a 为积分下限,b 为积分上限,a 和b 默认时则求不定积分。
三、实验内容及步骤1、在“开始--程序”菜单中,找到MATLAB 程序,运行启动;进入MATLAB 后 ,首先熟悉界面;在MATLAB 命令行窗口(Command Window )键入>> edit 指令或者通过“ File ”菜单中的“ New ”子菜单下的“ M -File ”命令或者单击工具栏上的新建按扭,进行程序输入,然后将文件保存,扩展名设置为.M。
执行;记录运行结果图形,并与笔算结果对照。
2、利用Matlab 命令绘制直流及上述9个信号(可参考教材P62);3、利用Matlab 命令绘制下列信号的波形图; (1) (2)()te u t --; (2) 0.32sin(),0303tet t -<<; (3)cos100cos3000,0.10.1t t t +-<<; (4) (20.5)[]k u k --;(5) 2()sin35kk π。
4、已知()f t 的波形如图1-1所示,作出()()f t f t +、()()f t f t 、()f t 的微分、()f t 的积分、(34)f t -、(1/1.5)f t -并作出()f t 的奇、偶分量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5 常用信号的MATLAB表示5.1单位冲激函数、单位冲激序列
示例7:
t = -5:0.01:5;
y = (t==0);
subplot(121);
plot(t, y, 'r');
n = -5:5;
x = (n==0);
subplot(122);
stem(n, x);
图5
运行结果如图5所示。
程序说明:
(1)由n = -5:5得到一个1×11数组n;而在x = (n==0)中,n==0是一个向量运算,即向量n中的每一个元素与0比较是否相等,其比较结果0或1放在x中。
这样得到的向量x也是1×11数组,且正好就是单位冲激序列。
(2)在MATLAB中,任何向量x的下标是从1开始的,不能取零或负值,而x(n)中的时间变量n则不此受限制。
因此向量x的下标与时间变量n是两个概念,如本例中向量x(n)的下标是从1到11,而时间变量n是从-5到5。
所以必须用一个与向量x等长的定位时间变量n,以及向量x,才能完整地表示序列x(n)。
在信号的表示和运算中,这一点请务必注意;只有当序列x(n)的时间变量正好是从1开始时,才能省去时间变量n,因为此时向量的下标与时间变量相同。
(3)单位冲激函数的实现方法实际上与单位冲激序列是完全相同的,都是用序列表示。
只不过表示连续时间信号的序列中两相邻元素所对应的时间间隔更小,如本例中t的间隔为0.01,而表示离散时间信号的序列中两相邻元素所对应的时间间隔一般为1。
由于单位冲激序列在信号与系统中经常使用,我们专门编制一个函数文件delta.m,在后面的实验部分直接调用该函数即可产生需要的波形。
% delta.m
function [x, n] = delta(n1,n2,k)
% 产生冲激序列δ(n-k),其中n1<=n<=n 2, n1<=k<=n2
disp('输入不正确,输入参数要有三个!');
return;
elseif ((k<n1)|(k>n2)|(n1>n2))
error('输入不正确,输入参数要应满足n1<=k<=n2!')
end
n = n1:n2;
x = ((n-k)==0);
5.2单位阶跃函数、单位阶跃序列
只要将前面冲激函数(示例7)中的关系运算“==”改为“>=”,就可得到单位阶跃函数、单位冲激序列,如图6所示。
图6
我们编制了函数文件stepseq.m来生成单位阶跃序列。
function [x, n] = stepseq(n1,n2,n0)
% 产生序列u(n-n0),其中n1<=n<=n 2, n1<=n0<=n2
disp('输入不正确,输入参数要有三个!'); return;
elseif ((n0<n1)|(n0>n2)|(n1>n2))
error('输入不正确,输入参数要应满足n1<=k<=n2!') end
n = n1:n2;
x = ((n-n0)>=0);
示例8:绘图表示
(1) 门函数;
(2) 序列。
t = -3 :0.05: 3;
z1 = ((t+1) >= 0);
z2 = ((t-1) >= 0);
g = z1 - z2; % 门函数
figure;
subplot(221)
plot(t,g,'r');
axis([-3 3 0 1.1])
x1 = stepseq(-5,10,-3); % 调用函数stepseq
x2 = stepseq(-5,10,5); % 调用函数stepseq
x = x1 - x2;
n = -5:10;
subplot(222)
stem(n,x);
axis([-5,10,0,1.1])
运行结果如图7所示。
图7
5.3其他典型的信号
1.实指数信号
其MATLAB实现为:n = n1: n2; x = a.^n;
1.复指数信号
其MATLAB实现为:n = n1: n2; x = exp(sigma+jw)*n;
1.正(余)弦信号
其MATLAB实现为:n = n1: n2; x = cos(w*n+sita)
5.4工具箱中的信号产生函数
利用MATLAB信号处理工具箱提供的一些函数,可以很方便地产生三角波、方波等函数波形。
1.周期性三角波或锯齿波函数sawtooth
调用格式为:x =sawtooth(t, width)
功能:产生一个周期为2π、幅度在-1到+1之间的周期性三角波信号。
其中width 表示最大幅度出现的位置:即在一个周期内,信号从t=0到width×2π时函数值从-1到+1线性增加,而从width×2π到2π又是从+1到-1线性下降。
width取值在0 ~ 1之间。
若x =sawtooth(Ωt, width),则对应的周期为2π/Ω。
示例9:产生周期为0.2的三角波,width取值分别为0、1、0.5。
td = 1/100000; % td为时间间隔
t = 0 : td : 1;
x1 = sawtooth(2*pi*5*t,0);
x2 = sawtooth(2*pi*5*t,1);
x3 = sawtooth(2*pi*5*t,0.5);
subplot(311); plot(t,x1);
subplot(312); plot(t,x2);
subplot(313); plot(t,x3);
运行结果如图8所示。
图8
1.周期性方波信号square
调用格式为:x =square (t, duty)
功能:产生一个周期为2π、幅度为±1的周期性方波信号。
其中duty表示占空比,即在信号的一个周期中正值所占的百分比。
例如产生频率为40Hz、占空比为75%的周期性方波所调用的语句为
x =square (2*pi*40*t, 75);
1.(非周期)三角波脉冲信号tripuls
调用格式为:x =tripuls (t, width, skew)
功能:产生一个最大幅度为1、宽度为width、斜率为skew的三角脉冲信号。
该函数横坐标范围由向量t决定,其三角波形是以t=0为中心向左右各展开
width/2的范围;斜率skew在-1到+1之间取值,它决定了最大幅度1所对应的横坐标位置:width/2×skew。
示例10:仔细观察由下面代码产生的图9中3个三角波信号之间的区别,自己对tripuls函数的使用做一个总结。
t = -3:0.001:3;
x1 = tripuls(t,4,0);
subplot(131);
plot(t,x1);
axis([-4 4 0 1]);
grid
t = -6:0.001:6;
x2 = tripuls(t,4,0.5);
subplot(132);
plot(t,x2);
axis([-4 4 0 1]);
grid
x3 = tripuls(t+2,4,0.5);
subplot(133);
plot(t,x3);
axis([-4 4 0 1]);
grid
图9
1.(非周期)矩形脉冲信号rectpuls
调用格式为:x =rectpuls (t, width)
功能:产生一个幅度为1、宽度为width、以t=0为中心左右对称的矩形波信号。
该函数横坐标范围由向量t决定,其矩形波形是以t=0为中心向左右各展开width/2的范围。
width的默认值为1。
示例11:生成幅度为2,宽度T = 4、中心在t = 0的矩形波x(t)以及x(t-T/2).
t = -4 : 0.0001 : 4;
T = 4;
x1 = 2*rectpuls(t, T);
subplot(121);
plot(t, x1);
axis([-4 6 0 2.2])
grid;
x2 = 2*rectpuls(t-T/2,T);
subplot(122);
plot(t, x2);
axis([-4 6 0 2.2])
grid;
运行结果如图10所示。
图10
如有侵权请联系告知删除,感谢你们的配合!。