华南理工大学信号与系统实验基于matlab的信号处理实例
第 2讲 基于 Matlab 的信号处理实例 实验内容(1) (1) 读取给定的3D加速度信号文件,绘出信号波形; 程序源代码: function sy2 fid = ( run 100m_TROUSERS POCKET_1_陈 佳_1.txt , r ); a=fscanf(fid, %d,%d,%d\n ); fclose(fid); len=length(a)/3; k=1; for i=1:len x(i)=a(k); y(i)=a(k+1);z(i)=a(k+2);k=k+3; end subplot(3,1,1); plot(x(1:700), g , LineWidth ,3); grid on; %标示格子 xlabel( n ),ylabel( x );%标示坐标 legend( x(i) ); %标 示名称 subplot(3,1,2); plot(y(300:700), m , LineWidth ,3) grid on; %标示格子 xlabel( n ),ylabel( y );%标示坐标 legend( y(i) ); %标 示名称 subplot(3,1,3); plot(z(300:700), b , LineWidth ,3); grid on; %标示格子 xlabel( n ),ylabel( z );%标示坐标 legend( z(i) ); %标 示名称执行结果如下所示: 0 100 200 300 400 500 600 700 0 50 100 150 200 n xx(i) 0 50 100 150 200 250 300 350 400 450 50 100 150 200 250 n yy(i) 0 50 100 150 200 250 300 350 400 450 0 100 200 300 n zz(i) (2) 将读出的 3D 加速度信号分解为偶序列及奇序列,分别绘出波 形;绘出偶序列及奇序列的和信号、差信号及积信号的波形; a.分解为偶序列及奇序列,分别绘出波形: 程序源代码: function sy2oe fid = ( run 100m_TROUSERS POCKET_1_陈 佳_1.txt , r ); a=fscanf(fid, %d,%d,%d\n ); fclose(fid); len=length(a)/3; k=1; for i=1:len x(i)=a(k); y(i)=a(k+1); z(i)=a(k+2);k=k+3; end x0=[zeros(1,len-1),x];%x前面补0 x1=fliplr(x0);%x1即是反转的x0 ex=(x1+x0)/2;%x 的偶部 ox=-(x1-x0)/2;%x 的奇部 y0=[zeros(1,len-1),y]; y1=fliplr(y0); ey=(y1+y0)/2; oy=-(y1-y0)/2; z0=[zeros(1,len-1),z]; z1=fliplr(z0); ez=(z1+z0)/2; oz=-(z1-z0)/2; subplot(3,2,1); plot([-len+1:len-1],ex , g , LineWidth ,3); grid on; %标示格子 xlabel( n ),ylabel( x );%标示坐标 legend( ex(i) ); % 标示名称 subplot(3,2,3); plot([-len+1:len-1],ey, m , LineWidth ,3) grid on; %标示格子 xlabel( n ),ylabel( y );%标示坐标 legend( ey(i) ); % 标示名称 subplot(3,2,5); plot([-len+1:len-1],ez, b , LineWidth ,3); grid on; %标示格子 xlabel( n ),ylabel( z );%标示坐标 legend( ez(i) ); % 标示名称 subplot(3,2,2); plot([-len+1:len-1],ox, g , LineWidth ,3); grid on; %标示格子 xlabel( n ),ylabel( x );%标示坐标 legend( ox(i) ); % 标示名称 subplot(3,2,4); plot([-len+1:len-1],oy, m , LineWidth ,3) grid on; %标示格子 xlabel( n ),ylabel( y );%标示坐标 legend( oy(i) ); % 标示名称 subplot(3,2,6); plot([-len+1:len-1],oz, b , LineWidth ,3); grid on; %标示格子 xlabel( n ),ylabel( z );%标示坐标legend( oz(i) ); % 标示名称 sumoex=ex+ox; sumoey=ey+oy; sumoez=ez+oz; 执行结果如下所示: -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 0 50 100 150 n xex(i) -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 0 50 100 150 200 n yey(i) -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 0 50 100 150 n zez(i) -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 -100 -50 0 50 100 n xox(i) -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 -200 -100 0 100 200 n yoy(i) -4000 -3000 -2000 -1000 0 1000 2000 3000 4000 -200 -100 0 100 200 n zoz(i) b.绘出偶序列及奇序列的和信号的波形: 程序源代码: function sumoe fid = ( run 100m_TROUSERS POCKET_1_陈 佳_1.txt , r ); a=fscanf(fid, %d,%d,%d\n ); fclose(fid); len=length(a)/3; k=1; for i=1:len x(i)=a(k); y(i)=a(k+1);z(i)=a(k+2);k=k+