您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第二讲_MATLAB图形处理
常用的数学函数acos(x)———反余弦函数cos(x)———余弦函数acot(x)———反余切函数cot(x)———余切函数asin(x)———反正弦函数sin(x)———正弦函数atan(x)———反正切函数tan(x)———正切函数exp(x)———自然指数函数pow2(x)———以2为底的指数函数log(x)———自然对数函数sqrt(x)———根号函数log2(x)———以2为底的对数函数floor(x)———向下取整数log10(x)———以10为底的对数函数ceil(x)———向上取整数mod(x)———x对y的模round(x)———四舍五入函数rem(x,y)———x除以y的余数sign(x)———符号函数3.2.7选择输出格式MATLAB中的所有计算都是以双精度方式完成的,但是显示输出可以是具有4个小数位的定点输出。例如,对于向量x=[1/30.00002]MATLAB有下列输出:x=0.33330.0000如果在矩阵中至少有一个元素不是严格的整数,则有4种可能的输出格式。显示的输出量可以利用下列命令加以控制:formatshortformatlongformatshorteformatlonge一旦调用了某种格式,则这种被选用的格式将保持,直到对格式进行了改变为止。formatshort和formatlong是经常采用的格式。一旦调用了MATLAB,即使没有输入格式命令,MATLAB也将以formatshort格式显示数值结果。如果矩阵或向量的所有元素都是严格的整数,则formatshort和formatlong的结果是相同的。格式对应结果命令含义4/31.2345e-6formatshortformatlongformatshorteformatlongeformatshortgformatlonggformathexformat+formatratformatbank短格式长格式短格式e方式长格式e方式短格式g方式长格式g方式16进制格式+格式分数格式银行格式1.33331.333333333333331.3333e+0001.33333333333333e+0001.33331.333333333333333ff5555555555555+4/31.330.00000.000001234500001.2345e-0061.234500000000000e-0061.2345e-0061.234500000000000e-0063eb4b6231abfd271+1/8100450.00MATLAB操作桌面的file菜单中打开preferences窗口,选择命令窗口界面,就可以方便地进行格式选择。注:复数和复数矩阵(Complexandcomplexmatrix)复数用特殊字符i或j表示。i=sqrt(-1),其值在工作空间显示为0+1.0000i.例:输入z=3+4i或z=3+4j结果一样。MATLAB中复数有下面的语句生成办法:z=a+b*i或z=r*exp(i*θ)其中r为复数的模,θ为复数辐角的弧度数。复数的两种输入方法:(1)a=[12;34]+i*[56;78](2)a=[1+5i2+6i;3+7i4+8i]结果相同:a=1.0000+5.0000i2.0000+6.0000i3.0000+7.0000i4.0000+8.0000i注:(1)当复数的虚部(image)为一个确定的数(而不是变量或矩阵)时,可省略“*”,如1+2*i可写成1+2i,但a+b*i不能写成a+bi,[12]+[34]*i不能写成[12]+[34]i(2)当复数作为矩阵元素时,复数内不能留有空格,如1+5i,MATLAB中任何矩阵的元素内部都不能留有空格,否则会被当作两个元素处理而出错。第二讲MATLAB图形处理MATLAB在数据可视化方面的表现力很强。它的能力不仅功能强大,而且充分考虑了不同层次用户的不同需求,系统具有两个层次的绘图指令:一个层次是直接对图形句柄进行操作的底层绘图指令,它具有控制和表现数据图形能力强,控制灵活多变等优点,对于有较高或特殊需求的用户而言,该层次能够完全满足他们的需求;另一层次是在底层指令基础上建立的高层绘图指令,它的指令简单明了,易于掌握,适用于普通用户。Matlab的图形命令格式简单,可以使用不同的线形,色彩、数据点标记和标注等来修饰。常用的MATLAB绘图语句有figure、plot、subplot、stem等,图形修饰语句有title、axis、text等。基本绘图函数figure———创建一个图的窗口plot———绘制图形subplot———绘制子图loglog———x、y轴均取对数标度建立图形stairs———绘制序列的方波图形stem———绘制离散点序列semilogx———x轴用对数标度、y轴用线性标度绘制图形semilogy———y轴用线性标度、x轴用对数标度绘制图形以下函数是将标题、坐标轴标记、网格线及文字注释加到图上。title———给图形加标题xlabel———给x轴加标记ylabel———给y轴加标记text———在图形指定位置上加文本字符串gtext———用鼠标在图上放文本字符串legend———图的注释grid———打开网格线hold———图是否重叠打印axis———命令对坐标轴重新设定2.1figure语句figure有两种用法。当只用一句figure命令时,程序会创建一个新的图形窗口,并返回一个整数型的窗口编号。当采用figure(n)时,表示将第n号图形窗口作为当前的图形窗口,并将其显示在所有窗口的最前面。如果该图形窗口不存在,则新建一个窗口,并赋以编号n。2.2plot语句线型绘图函数。用法为plot(x,y,’s’)。参数x为横轴变量,y为纵轴变量,s用以控制图形的基本特征如颜色、粗细等,通常可以省略,常用方法如表2-1所示。表2-1plot命令的参数及其含义参数含义参数含义参数含义y黄色·点–实线m紫色o圆:虚线c青色×打叉–·点划线r红色+加号--破折线g绿色*星号^向上的三角形b蓝色s正方形向左的三角形w白色d菱形向右的三角形k黑色v向下的三角形p五角星形【例2.1】plot([1,3,4,2,5])%长度为5的向量【例2.2】在区间0≤X≤2内,绘制正弦曲线Y=SIN(X),其程序为:x=0:pi/100:2*pi;y=sin(x);plot(x,y);gridon%x,y的长度相等【例2.3】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,'r+',x,y2,'kp')plot函数还可以为plot(x,y1,x,y2,x,y3,…)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,…为Y轴,在同一幅图内绘制出多条曲线。2.3stem语句绘制离散序列图,常用格式stem(y)和stem(x,y),分别和相应的plot函数的绘图规则相同,只是用stem命令绘制的是离散序列图。【例2.4】用stem命令正弦曲线的绘制离散序列图x=0:pi/100:2*pi;stem(x,sin(x))2.4subplot语句subplot(m,n,i)是分割显示图形窗口命令,它把一个图形窗口分为m行n列共m×n个小窗口,并指定第i个小窗口为当前窗口。2.5绘图修饰命令在绘制图形时,我们通常需要为图形添加各种注记以增加可读性。在plot语句后使用title(‘标题’)可以在图形上方添加标题,使用xlabel(‘标注’)或ylabel(‘标注’)为X轴或Y轴添加说明,使用text(X值、Y值、‘想加的标注’)可以在图形中(X值,Y值)处添加标注,使用axis([xminxmaxyminymax])设置坐标轴的最小最大值,gtext(‘string’)利用鼠标添加说明性文本信息;gridon(/off)给当前图形标记添加(/取消)网格。【例2.4】用MATLAB语句绘正弦图,其运行结果见图2-1:x=0:0.1*pi:2*pi;%定义x向量subplot(2,2,1);%将窗口划分为2行,2列,在第1个窗口中作图plot(x,sin(x));%画图t=title('正弦线')%给图形加标题subplot(2,2,2);%在第2个窗口中作图plot(x,sin(x),'r');%画一正弦波,红色xlabel('X');%给x轴加说明ylabel('SIN(X)');%给y轴加说明subplot(2,2,3);%在第2个窗口中作图plot(x,sin(x),'--');%画一正弦波,破折线subplot(2,2,4);%在第2个窗口中作图plot(x,sin(x),'r+');%画一正弦波,红色破折线text(4,0,'注记');图2-1例2.4运行结果2.6图例函数legend()基本格式:legend('string1','string2',...pos)功能:给图加图例,对于每个已画的曲线,可以配置想要的图例。参数:'string1','string2',...—解释图例的字符串pos—决定放置图例的位置pos=-1将图例放在轴边距外右边pos=0将图例放在轴边距内右边占用尽量少的点pos=1将图例放在轴的右上方(缺省值)pos=2将图例放在轴左上方pos=3将图例放在轴左下方pos=4将图例放在轴【例2.5】legend用法举例x=-pi:pi/20:pi;plot(x,cos(x),'-ro',x,sin(x),'-.b')h=legend('cos','sin',2)图2-2例2.5运行结果注:如何把图形复制到word文档确定信号分析一、周期信号的傅里叶级数1、基本原理若一周期信号ftftkT,其中k为整数,T成为信号的周期。若周期信号在一个周期内可积,则可通过傅立叶级数对该信号进行展开。其傅立叶展开式如下:2sjnftnnftFe(2-1)其中,/22/21sTjnftnTFftedtT,T为信号最小周期;1/sfT;nF为傅立叶展开系数,其物理意义为频率分量snf的幅度和相位。式2-1表明:信号可以展开成一系列频率为1/sfT的整数倍的正弦、余弦信号的加权叠加,其中相应频率分量的加权系数即为nF,因此可以用周期信号的傅立叶展开来重构该周期信号,其逼进程度与展开式的项数有关。2、举例设周期信号一个周期的波形为1,0/21/2tTftTtT,,求该信号傅里叶级数展开式,并用MATLAB画出傅里叶级数展开后的波形,并通过展开式项数的变化考察其对ft的逼近程度,考察其物理意义。解:2000111[22]0sTjnftnTFftedtTFftdtTTTT201sTjnftnFftedtT2222021112121122ssjTTjnftjnftTjnjnssjnjnssnedtedtTeeTjnfjnfeeTjnfnfej222221()22sin(2)2s22in/2jnjnjnjnjnjsneeeeTjnjnnencnef傅立叶展开式为:2sjnftnnftFe源代码:clearall;N=100;%取展开式的项数为2N+1项T=1;fs=1/T;N_sample=128;%为了画波形,设置每个周期的采样点数dt=1/N_sample;%时间分辨率t=0:dt:10*T-dt;n=-N:N;Fn=sinc(n/2).*exp(-j*n*pi/2);%求傅立叶系数Fn(N+1)=0;ft=zeros(1,length(t));form=-N:Nft=ft+Fn(m+N+1)*exp(j*2*pi*m*fs*t);%Fn是一个数组,其序
本文标题:第二讲_MATLAB图形处理
链接地址:https://www.777doc.com/doc-2129222 .html