第二章MATLAB计算结果可视化和确知信号分析 程序如下: x=0:pi/10:2*pi; y=2*sin(x); subplot(2,2,1);bar(x,y,'g'); title('bar(x,y,"g"));axis([0,7,-2,2D); subplot(2,2,2);stairs(x,y,'b'); title('stairs(x,y,"b"));axis(10,7,-2,2D; subplot(2,2,3);stem(x,y,'k'); title('stem(x,y,"k"));axis([0,7,-2,21); subplot(2,2,4);fill(x,y,'y); title('fill(x,y,"y"));axis([0,7,-2,21); 仿真结果: bar(x.y.'g) stairs(x,y,'b') 4 2 stem(x.y,k) fill(x.y.y) (5)图形保持 hold on/off命令控制是保持原有图形还是刷新原有图形,不带参数的hold命令在两种 状态之间进行切换。 例2-2采用图形保特,在同一坐标内绘制曲线y1=0.2e0.5c0s(4πx)和y2=2e05c0s(πx)。 程序如下: x=0:pi/100:2*pi y1=0.2*exp(-0.5*x).*cos(4*pi*x)月 plot(x,y1) hold on y2=2*exp(-0.5*x).*cos(pi*x); plot(x,y2); hold off 仿真结果: g
第二章 MATLAB 计算结果可视化和确知信号分析 14 程序如下: x=0:pi/10:2*pi; y=2*sin(x); subplot(2,2,1);bar(x,y,'g'); title('bar(x,y,''g'')');axis([0,7,-2,2]); subplot(2,2,2);stairs(x,y,'b'); title('stairs(x,y,''b'')');axis([0,7,-2,2]); subplot(2,2,3);stem(x,y,'k'); title('stem(x,y,''k'')');axis([0,7,-2,2]); subplot(2,2,4);fill(x,y,'y'); title('fill(x,y,''y'')');axis([0,7,-2,2]); 仿真结果: 0 2 4 6 -2 -1 0 1 2 bar(x,y,'g') 0 2 4 6 -2 -1 0 1 2 stairs(x,y,'b') 0 2 4 6 -2 -1 0 1 2 stem(x,y,'k') 0 2 4 6 -2 -1 0 1 2 fill(x,y,'y') (5)图形保持 hold on/off 命令控制是保持原有图形还是刷新原有图形,不带参数的 hold 命令在两种 状态之间进行切换。 例 2-2 采用图形保持,在同一坐标内绘制曲线 y1=0.2e-0.5xcos(4πx) 和 y2=2e-0.5xcos(πx)。 程序如下: x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); plot(x,y1) hold on y2=2*exp(-0.5*x).*cos(pi*x); plot(x,y2); hold off 仿真结果:
第二章MATLAB计算结果可视化和确知信号分析 (6)绘图修饰命令 title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,.) 例2-3在0≤x≤2元区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注。 程序如下: x=0:pi/100:2*pi;y1=2*exp(-0.5*x)y2=cos(4*pi*x); plot(x,y1,x,y2) title('x from0 to 2pi)'); %加图形标题 xlabel('Variable X'); %加X轴说明 ylabel('Variable Y); %加Y轴说明 text(0.8,1.5,'曲线y1=2e^{0.5x}'); %在指定位置添加图形说明 text(2.5,1.1,'曲线y2=cos(4pix); legend(yl',‘y2') %加图例 仿真结果: x from0to2元 y2 1.5 曲线y1=2e0.5x 曲线y2=C0s(4 0.5 -0.5 3 Variable X
第二章 MATLAB 计算结果可视化和确知信号分析 15 0 1 2 3 4 5 6 7 -1.5 -1 -0.5 0 0.5 1 1.5 2 (6)绘图修饰命令 title(图形名称) xlabel(x 轴说明) ylabel(y 轴说明) text(x,y,图形说明) legend(图例 1,图例 2,.) 例 2-3 在 0≤x≤2 区间内,绘制曲线 y1=2e-0.5x 和 y2=cos(4πx),并给图形添加图形标注。 程序如下: x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x); plot(x,y1,x,y2) title('x from 0 to 2{\pi}'); %加图形标题 xlabel('Variable X'); %加 X 轴说明 ylabel('Variable Y'); %加 Y 轴说明 text(0.8,1.5,'曲线 y1=2e^{-0.5x}'); %在指定位置添加图形说明 text(2.5,1.1,'曲线 y2=cos(4{\pi}x)'); legend(‘y1’,‘ y2’) %加图例 仿真结果: 0 1 2 3 4 5 6 7 -1 -0.5 0 0.5 1 1.5 2 x from 0 to 2 Variable X Variable Y 曲 线 y1=2e-0.5x 曲 线 y2=cos(4x ) y 1 y 2
第二章MATLAB计算结果可视化和确知信号分析 (7)坐标控制 axis函数的调用格式为: axis(xmin xmax ymin ymax zmin zmax) axis函数功能丰富,常用的格式还有: axis equal:纵、横坐标轴采用等长刻度。 axis square:产生正方形坐标系(缺省为矩形)。 axis auto:使用缺省设置。 axis off::取消坐标轴。 axis on:显示坐标轴。 给坐标加网格线用grid命令来控制。grid on/off命令控制是画还是不画网格线,不带 参数的grid命令在两种状态之间进行切换。 给坐标加边框用box命令来控制。box on/off命令控制是加还是不加边框线,不带参数 的box命令在两种状态之间进行切换。 例2-4在同一坐标中,可以绘制3个同心圆,并加坐标控制。 程序如下: t=0:0.01:2*pi x=exp(i*t); y=;2*x;3*x' plot(y) grid on; %加网格线 box on; %加坐标边框 axis equal %坐标轴采用等刻度 仿真结果: 2.5 2 1.5 0. .1.5 2 -2.5 o
第二章 MATLAB 计算结果可视化和确知信号分析 16 (7)坐标控制 axis 函数的调用格式为: axis([xmin xmax ymin ymax zmin zmax]) axis 函数功能丰富,常用的格式还有: axis equal:纵、横坐标轴采用等长刻度。 axis square:产生正方形坐标系(缺省为矩形)。 axis auto:使用缺省设置。 axis off:取消坐标轴。 axis on:显示坐标轴。 给坐标加网格线用 grid 命令来控制。grid on/off 命令控制是画还是不画网格线,不带 参数的 grid 命令在两种状态之间进行切换。 给坐标加边框用 box 命令来控制。box on/off 命令控制是加还是不加边框线,不带参数 的 box 命令在两种状态之间进行切换。 例 2-4 在同一坐标中,可以绘制 3 个同心圆,并加坐标控制。 程序如下: t=0:0.01:2*pi; x=exp(i*t); y=[x;2*x;3*x]'; plot(y) grid on; %加网格线 box on; %加坐标边框 axis equal %坐标轴采用等刻度 仿真结果: -3 -2 -1 0 1 2 3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5
第二章MATLAB计算结果可视化和确知信号分析 2.2确知信号分析 2.2.1周期信号的傅里叶级数 (1)基本原理 若一周期信号f()=∫(t+kT),其中k为整数,T成为信号的周期。若周期信号在 一个周期内可积,则可通过傅立叶级数对该信号进行展开。其傅立叶展开式如(2一1)式 所示: ()-Fe (2-1) 共中,=%少,T为信号周期:=17为信号的张被:F为 傅立叶展开系数,其物理意义为频率分量f的幅度和相位: 式2一1表明:信号可以展开成一系列频率为人=1/T的整数倍的正弦、余弦信号的加 权叠加,其中相应频率分量的加权系数即为F,因此可以用周期信号的傅立叶展开来重构 该周期信号,其逼进程度与展开式的项数有关。 (2)举例 0≤t≤T/2 设周期信号一个周期的波形为∫()= -1, T/2<t≤T 求该信号傅里叶级数展开式。 并用MATLAB画出傅里叶级数展开后的波形,并通过展开式项数的变化考察其对∫(t)的 逼近程度,考察其物理意义。 解: F()ed -opoa-Bemd =sinc(n/2)e-man 注:sinc(x)=sinπx/πx=sa(πx) 源代码: clear all; N=20;%取展开式的项数为2N+1项 %可以改为N=input('input N:') T=1;%周期为1 fs=1/T; 4
第二章 MATLAB 计算结果可视化和确知信号分析 17 2.2 确知信号分析 2.2.1 周期信号的傅里叶级数 (1)基本原理 若一周期信号 f t f t kT ( ) = + ( ) ,其中 k 为整数, T 成为信号的周期。若周期信号在 一个周期内可积,则可通过傅立叶级数对该信号进行展开。其傅立叶展开式如(2-1)式 所示: ( ) 2 s j nf t n n f t F e =− = (2-1) 其中, ( ) / 2 2 / 2 1 s T j nf t n T F f t e dt T − − = ,T 为信号周期; 1/ s f T = 为信号的基波; F n 为 傅立叶展开系数,其物理意义为频率分量 s nf 的幅度和相位。 式 2-1 表明:信号可以展开成一系列频率为 1/ s f T = 的整数倍的正弦、余弦信号的加 权叠加,其中相应频率分量的加权系数即为 F n ,因此可以用周期信号的傅立叶展开来重构 该周期信号,其逼进程度与展开式的项数有关。 (2)举例 设周期信 号一个周期的波形为 ( ) 1, 0 / 2 1 / 2 t T f t T t T = − , ,求该信号傅里叶级数展开式, 并用 MATLAB 画出傅里叶级数展开后的波形,并通过展开式项数的变化考察其对 f t( ) 的 逼近程度,考察其物理意义。 解: ( ) 2 0 1 s T j nf t F f t e dt n T − = ( ) 2 2 2 0 2 2 1 1 1 1 2 2 sin / 2 s s T T j nf t j nf t T j n j n s s jn e dt e dt T e e T j nf j nf c n e − − − − − = − − − = − − − = 注: sin sin c x x x sa x ( ) = = ( ) 源代码: clear all; N=20;%取展开式的项数为 2N+1 项 %可以改为N=input('input N:') T=1;%周期为 1 fs=1/T;
第二章MATLAB计算结果可视化和确知信号分析 N sample=128;%为了画波形,设置每个周期的采样点数 dt=l/N_sample;%时间分辨率 t=0:dt:10*T-dt;%取10个周期 n=-N:N: Fn=sinc(n/2).*exp(-j*n*pi/2;%求傅立叶系数 Fn(N+1)=0:%当n0时,代入n得Fn=0,由于数组的序号是从1开始的,即n=N时对% 应Fn(),n=0时对%应Fn(+1),即n=N时对%应Fn(2N+1) ft=Zros(1,length(t);%建立一个全零数组,其长度和原始信号长度相同,用来存放由傅里 叶%展开恢复的信号 form=-N:N;%一共2N+1项累加。 ft=ft+Fn(mtN+l)*expG*2*pi*m*fs*);%Fn是一个数组,而MATLAB中数组中元素的序% 号是从1开始的,故Fn序号是从1开始的,到2N+1结束,该语句中体现为为Fn(+N+1) %而当n=0时,F=0,在数组中的位置为第N+1个元素,故令FN+1)=0 end plot(t,ft) 仿真结果: N=100时, 1.5 0.5 N=20时, 1.5 0.5 05 40 伊
第二章 MATLAB 计算结果可视化和确知信号分析 18 N_sample=128;%为了画波形,设置每个周期的采样点数 dt=1/ N_sample;%时间分辨率 t=0:dt:10*T-dt;%取 10 个周期 n=-N:N; Fn=sinc(n/2).*exp(-j*n*pi/2);%求傅立叶系数 Fn(N+1)=0;%当 n=0 时,代入 Fn 得 Fn=0,由于数组的序号是从 1 开始的,即 n=-N 时对% 应 Fn(1), n=0 时对%应 Fn(n+1),即 n=N 时对%应 Fn(2N+1) ft=zeros(1,length(t));%建立一个全零数组,其长度和原始信号长度相同,用来存放由傅里 叶%展开恢复的信号 for m=-N:N;%一共 2N+1 项累加。 ft=ft+Fn(m+N+1)*exp(j*2*pi*m*fs*t) ;%Fn是一个数组,而 MATLAB 中数组中元素的序% 号是从 1 开始的,故 Fn 序号是从 1 开始的,到 2N+1 结束,该语句中体现为为 Fn(m+N+1) %而当 n=0 时,Fn=0,在数组中的位置为第 N+1 个元素,故令 Fn(N+1)=0 end plot(t,ft) 仿真结果: N=100 时, 0 1 2 3 4 5 6 7 8 9 10 -1.5 -1 -0.5 0 0.5 1 1.5 N=20 时, 0 1 2 3 4 5 6 7 8 9 10 -1.5 -1 -0.5 0 0.5 1 1.5