1.常见信号的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常见函数和运算符号解读convhull:凸壳函数cumprod:累计积cumum:累计和cumtrapz:累计梯形数值积分delaunay:Delaunay三角化dearch:求最近点(这是两个有趣的函数factor:质数分解inpolygon:搜索多边形内的点ma某:最大元素mean:平均值median:数组的中间值min:最小值perm:向量所有排列组成矩阵polyarea:多边形的面积prime:生成质数列表prod:数组元素积ort:元素按升序排列ortrow:将行按升序排列td:标准差um:元素和trapz:梯形数值积分tearch:搜索Delaunay三角形var:方差voronoi:Voronoi图del2:Laplacian离散diff:差分和近似微分gradient:数值梯度corrcoef:相关系数cov:协方差矩阵某corr:互相关系数某cov:互协方差矩阵某corr2:二维互相关conv:卷积和多项式相乘conv2:二维卷积deconv:反卷积filter:滤波filter2:二维数字滤波傅立叶变换ab:绝对值和模angle:相角cpl某pair:按复共扼把复数分类fft:一维快速傅立叶变换fft2:二维快速傅立叶变换ffthit:将快速傅立叶变换的DC分量移到谱中央ifft:以为逆快速傅立叶变换ifft2:二维逆快速傅立叶变换ifftn:多维逆快速傅立叶变换iffthift:逆fft平移ne某tpow2:最相邻的2的幂unwrap:修正相角cro:向量叉积interect:集合交集imember:是否集合中元素etdiff:集合差集et某or:集合异或(不在交集中的元素union:两个集合的并unique:返回向量作为一个集合所有元素(去掉相同元素基本数学函数ab:绝对值aco:反余弦acoh:反双曲余弦函数acot:反余切acoth:反双曲线余切acc:反余割acch:反双曲线余割angle:相位角aec:反正割aech:反双曲线正割ain:反正弦ainh:反双曲线正弦atan:反正切atanh:反双曲线正切atan2:四象限反正切conj:求共扼co:余弦coh:双曲余弦cot:余切coth:双曲线余切cc:余割cch:双曲线余割e某p:指数fi某:向零舍入floor:向负无穷大舍入gcd:最大公约数imag:复数的虚部lcm:最小公倍数log:自然对数log2:以2为底的对数log10:以10为底的对数mod:模除nchooek:二项式系数nchooek(n,k=n!/{k!(n-k!}real:复数实部rem:余数round:四舍五入ec:正割ech:双曲线正割ign:符号函数in:正弦inh:双曲线正弦qrt:平方根tan:正切tanh:双曲线正切特殊函数airy:airy函数beelh:第三类贝塞尔函数;beelibeelk:改良型beelh函数beeljbeely:贝塞尔函数betabetaincbetaln:贝塔函数ellipj:雅克比椭圆函数ellipke:完全椭圆积分erferfcerfc某erfinv:误差函数e某pint:指数积分factorial:阶乘函数gammagammalngammainc:伽马函数legendre:勒让德函数pow2:2的幂次ratrat:有理逼近坐标变换cart2pol:笛卡儿坐标变换为极坐标或圆柱坐标cart2ph:笛卡儿坐标变换为球坐标pol2cart:极坐标变换为笛卡儿坐标ph2cart:球坐标变换为笛卡儿坐标矩阵和数组基础blkdiag:构造一个分块对角矩阵eye:创建单位矩阵flop:计算浮点操作次数,现已不再常用i:虚部单位inf:无穷大inputname:输入参数名j:虚部单位nan:非数值nargin:输入参数的数目nargout:输出参数的数目(用户定义函数pi:圆周率realma某:最大正浮点数realmin:最小正浮点数varargin,varargout:返回参数数目(matlab函数时间和日期calendar:返回日历clock:当前时间weekday:星期几矩阵操作cat:把矩阵按行或列连接起来diag:给定向量,构造对角矩阵fliplr:矩阵左右翻转flipud:矩阵上下翻转repmat:复制数组,repmat(A,m,n表示把A复制m行n列组成新数组rehape:按逐列来的方式重新整形数组rot:按逆时针方向旋转90度tril:返回一个矩阵的下三角矩阵triu:返回一个矩阵的上三角矩阵特殊函数矩阵gallery:测试矩阵,或者说大约50个矩阵模版hadamard:哈达马得矩阵hankel:汉克尔矩阵hilb:希尔波特矩阵invhilb:逆希尔波特矩阵magic:魔术方阵pacal:帕斯卡矩阵toeplitz:托普利茨矩阵wilkinon:维尔金森特征值测试矩阵算数运算符+:矩阵加-:减某:乘.某:数组乘^:矩阵乘方.^:数组乘方\\:矩阵左除/:矩阵右除.\\:数组左除./:数组右除kron:克罗内克张量积关系运算符&:逻辑与|:逻辑或~:逻辑非某or:逻辑异或∶:冒号,用于创建数组和下表[]:方括号,构成向量或矩阵(:圆括号,表示算术表达式优先级、放置函数参数、放置矩阵下标{}:单元数组(cellarray专用.:句点,小数点表示、数组运算符组成部分、字段(属性访问..:父目录,与cd一起使用...:连续三点,一行末尾表示续行,:逗号,格开参数;:分号,表示矩阵一行结束或者语句末尾使得执行结果不显示%:注释符':单引号,矩阵后表示转置或者成对出现括起字符串.':数组转置=:赋值逻辑函数all:向量中是否所有分量均非零any:是否有元素非零e某it:指定变量或文件是否存在find:返回矩阵中非零元素的索引和置i某:i系列,大部分根据名称可以知道功能icell(icelltr(iempty(:是否空数组iequal(:数组是否相等ifield(:是否结构数组中的字段ifinite(:数组中元素是否有限iglobal(:是否全局变量ihandle(:是否有效图形句柄ihold(:hold命令处于on状态与否iieee:是否使用IEEE算法iinf(:是否无穷大iletter(:数组元素是否是字母表中字母ilogical(:是否逻辑数组inan(:是否非数值数inumeric(:是否数值数组iobject(:是否对象iprime(:是否质数ireal(:是否实数ipace(:是否空字符ipare(:是否是按稀疏类别存储itruct(:是否结构类itudent:matlab版本是否学生版iuni某:是否uni某版本ia(:指定对象是否属于指定类logical(:把数值数组转变为逻辑数组A(B:A为数值数组,B为逻辑数组时,按B索引的非零元素返回A中相应位置元素milocked(:当前文件是否锁定仿真命令:im---仿真运行一个imulink模块ldebug---调试一个imulink模块imet---设置仿真参数imget---获取仿真参数线性化和整理命令:linmod---从连续时间系统中获取线性模型linmod2---也是获取线性模型,采用高级方法dinmod---从离散时间系统中获取线性模型trim---为一个仿真系统寻找稳定的状态参数构建模型命令:open_ytem--打开已有的模型cloe_ytem--关闭打开的模型或模块new_ytem--创建一个新的空模型窗口load_ytem--加载已有的模型并使模型不可见ave_ytem--保存一个打开的模型add_block--添加一个新的模块add_line--添加一条线(两个模块之间的连线)delete_block--删除一个模块delete_line--删除一根线find_ytem--查找一个模块hilite_ytem--使一个模块醒目显示replace_block--用一个新模块代替已有的模块et_param--为模型或模块设置参数get_param--获取模块或模型的参数add_param--为一个模型添加用户自定义的字符串参数delete_param--从一个模型中删除一个用户自定义的参数bdcloe--关闭一个imulink窗口bdroot--根层次下的模块名字gcb--获取当前模块的名字gcbh--获取当前模块的句柄gc--获取当前系统的名字getfullname--获取一个模块的完全路径名lupdate--将1.某的模块升级为3.某的模块addterm--为未连接的端口添加terminator模块booleanlhelp--将数值数组转化为布尔值--imulink挠没虻蓟蛘吣?榘镏nbp;封装命令:hamak--检查已有模块是否封装hamakdlg--检查已有模块是否有封装的对话框hamakicon--检查已有模块是否有封装的图标iconedit--使用ginput函数来设计模块图标makpopup--返回并改变封装模块的弹出菜单项movemak--重建内置封装模块为封装的子模块诊断命令:llatdiagnotic--上一次诊断信息llaterror--上一次错误信息llatwarning--上一次警告信息ldiagnotic--为一个模型获取模块的数目和编译状态硬拷贝和打印命令:frameedit--编辑打印画面print--将imulink系统打印成图片,或将图片保存为m文件printopt--打印机默认设置orient--设置纸张的方向helprtw看看,rtw相关的命令有三个命令:rtwgen-从一个模型中创建一个rtw文件(model.rtw,用此函数可以指定一些rtw的属性设置tlc-调用目标语言编译器rtwbuild-对一个模型调用rtw的build程序相关的命令好像还有make_rtw,rtw_c,tlc_c以上摘自:水木清华站。
常见信号的matlab表示与运算

1-(1) t=-1:0.01:1; f1=exp(-2*t); f=2-f1;u1=stepfun(t,0); g=f.*u1;subplot(3,1,1),plot(t,f1); subplot(3,1,2),plot(t,f);subplot(3,1,3),plot(t,g);syms t;u1=sym('heaviside(t)'); f=2-exp(-2*t); g=u1.*f;subplot(3,1,1),ezplot(u1,[-1,1]); subplot(3,1,2),ezplot(f,[-1,1]);subplot(3,1,3),ezplot(g,[-1,1]);1-(2) t=-5:0.01:5; u1=stepfun(t,0); u2=stepfun(t,4); f1=u1-u2; f2=cos(pi*t/2); g=f1.*f2;subplot(3,1,1),plot(t,f1); axis([-5,5,-0.5,1.5]) subplot(3,1,2),plot(t,f2); subplot(3,1,3),plot(t,g);axis([-5,5,-1,1])syms t;u1=sym('heaviside(t)-heaviside(t-4)'); f=cos(pi*t/2); g=u1.*f;subplot(3,1,1),ezplot(u1,[-5,5]); subplot(3,1,2),ezplot(f,[-5,5]);subplot(3,1,3),ezplot(g,[-5,5]);1-(3) t=-5:0.01:5; f1=exp(t); f2=cos(t);u=stepfun(t,0); g=2/3*f1.*f2.*u;subplot(3,1,1),plot(t,f2); subplot(3,1,2),plot(t,f1);subplot(3,1,3),plot(t,g);syms t;u1=sym('heaviside(t)'); f1=exp(t); f2=cos(t);g=u1.*f1.*f2;subplot(4,1,1),ezplot(u1,[-5,5]); subplot(4,1,2),ezplot(f1,[-5,5]); subplot(4,1,3),ezplot(f2,[-5,5]);subplot(4,1,4),ezplot(g,[-5,5]);1-(4) t=-5:0.01:5; f1=t;f2=stepfun(t,-2); g=2/3*f1.*f2;subplot(3,1,1),plot(t,f2); subplot(3,1,2),plot(t,f1);subplot(3,1,3),plot(t,g);syms t;u1=sym('heaviside(t+2)'); f1=t;g=2/3*(u1.*f1);subplot(3,1,1),ezplot(u1,[-5,5]); subplot(3,1,2),ezplot(f1,[-5,5]);subplot(3,1,3),ezplot(g,[-5,5]);2-(1)k1=-3;k2=10;k0=0; k=k1:-k0-1;kk=-k0:k2; n=length(k); nn=length(kk); u=zeros(1,n);f1=(-1/2).^k; f2=u.*f1; stem(k,f2,'filled') hold on uu=ones(1,nn); f3=(-1/2).^kk; f4=uu.*f3; stem(kk,f4,'filled') hold offaxis([k1,k2,-0.5,1.5])2-(2)k1=0;k2=8; k=k1:k2; n=length(k); u=ones(1,n); f1=k; f2=u.*f1; stem(k,f2,'filled')2-(3)k1=-3;k2=16;k0=0;k=k1:-k0-1;kk=-k0:k2; n=length(k);nn=length(kk);u=zeros(1,n);f1=sin(k*pi/4);f2=u.*f1;stem(k,f2,'filled')hold onuu=ones(1,nn);f3=sin(kk*pi/4);f4=uu.*f3;stem(kk,f4,'filled') hold offaxis([k1,k2,-1.5,1.5])2-(4)k1=-3;k2=10;k0=0;k=k1:-k0-1;kk=-k0:k2; n=length(k);nn=length(kk);u=zeros(1,n);uu=ones(1,nn);stem(k,u,'filled')hold onstem(kk,uu,'filled') hold off axis([k1,k2,0,1.5])k1=-3;k2=10;k0=0;k=k0+1:(-k1);kk=-k2:k0;n=length(k);nn=length(kk);u=zeros(1,n);uu=ones(1,nn);stem(k,u,'filled')hold onstem(kk,uu,'filled')hold offaxis([-k2,-k1,0,1.5])k1=-3;k2=10;k0=0;k=k0+1+2:(-k1)+2;kk=-k2+2:k0+2; n=length(k);nn=length(kk);u=zeros(1,n);uu=ones(1,nn);stem(k,u,'filled')hold onstem(kk,uu,'filled')hold offaxis([-k2+2,-k1+2,0,1.5])3t=0:0.01:2.5;u0=stepfun(t,0);u1=stepfun(t,1);u2=stepfun(t,2);ft=2*u0-u1-u2; plot(t,ft);axis([0,2.5,0,2.5]);3-(1)t=-2.5:0.01:0;u0=stepfun(t,0);u1=stepfun(t,-1); u2=stepfun(t,-2); ft=u1+u2-2*u0; plot(t,ft);axis([-2.5,0,0,2.5]);3-(2)t=0:0.01:4.5;u0=stepfun(t,0+2);u1=stepfun(t,1+2); u2=stepfun(t,2+2); ft=2*u0-u1-u2;plot(t,ft);axis([0,4.5,0,2.5]);3-(3)t=0:0.01:2.5*2;u0=stepfun(t,0);u1=stepfun(t,1*2); u2=stepfun(t,2*2); ft=2*u0-u1-u2;plot(t,ft);axis([0,2.5*2,0,2.5]);t=0:0.01:2.5/2;u0=stepfun(t,0);u1=stepfun(t,1/2);u2=stepfun(t,2/2);ft=2*u0-u1-u2;plot(t,ft);axis([0,2.5/2,0,2.5]);3-(4)t=0-2:0.01:2.5*2-2;u0=stepfun(t,0-2);u1=stepfun(t,1*2-2);u2=stepfun(t,2*2-2);ft=2*u0-u1-u2;plot(t,ft);axis([0-2,2.5*2-2,0,2.5]);4t1=-1:0.01:0;t2=0:0.01:1;t3=-1:0.01:1;f1=ones(size(t1));f2=ones(size(t2));g=conv(f1,f2);subplot(3,1,1),plot(t1,f1);subplot(3,1,2),plot(t2,f2);subplot(3,1,3),plot(t3,g);与例题结果相同,表示g(t)=f1(t)*f2(t);则g(t)=f1(t-t0)*f2(t+t0) 5t=-3:0.01:3;t1=-6:0.01:6;ut=stepfun(t,0);f1=t.*ut;ut1=1-ut;f2=t.*exp(-t).*ut+exp(t).*ut1; ft=conv(f1,f2);subplot(3,1,1),plot(t,f1) subplot(3,1,2),plot(t,f2)subplot(3,1,3),plot(t1,ft)6function fm=cirshiftd(x,m,N); n=[0:1:N-1];fm=x(mod(n-m,N)+1);f1=[1 1 1 2];f2=[1 2 3 4 5];N=length(f1)+length(f2)-1; f1=[f1,zeros(1,N-length(f1))]; f2=[f2,zeros(1,N-length(f2))]; n=[0:1:N-1];f2=f2(mod(-n,N)+1);H=zeros(N,N);for n=1:1:NH(n,:)=cirshiftd(f2,n-1,N); endy=f1*H';n0=[0:1:N-1];stem(n0,y)。
信号与系统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表示

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.mfunction [x, n] = delta(n1,n2,k)% 产生冲激序列δ(n-k),其中n1<=n<=n 2, n1<=k<=n2if nargin ~=3disp('输入不正确,输入参数要有三个!');return;elseif ((k<n1)|(k>n2)|(n1>n2))error('输入不正确,输入参数要应满足n1<=k<=n2!')endn = n1:n2;x = ((n-k)==0);5.2单位阶跃函数、单位阶跃序列只要将前面冲激函数(示例7)中的关系运算“==”改为“>=”,就可得到单位阶跃函数、单位冲激序列,如图6所示。
(完整版)MATLAB常用函数大全

(完整版)MATLAB常用函数大全一、MATLAB常用的基本数学函数abs(x):纯量的绝对值或向量的长度angle(z):复数z的相角(Phase angle)sqrt(x):开平方real(z):复数z的实部imag(z):复数z的虚部conj(z):复数z的共轭复数round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数floor(x):地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数rat(x):将实数x化为分数表示rats(x):将实数x化为多项分数展开sign(x):符号函数(Signum function)。
当x<0时,sign(x)=-1;当x=0时,sign(x)=0;当x>0时,sign(x)=1。
rem(x,y):求x除以y的馀数gcd(x,y):整数x和y的最大公因数lcm(x,y):整数x和y的最小公倍数exp(x):自然指数pow2(x):2的指数log(x):以e为底的对数,即自然对数或log2(x):以2为底的对数log10(x):以10为底的对数二、MATLAB常用的三角函数sin(x):正弦函数cos(x):余弦函数tan(x):正切函数asin(x):反正弦函数acos(x):反馀弦函数atan(x):反正切函数atan2(x,y):四象限的反正切函数sinh(x):超越正弦函数cosh(x):超越馀弦函数tanh(x):超越正切函数asinh(x):反超越正弦函数acosh(x):反超越馀弦函数atanh(x):反超越正切函数三、适用於向量的常用函数有:min(x): 向量x的元素的最小值max(x): 向量x的元素的最大值mean(x): 向量x的元素的平均值median(x): 向量x的元素的中位数std(x): 向量x的元素的标准差diff(x): 向量x的相邻元素的差sort(x): 对向量x的元素进行排序(Sorting)length(x): 向量x的元素个数norm(x): 向量x的欧氏(Euclidean)长度sum(x): 向量x的元素总和prod(x): 向量x的元素总乘积cumsum(x): 向量x的累计元素总和cumprod(x): 向量x的累计元素总乘积dot(x, y): 向量x和y的内积cross(x, y): 向量x和y的外积四、MATLAB的永久常数i或j:基本虚数单位(即)eps:系统的浮点(Floating-point)精确度inf:无限大,例如1/0nan或NaN:非数值(Not a number),例如0/0 pi:圆周率p(= 3.1415926...)realmax:系统所能表示的最大数值realmin:系统所能表示的最小数值nargin: 函数的输入引数个数nargout: 函数的输出引数个数五、MATLAB基本绘图函数plot: x轴和y轴均为线性刻度(Linear scale)loglog: x轴和y轴均为对数刻度(Logarithmic scale)semilogx: x轴为对数刻度,y轴为线性刻度semilogy: x轴为线性刻度,y轴为对数刻度六、plot绘图函数的叁数字元颜色字元图线型态y 黄色 . 点k 黑色o 圆w 白色x xb 蓝色+ +g 绿色* *r 红色- 实线c 亮青色: 点线m 锰紫色-. 点虚线-- 虚线七、注解xlabel('Input Value'); % x轴注解ylabel('Function Value'); % y轴注解title('Two Trigonometric Functions'); % 图形标题legend('y = sin(x)','y = cos(x)'); % 图形注解grid on; % 显示格线八、二维绘图函数bar 长条图errorbar 图形加上误差范围fplot 较精确的函数图形polar 极座标图hist 累计图rose 极座标累计图stairs 阶梯图stem 针状图fill 实心图feather 羽毛图compass 罗盘图quiver 向量场图1、特殊变量与常数ans 计算结果的变量名computer 确定运行的计算机eps 浮点相对精度Inf 无穷大I 虚数单位inputname 输入参数名NaN 非数nargin 输入参数个数nargout 输出参数的数目pi 圆周率nargoutchk 有效的输出参数数目realmax 最大正浮点数realmin 最小正浮点数varargin 实际输入的参量varargout 实际返回的参量操作符与特殊字符+ 加- 减* 矩阵乘法 .* 数组乘(对应元素相乘)^ 矩阵幂 .^ 数组幂(各个元素求幂)\ 左除或反斜杠/ 右除或斜面杠./ 数组除(对应元素除)kron Kronecker张量积: 冒号() 圆括[] 方括 . 小数点.. 父目录 ... 继续, 逗号(分割多条命令); 分号(禁止结果显示)% 注释! 感叹号' 转置或引用= 赋值== 相等<> 不等于& 逻辑与| 逻辑或~ 逻辑非xor 逻辑异或2、基本数学函数abs 绝对值和复数模长acos,acodh 反余弦,反双曲余弦acot,acoth 反余切,反双曲余切acsc,acsch 反余割,反双曲余割angle 相角asec,asech 反正割,反双曲正割asin,asinh 反正弦,反双曲正弦atan,atanh 反正切,双曲正切tangent 正切atan2 四象限反正切ceil 向着无穷大舍入complex 建立一个复数conj 复数配对cos,cosh 余弦,双曲余弦csc,csch 余切,双曲余切cot,coth 余切,双曲余切exp 指数fix 朝0方向取整floor 朝负无穷取整gcd 最大公因数imag 复数值的虚部lcm 最小公倍数log 自然对数log2 以2为底的对数log10 常用对数mod 有符号的求余nchoosek 二项式系数和全部组合数real 复数的实部rem 相除后求余round 取整为最近的整数sec,sech 正割,双曲正割sign 符号数sin,sinh 正弦,双曲正弦tan,tanh 正切,双曲正切3、基本矩阵和矩阵操作blkding 从输入参量建立块对角矩阵eye 单位矩阵linespace 产生线性间隔的向量logspace 产生对数间隔的向量numel 元素个数ones 产生全为1的数组rand 均匀颁随机数和数组randn 正态分布随机数和数组zeros 建立一个全0矩阵colon) 等间隔向量cat 连接数组diag 对角矩阵和矩阵对角线fliplr 从左自右翻转矩阵flipud 从上到下翻转矩阵repmat 复制一个数组reshape 改造矩阵roy90 矩阵翻转90度tril 矩阵的下三角triu 矩阵的上三角dot 向量点集cross 向量叉集ismember 检测一个集合的元素intersect 向量的交集setxor 向量异或集setdiff 向是的差集union 向量的并集数值分析和傅立叶变换cumprod 累积cumsum 累加cumtrapz 累计梯形法计算数值微分factor 质因子inpolygon 删除多边形区域内的点max 最大值mean 数组的均值mediam 中值min 最小值perms 所有可能的转换polyarea 多边形区域primes 生成质数列表prod 数组元素的乘积rectint 矩形交集区域sort 按升序排列矩阵元素sortrows 按升序排列行std 标准偏差sum 求和trapz 梯形数值积分var 方差del2 离散拉普拉斯diff 差值和微分估计gradient 数值梯度cov 协方差矩阵corrcoef 相关系数conv2 二维卷积conv 卷积和多项式乘法filter IIR或FIR滤波器deconv 反卷积和多项式除法filter2 二维数字滤波器cplxpair 将复数值分类为共轭对fft 一维的快速傅立叶变换fft2 二维快速傅立叶变换fftshift 将FFT的DC分量移到频谱中心ifft 一维快速反傅立叶变换ifft2 二维傅立叶反变换ifftn 多维快速傅立叶变换ifftshift 反FFT偏移nextpow2 最靠近的2的幂次unwrap 校正相位角多项式与插值conv 卷积和多项式乘法roots 多项式的根poly 具有设定根的多项式polyder 多项式微分polyeig 多项式的特征根polyfit 多项式拟合polyint 解析多项式积分polyval 多项式求值polyvalm 矩阵变量多项式求值residue 部分分式展开interp1 一维插值interp2 二维插值interp3 三维插值interpft 使用FFT的一维插值interpn 多维插值meshgrid 为3维点生成x和y的网格ndgrid 生成多维函数和插值的数组pchip 分段3次Hermite插值多项式ppval 分段多项式的值spline 3次样条数据插值绘图函数bar 竖直条图barh 水平条图hist 直方图histc 直方图计数hold 保持当前图形loglog x,y对数坐标图pie 饼状图plot 绘二维图polar 极坐标图semilogy y轴对数坐标图semilogx x轴对数坐标subplot 绘制子图bar3 数值3D竖条图bar3h 水平3D条形图comet3 3D慧星图cylinder 圆柱体fill3 填充的3D多边形plot3 3维空间绘图quiver3 3D震动(速度)图slice 体积薄片图sphere 球stem3 绘制离散表面数据waterfall 绘制瀑布trisurf 三角表面clabel 增加轮廓标签到等高线图中datetick 数据格式标记grid 加网格线gtext 用鼠标将文本放在2D图中legend 图注plotyy 左右边都绘Y轴title 标题xlabel X轴标签ylabel Y轴标签zlabel Z轴标签contour 等高线图contourc 等高线计算contourf 填充的等高线图hidden 网格线消影meshc 连接网格/等高线mesh 具有参考轴的3D网格peaks 具有两个变量的采样函数surf 3D阴影表面图surface 建立表面低层对象surfc 海浪和等高线的结合surfl 具有光照的3D阴影表面trimesh 三角网格图Matlab函数大全信源函数randerr 产生比特误差样本randint 产生均匀分布的随机整数矩阵randsrc 根据给定的数字表产生随机矩阵wgn 产生高斯白噪声信号分析函数biterr 计算比特误差数和比特误差率eyediagram 绘制眼图scatterplot 绘制分布图symerr 计算符号误差数和符号误差率信源编码compand mu律/A律压缩/扩张dpcmdeco DPCM(差分脉冲编码调制)解码dpcmenco DPCM 编码dpcmopt 优化DPCM参数lloyds Lloyd法则优化量化器参数quantiz 给出量化后的级和输出值误差控制编码bchpoly 给出二进制BCH码的性能参数和产生多项式convenc 产生卷积码cyclgen 产生循环码的奇偶校验阵和生成矩阵cyclpoly 产生循环码的生成多项式decode 分组码解码器encode 分组码编码器gen2par 将奇偶校验阵和生成矩阵互相转换gfweight 计算线性分组码的最小距离hammgen 产生汉明码的奇偶校验阵和生成矩阵rsdecof 对Reed-Solomon编码的ASCII文件解码rsencof 用Reed-Solomon码对ASCII文件编码rspoly 给出Reed-Solomon码的生成多项式syndtable 产生伴随解码表vitdec 用Viterbi法则解卷积码(误差控制编码的低级函数)bchdeco BCH解码器bchenco BCH编码器rsdeco Reed-Solomon解码器rsdecode 用指数形式进行Reed-Solomon解码rsenco Reed-Solomon编码器rsencode 用指数形式进行Reed-Solomon编码调制与解调ademod 模拟通带解调器ademodce 模拟基带解调器amod 模拟通带调制器amodce 模拟基带调制器apkconst 绘制圆形的复合ASK-PSK星座图ddemod 数字通带解调器ddemodce 数字基带解调器demodmap 解调后的模拟信号星座图反映射到数字信号dmod 数字通带调制器dmodce 数字基带调制器modmap 把数字信号映射到模拟信号星座图(以供调制)qaskdeco 从方形的QASK星座图反映射到数字信号qaskenco 把数字信号映射到方形的QASK星座图专用滤波器hank2sys 把一个Hankel矩阵转换成一个线性系统模型hilbiir 设计一个希尔伯特变换IIR滤波器rcosflt 升余弦滤波器rcosine 设计一个升余弦滤波器(专用滤波器的低级函数)rcosfir 设计一个升余弦FIR滤波器rcosiir 设计一个升余弦IIR滤波器信道函数awgn 添加高斯白噪声伽罗域计算gfadd 伽罗域上的多项式加法gfconv 伽罗域上的多项式乘法gfcosets 生成伽罗域的分圆陪集gfdeconv 伽罗域上的多项式除法gfdiv 伽罗域上的元素除法gffilter 在质伽罗域上用多项式过滤数据gflineq 在至伽罗域上求Ax=b的一个特解gfminpol 求伽罗域上元素的最小多项式gfmul 伽罗域上的元素乘法gfplus GF(2^m)上的元素加法gfpretty 以通常方式显示多项式gfprimck 检测多项式是否是基本多项式gfprimdf 给出伽罗域的MATLAB默认的基本多项式gfprimfd 给出伽罗域的基本多项式gfrank 伽罗域上矩阵求秩gfrepcov GF(2)上多项式的表达方式转换gfroots 质伽罗域上的多项式求根gfsub 伽罗域上的多项式减法gftrunc 使多项式的表达最简化gftuple 简化或转换伽罗域上元素的形式工具函数bi2de 把二进制向量转换成十进制数de2bi 把十进制数转换成二进制向量erf 误差函数erfc 余误差函数istrellis 检测输入是否MATLAB的trellis结构(structure)marcumq 通用Marcum Q 函数oct2dec 八进制数转十进制数poly2trellis 把卷积码多项式转换成MATLAB的trellis描述vec2mat 把向量转换成矩阵——————————————————————————————————————————————————A aabs 绝对值、模、字符的ASCII码值acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割align 启动图形对象几何位置排列工具all 所有元素非零为真angle 相角ans 表达式计算结果的缺省变量名any 所有元素非全零为真area 面域图argnames 函数M文件宗量名asec 反正割asech 反双曲正割asin 反正弦asinh 反双曲正弦assignin 向变量赋值atan 反正切atan2四象限反正切atanh 反双曲正切autumn 红黄调秋色图阵axes 创建轴对象的低层指令axis 控制轴刻度和风格的高层指令B bbar 二维直方图bar3 三维直方图bar3h 三维水平直方图barh 二维水平直方图base2dec X进制转换为十进制bin2dec 二进制转换为十进制blanks 创建空格串bone 蓝色调黑白色图阵box 框状坐标轴break while 或for 环中断指令brighten 亮度控制C ccapture (3版以前)捕获当前图形cart2pol 直角坐标变为极或柱坐标cart2sph 直角坐标变为球坐标cat 串接成高维数组caxis 色标尺刻度cd 指定当前目录cdedit 启动用户菜单、控件回调函数设计工具cdf2rdf 复数特征值对角阵转为实数块对角阵ceil 向正无穷取整cell 创建元胞数组cell2struct 元胞数组转换为构架数组celldisp 显示元胞数组内容cellplot 元胞数组内部结构图示char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数chi2inv 分布逆累计概率函数chi2pdf 分布概率密度函数chi2rnd 分布随机数发生器chol Cholesky分解clabel 等位线标识cla 清除当前轴class 获知对象类别或创建对象clc 清除指令窗clear 清除内存变量和函数clf 清除图对象clock 时钟colorcube 三浓淡多彩交叉色图矩阵colordef 设置色彩缺省值colormap 色图colspace 列空间的基close 关闭指定窗口colperm 列排序置换向量comet 彗星状轨迹图comet3 三维彗星轨迹图compass 射线图compose 求复合函数cond (逆)条件数condeig 计算特征值、特征向量同时给出条件数condest 范-1条件数估计conj 复数共轭contour 等位线contourf 填色等位线contour3 三维等位线contourslice 四维切片等位线图conv 多项式乘、卷积cool 青紫调冷色图copper 古铜调色图cos 余弦cosh 双曲余弦cot 余切coth 双曲余切cplxpair 复数共轭成对排列csc 余割csch 双曲余割cumsum 元素累计和cumtrapz 累计梯形积分cylinder 创建圆柱D ddblquad 二重数值积分deal 分配宗量deblank 删去串尾部的空格符dec2base 十进制转换为X进制dec2bin十进制转换为二进制dec2hex 十进制转换为十六进制deconv 多项式除、解卷delaunay Delaunay 三角剖分del2 离散Laplacian差分demo Matlab演示det 行列式diag 矩阵对角元素提取、创建对角阵diary Matlab指令窗文本内容记录diff 数值差分、符号微分digits 符号计算中设置符号数值的精度dir 目录列表disp 显示数组display 显示对象内容的重载函数dlinmod 离散系统的线性化模型dmperm 矩阵Dulmage-Mendelsohn 分解dos 执行DOS 指令并返回结果double 把其他类型对象转换为双精度数值drawnow 更新事件队列强迫Matlab刷新屏幕dsolve 符号计算解微分方程E eecho M文件被执行指令的显示edit 启动M文件编辑器eig 求特征值和特征向量eigs 求指定的几个特征值end 控制流FOR等结构体的结尾元素下标eps 浮点相对精度error 显示出错信息并中断执行errortrap 错误发生后程序是否继续执行的控制erf 误差函数erfc 误差补函数erfcx 刻度误差补函数erfinv 逆误差函数errorbar 带误差限的曲线图etreeplot 画消去树eval 串演算指令evalin 跨空间串演算指令exist 检查变量或函数是否已定义exit 退出Matlab环境exp 指数函数expand 符号计算中的展开操作expint 指数积分函数expm 常用矩阵指数函数expm1 Pade法求矩阵指数expm2 Taylor法求矩阵指数expm3 特征值分解法求矩阵指数eye 单位阵ezcontour 画等位线的简捷指令ezcontourf 画填色等位线的简捷指令ezgraph3 画表面图的通用简捷指令ezmesh 画网线图的简捷指令ezmeshc 画带等位线的网线图的简捷指令ezplot 画二维曲线的简捷指令ezplot3 画三维曲线的简捷指令ezpolar 画极坐标图的简捷指令ezsurf 画表面图的简捷指令ezsurfc 画带等位线的表面图的简捷指令F ffactor 符号计算的因式分解feather 羽毛图feedback 反馈连接feval 执行由串指定的函数fft 离散Fourier变换fft2 二维离散Fourier变换fftn 高维离散Fourier变换fftshift 直流分量对中的谱fieldnames 构架域名figure 创建图形窗fill3 三维多边形填色图find 寻找非零元素下标findobj 寻找具有指定属性的对象图柄findstr 寻找短串的起始字符下标findsym 机器确定内存中的符号变量finverse 符号计算中求反函数fix 向零取整flag 红白蓝黑交错色图阵fliplr 矩阵的左右翻转flipud 矩阵的上下翻转flipdim 矩阵沿指定维翻转floor 向负无穷取整flops 浮点运算次数flow Matlab提供的演示数据fmin 求单变量非线性函数极小值点(旧版)fminbnd 求单变量非线性函数极小值点fmins 单纯形法求多变量函数极小值点(旧版)。
实验一 常用信号的Matlab表示及运算

表1.1是常用序列的数学描述和Matlab表示, 包括:单位采样信号 、单位阶跃信号 、实指数信 号 、复指数信号 、正(余)弦信号 。 MATLAB提供了许多工具箱函数来产生信号, 其中大部分函数都需要一个时间向量t作为参数。 下面列举几种常用的函数:
sin()函数、sawtooth()函数、squar e()函数、sinc()函数等。
Hale Waihona Puke 例:离散信号x(n)={x(-2) x(-1) x(0) x(1) x(2)}; 定义时间轴向量n: n=[-2 -1 0 1 2]; 然后定义采样点向量x: x=[1 2 3 5 7]; 键入命令stem(n,x), axis([-3 2 0 8]) 则信号x(n)的图形,见书上图1.1。
这里 stem( )是matlab的绘图命令,用它可以表示离 散时间信号的图形。n表示横坐标的值,x表示纵坐标x (n)的值。 如果要画出连续时间信号的波形需要用plot( )命令。 axis( )是定义横、纵坐标长度命令。
四. 实验报告要求
1.简述实验原理及目的。
2.给出完成实验内容所需的源程序。 3.按实验内容和步骤附上实验过程中的信 号波形图.
附:常用操作命令
1.clear,clear all,close all 2.exit (quit) 3.% 4.n1:m:n2 5.窗口命令,打开,新建,复制等 等 6.xlabel( ),ylabel( ) 7.新建一个m主程序文件,下次可以调用。 8.Help 9.zeros( ) 10.ones( )
实验一 常用信号的Matlab 表示及运算
一. 实验目的
掌握Matlab中表示信号的方法。 掌握Matlab中信号运算的实现方 法。 掌握在Matlab中画信号波形的方 法。
MATLAB使用说明

t=linspace(0,4*pi,512); plot(t,sin(t),t,cos(t),'-.'); title('my figure'); xlabel('t'); legend('sin(t)','cos(t)');
八、plot函数——绘图函数(continuous) plot函数 函数——绘图函数 绘图函数(continuous)
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0
1
2
3
4
5
6
7
8
9
10
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0
1
2
3
4
567Fra bibliotek89
10
一、基本信号的MATLAB表示 基本信号的MATLAB表示
% rectpuls t=0:0.001:4; T=1; ft=rectpuls(t−2*T,T); plot(t,ft) axis([0,4,−0.5,1.5])
1.常见信号的MATLAB表示及运算

常见信号的MATLAB表示
单位阶跃信号 方法二:符号运算表示法 例:画出信号������ ������ = ������ ������ + 2 − 3������(������ − 5)的波形
f=sym('heaviside(t+2)3*heaviside(t-5)');
ezplot(f,[-4,20]);
f=sin(t)/t;
定义函数表达式
ezplot(f,[-10,10]);
绘制波形,设置坐标轴 显示范围
2016年4月14日星期四
常见信号的MATLAB表示
单位阶跃信号 方法一:数值计算法
在MATLAB中,有一个专门用于表示单位阶跃信号的 函数,即stepfun( )函数,它是用数值计算法表示的单位 阶跃函数 。
2016年4月14日星期四
连续时间信号
MATLAB中,用连续信号在等时间间隔点上的采样值 来近视表示;
������(������)
������ ������ ������ ������ ������ ������
������������
������������ ������
MATLAB语句:������ = ������������: ������: ������������
是用形如������ = ������1: ������: ������2的
为连续信号������(������)在向量������
命令定义的时间范围向量, 所定义的时间点上的样值。
������1为信号起始时间, ������2为终止时间, ������为时间间隔。
用plot函数绘制波形,其精度取决于������的取样间隔。������的 取样间隔越小,即点与点之间的距离越小,则近似程度越好, 曲线越光滑。
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实现信号的描述及运算

2. 数字信号的描述及运算
2.1 离散周期信号的描述 1)正弦序列
n 6
例:利用MATLAB绘制正弦序列
x ( n ) sin(
)
的波形图
n=0:39; x=sin(pi/6*n); stem(n,x, 'fill'); title('正弦序列') ylabel('x(n)'); xlabel('n')
练习题
1、产生幅度为4,数字角频率为pi/3,相位为0,基 本周期为6的正弦序列。 2、产生一个幅度为2,数字角频率为pi/3,占空比 duty=30%的离散周期方波。
n1=-3:3;f10=[3,-2,5,1,-1,2,-3]; n2=-1:4;f20=[9,-2,0,-2,-4,8]; n=-3:4; f1=[f10 zeros(1,8-length(n1))]; f2=[zeros(1,8-length(n2)),f20]; y=f1+f2; subplot(3,1,1);stem(n,f1); subplot(3,1,2);stem(n,f2); subplot(3,1,3);stem(n,y);
3)信号的时移、反褶、尺度变换
例:已知信号波形如图,利用MATLAB命令绘制以下函数波形图。 1)f(t-2) 2) f(3t) 3) f(-t) 4) f(-3t-2)
首先创建函数ft function f=ft(t) f=uN(t+2)-uN(t)+(-t+1).*(uN(t)-uN(t-1));
2. 数字信号的描述及运算
2.1 离散周期信号的描述 1)正弦序列
产生幅度为A,一定 数字角频率,相位的 正弦序列
实验一常见信号的MATLAB表示及运算

实验一 常见信号的MATLAB 表示及运算一、实验目的1.熟悉常见信号的意义、特性及波形2.学会使用MATLAB 表示信号的方法并绘制信号波形3. 掌握使用MATLAB 进行信号基本运算的指令二、实验原理信号一般是随时间而变化的某些物理量。
按照自变量的取值是否连续,信号分为连续时间信号和离散时间信号,一般用()f t 和()f k 来表示。
若对信号进行时域分析,就需要绘制其波形,如果信号比较复杂,则手工绘制波形就变得很困难,且难以精确。
MATLAB 强大的图形处理功能及符号运算功能,为实现信号的可视化及其时域分析提供了强有力的工具。
根据MATLAB 的数值计算功能和符号运算功能,在MATLAB 中,信号有两种表示方法,一种是用向量来表示,另一种则是用符号运算的方法。
在采用适当的MATLAB 语句表示出信号后,就可以利用MATLAB 中的绘图命令绘制出直观的信号波形了。
下面只介绍连续时间信号的MATLAB 表示及其波形绘制方法。
连续时间信号所谓连续时间信号,是指其自变量的取值是连续的,并且除了若干不连续的点外,对于一切自变量的取值,信号都有确定的值与之对应。
从严格意义上讲,MATLAB 并不能处理连续信号。
在MATLAB 中,是用连续信号在等时间间隔点上的样值来近似表示的,当取样时间间隔足够小时,这些离散的样值就能较好地近似出连续信号。
在MATLAB 中连续信号可用向量或符号运算功能来表示。
⑴ 向量表示法对于连续时间信号()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()函数绘制其波形。
信号处理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。
实验1 基本信号在MATLAB中的表示和运算

实验一 基本信号在MATLAB 中的表示和运算一、实验目的1. 学会用MA TLAB 表示常用信号的方法;2. 学会用MA TLAB 进行信号基本运算的方法。
二、实验原理1. 连续信号的MATLAB 表示MATLAB 提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。
表示连续时间信号有两种方法,一是数值法,二是符号法。
数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MA TLAB 的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。
例1-1实指数信号 指数信号在MA TLAB 中用exp 函数表示。
如atAe t f =)(,调用格式为 ft=A*exp(a*t) 程序是A=1; a=-0.4;t=0:0.01:10; %定义时间点ft=A*exp(a*t); %计算这些点的函数值plot(t,ft); %画图命令grid on; %在图上画方格例1-2 正弦信号 正弦信号在MATLAB 中用 sin 函数表示。
调用格式为 ft=A*sin(w*t+phi)A=1; w=2*pi; phi=pi/6;t=0:0.01:8;ft=A*sin(w*t+phi);plot(t,ft);grid on;例1-3 抽样信号 抽样信号Sa(t)=sin(t)/t 在MA TLAB 中用 sinc 函数表示。
定义为 )/(sin )(πt c t Sa =t=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);grid on;axis([-10,10,-0.5,1.2]); %定义画图范围title('抽样信号') %图的名字例1-4 三角信号 三角信号在MATLAB 中用 tripuls 函数表示。
调用格式为 ft=tripuls(t,width,skew),产生幅度为1,宽度为width ,且以0为中心左右各展开width/2大小,斜度为skew 的三角波。
信号与系统matlab实验 典型信号的表示和运算

信号与系统matlab 实验 典型信号的表示和运算本练习利用MATLAB 进行信号的表示和运算。
主要内容包括离散时间信号的表示,连续时间信号的数值表示,连续时间信号的符号表示和信号的运算。
1.1 离散时间信号的表示 1.1.1 有限长序列一个时间序列可用一个序列数组和一个时间标号数组来表示。
例1-1:利用MATLAB 表示序列01,2,4,2,3n ↑=⎧⎫⎪⎪⎨⎬⎪⎪⎩⎭。
% 序列数组(纵坐标)x=[0 0 0 1 2 4 2 3 0 0 0]; % 时间标号数组(横坐标)n=[-5 -4 -3 -2 -1 0 1 2 3 4 5]; % 绘制序列对应的波形stem(n,x); xlabel('n');ylabel('x');由stem 绘制的波形图如图1-1所示。
图1-1 一个序列的波形图注意:命令的尾部用了分号,用以除掉MATLAB 不必要的回响。
1.1.2 单位样值序列单位样值序列可以表示为nx0,0()1,0n n n δ≠⎧=⎨=⎩ (1-1)它可以用只有一个元素为1其余元素均为0的数组表示,如例1-3所示。
例1-3:n=[-5:5];x=[zeros(1,5) 1 zeros(1,5)]; stem(n,x);xlabel('n');ylabel('x');单位样值序列波形图如图1-2所示。
图1-2 单位样值序列波形图1.1.3 由已知序列得到另一个序列(1) 取长序列中的一部分 例1-3:nx=0:10;x=nx; % 取序列nx 的前5个值 ny=nx(1:5); % 取序列x 的前5个值 y=x(1:5);subplot(2,1,1);stem(nx,x);xlabel('nx'); ylabel('x');axis([0 10 0 10]); subplot(2,1,2);stem(ny,y);xlabel('ny'); ylabel('y'); axis([0 10 0 5]);MATLAB 执行结果见图1-3。
信号在MATLAB中的表示

实验一信号在MATLAB 中的表示一、实验目的1、掌握运用MATLAB 表示常用连续和离散时间信号的方法。
2、观察并熟悉这些信号的波形和特性。
二、实验设备计算机、MATLAB 软件三、实验内容1、连续时间信号的MATLAB 表示自变量在整个区间内都有定义的信号,成为连续时间信号,简称连续信号。
从严格意义上讲,MATLAB 数值计算的方法并不能处理连续信号。
可利用连续信号在等时间间隔点的取样值来表示近似表示连续信号,即当取样时间间隔足够小时,这些离散样值能够被MATLAB 处理,并且能较好的近似表示连续信号。
①指数信号指数信号的基本形式为atAe t f =)(。
在MATLAB 中可以用exp 函数来表示,其语句格式为)*exp(*t a A ft =。
练习1:用MATLAB 命令产生指数信号t e t f 5367)(=,并绘制出-3<t<3的波形。
解:MATLAB 源程序为>>t=-3:0.01:3;>>A=7/6;>>a=3/5;>>ft=A*exp(a*t);>>plot(t,ft)>>grid on;运行结果如下②正弦信号正弦信号的基本形式为)cos()(ϕω+=t A t f 或)sin()(ϕω+=t A t f ,分别用MATLAB 内部函数cos 和sin 表示,其语句格式为:)*cos(*phi t A ft +=ω)*sin(*phi t A ft +=ω练习2:用MATLAB 产生信号)62sin(2)13cos(10)(ππππ++-=t t t f ,并绘制0<t<3的波形解:MATLAB 源程序为>A1=pi/10;>>A2=2;>>w1=pi/3;>>w2=2*pi;>>phi1=1;>>phi2=pi/6;>>t=0:0.01:3;>>ft=A1*cos(w1*t+phi1)+A2*sin(w2*t+phi2);>>plot(t,ft),grid on;>>axis([03-33]);运行结果如下③抽样函数抽样信号的基本形式为tt t Sa )sin()(=,在MATLAB 中国可以用sinc(t)函数表示,其定义为t t t c ππ)sin()(sin =,其调用形式为)(sin t c ft =.练习3:用MATLAB 产生信号)2(3t Sa ft π=,并绘制时间为ππ66-<<t 的波形图解:MATLAB 源程序为>>t=-6*pi:pi/100:6*pi;>>A=3;>>ft=A*sinc(2*t);>>plot(t,ft),grid on;>>axis([-2020-14]);运行结果如下:④矩形脉冲信号矩形脉冲信号在MATLAB中用rectpuls函数表示,其调用形式为rectpulstft=,(width)用以产生一个幅值为1,宽度为width且相对于t=0点左右对称的矩形波信号。
常用基本信号的MATLAB表示和运算

《信号与系统》课程实验报告1.实验原理一、信号的MATLAB表示(1)连续信号的MATLAB表示MATLAB提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。
表示连续时间信号有两种方法,一是数值法,二是符号法。
数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MATLAB的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。
指数信号正弦信号抽样信号三角信号虚指数信号复指数信号矩形脉冲信号单位阶跃信号正弦信号符号算法单位阶跃信号(2)离散信号的MATLAB表示单位脉冲序列单位阶跃序列复指数序列二、信号基本运算的MATLAB实现信号基本运算是乘法、加法、尺度、反转、平移、微分、积分,实现方法有数值法和符号法.以f(t)为三角信号为例,求f(2t) , f(2-2t)三、离散序列的差分与求和 2.程序的设计与实现 (1))()2()(2t u e t f t --=程序清单如下: A=-1; a=-2;t=0:0.01:5; %定义时间点ft=(2+A*exp(a*t)).*(t>=0); %计算这些点的函数值plot(t,ft); %画图命令,用直线段连接函数值表示曲线 grid on; %在图上画方格 axis([-1,5,-0.5,5]); 信号波形如下所示:(2) 程序清单如下: t=-5:0.01:8;ut=(t>=0)-(t>=2); ft=1+cos(pi*t); f=ft.*ut;)]2()()[cos 1()(--+=t u t u t t f πplot(t,f); grid on;axis([-5,8,-0.5,2.5]); 信号波形如下所示:3.程序的设计与实现信号)()2()(2t u e t f t--=,画出)2(t f 、)2(t f -波形。
1.常见信号的MATLAB表示及运算

f=sin(t)/t;
定义函数表达式
ezplot(f,[-10,10]);
绘制波形,设置坐标轴 显示范围
2016年4月14日星期四
常见信号的MATLAB表示
单位阶跃信号 方法一:数值计算法
在MATLAB中,有一个专门用于表示单位阶跃信号的 函数,即stepfun( )函数,它是用数值计算法表示的单位 阶跃函数 。 调用格式为:stepfun(t,t0)
常见信号的MATLAB表示及运算
MATLAB中信号的表示
对连续时间信号������(������)或者离散时间信号������(������)进行时域 分析时,信号复杂时,手工绘制波形很困难且难以精确。
MATLAB的强大图形处理功能及符号运算功能,为实 现信号的可视化和时域分析提供有力的工具。 MATLAB信号中信号有2中表示方法 向量表示法
矩形脉冲信号 脉冲宽度2 1 0.5 0 -10 -8 -6 -4 -2 0 2 4 6 8 10
矩 形 脉 冲 信 号 脉 冲 宽 度 10 1 0.5 0 -10 -8 -6 -4 -2 0 2 4 6 8 10
2016年4月14日星期四
常见信号的MATLAB表示
周期矩形脉冲信号:SQUARE(T,DUTY)
2016年4月14日星期四
常见信号的MATLAB表示
单位阶跃信号 方法二:符号运算表示法 例:画出单位阶跃信号波形
ut=sym('heaviside(t)');
定义单位阶跃信号 (要用符号函数定义法)
ezplot(ut,[-2,10]);
绘制单位阶跃信号在-2~10 范围之间的波形
2016年4月14日星期四
常见信号的MATLAB表示
MATLAB 1.常见信号的MATLAB表示及运算

1、用MATLAB命令函数分别绘出抽样信号、矩形脉冲信号、周期矩形脉冲信号、三角波脉冲信号、三角波周期信号的波形,理解其中参数的意义。
t=-20:0.01:20;f10=sinc(t);f20=rectpuls(t,2);f30=square(t,2);f40=tripuls(t,0.5);f50=sawtooth(t,0.5);subplot(5,1,1);plot(t,f10);axis([-10,10,-2,2]);subplot(5,1,2);plot(t,f20);axis([-10,10,-2,2]);subplot(5,1,3);plot(t,f30);axis([-10,10,-2,2]);subplot(5,1,4);plot(t,f40);axis([-10,10,-2,2]);subplot(5,1,5);plot(t,f50);axis([-10,10,-2,2]);t=-20:0.01:20;f20=rectpuls(t,2);f21=rectpuls(t,4);f22=rectpuls(t,8);f23=rectpuls(t,16); f24=rectpuls(t,32); subplot(5,1,1);plot(t,f20);axis([-10,10,-2,2]); subplot(5,1,2);plot(t,f21);axis([-10,10,-2,2]); subplot(5,1,3);plot(t,f22);axis([-10,10,-2,2]); subplot(5,1,4);plot(t,f23);axis([-10,10,-2,2]); subplot(5,1,5);plot(t,f24);axis([-18,18,-2,2]);m=5/pi;t=-20:0.0001:20;f30=square(t,4*pi); f31=square(t,8*pi); f32=square(t,16*pi); f33=square(m*t,25); f34=square(m*t,50); subplot(5,1,1);plot(t,f30);axis([-10,10,-2,2]); subplot(5,1,2);plot(t,f31);axis([-10,10,-2,2]); subplot(5,1,3);plot(t,f32);axis([-10,10,-2,2]); subplot(5,1,4);plot(t,f33);axis([-10,10,-2,2]); subplot(5,1,5);plot(t,f34);axis([-10,10,-2,2]);t=-20:0.01:20;f40=tripuls(t,2);f41=tripuls(t,4);f42=tripuls(t,8);f43=tripuls(t,16);f44=tripuls(t,32); subplot(5,1,1);plot(t,f40);axis([-10,10,-2,2]); subplot(5,1,2);plot(t,f41);axis([-10,10,-2,2]); subplot(5,1,3);plot(t,f42);axis([-10,10,-2,2]); subplot(5,1,4);plot(t,f43);axis([-10,10,-2,2]); subplot(5,1,5);plot(t,f44);axis([-18,18,-2,2]);m=5/pi;t=-20:0.0001:20;f50=sawtooth(t,0.25);f51=sawtooth(t,0.5);f52=sawtooth(t,0.75);f53=sawtooth(m*t,0.25); f54=sawtooth(m*t,0.75);subplot(5,1,1); plot(t,f50);axis([-10,10,-2,2]); subplot(5,1,2); plot(t,f51);axis([-10,10,-2,2]); subplot(5,1,3); plot(t,f52);axis([-10,10,-2,2]); subplot(5,1,4); plot(t,f53);axis([-10,10,-2,2]); subplot(5,1,5); plot(t,f54);axis([-10,10,-2,2]);2、分别用MATLAB 的数值运算和符号运算功能,绘出下列连续时间信号的波形。