华南理工大学信号与系统实验基于Matlab的信号处理实例
- 格式:doc
- 大小:160.50 KB
- 文档页数:12
实验一、MATLAB编程基础及典型实例一、实验目的(1)熟悉MATLAB软件平台的使用;(2)熟悉MATLAB编程方法及常用语句;(3)掌握MATLAB的可视化绘图技术;(4)结合《信号与系统》的特点,编程实现常用信号及其运算。
示例一:在两个信号进行加、减、相乘运算时,参于运算的两个向量要有相同的维数,并且它们的时间变量范围要相同,即要对齐。
编制一个函数型m文件,实现这个功能。
function [f1_new,f2_new,n]=duiqi(f1,n1,f2,n2)a=min(min(n1),min(n2));b=max(max(n1),max(n2));n=a:b;f1_new=zeros(1,length(n));f2_new=zeros(1,length(n));tem1=find((n>=min(n1))&(n<=max(n1))==1);f1_new(tem1)=f1;tem2=find((n>=min(n2))&(n<=max(n2))==1);f2_new(tem2)=f2;四、实验内容与步骤− 2 t (2)绘制信号x(t)= esin( t=0:0.1:30; 23t ) 的曲线,t的范围在0~30s,取样时间间隔为0.1s。
y=exp(-sqrt(2)*t).*sin(2*t/3); plot(t,y);(3)在n=[-10:10]范围产生离散序列:x( n)=⎧2 n ,− 3⎨≤ n ≤ 3,并绘图。
⎩0, Othern=-10:1:10;z1=((n+3)>=0);z2=((n-3)>=0);x=2*n.*(z1-z2);stem(n,x);(4)编程实现如下图所示的波形。
t=-2:0.001:3;f1=((t>=-1)&(t<=1));f2=((t>=-1)&(t<=2));f=f1+f2;plot(t,f);axis([-2,3,0,3]);(5)设序列f1(k)={ 0 , 1 , 2 , 3 , 4 , 5 },f2(k)={ 6 , 5 , 4 , 3 , 2 , 1 , 0 }。
数字信号处理matlab实验学院:电子与信息专业班级: 5学号:201130302068姓名:梁敏健实验名称:离散时间信号与系统分析、滤波器实验日期:2013.10实验1 离散时间信号与系统分析(2课时)题目一:以下程序中分别使用conv和filter函数计算h[n] = [3 2 1 -2 1 0 -4 0 3]和x[n] = [1 -2 3 -4 3 2 1]的卷积y和y1,并分析y和y1是否有差别代码:h = [3 2 1 -2 1 0 -4 0 3];x = [1 -2 3 -4 3 2 1];y = conv(h,x);n = 0:14;subplot(2,1,1);stem(n,y);xlabel('Time index n'); ylabel('Amplitude');title('Output Obtained by Convolution'); grid;x1 = [x zeros(1,8)];y1 = filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('Time index n'); ylabel('Amplitude');title('Output Generated by Filtering'); grid;可见,y与y1没有差别。
题目二:编制程序求解下列两个系统的单位冲激响应和阶跃响应,并绘出其图形。
要求分别用filter、conv、impz三种函数完成。
,,源代码:对,,单位冲激响应a1=[1,0.75,0.125];b1=[1,-1];n=0:20;x1=[1 zeros(1,20)];y1filter=filter(b1,a1,x1);subplot(2,2,1);stem(n,y1filter);title('y1filter');xlabel('x');ylabel('y');title('impulse response generated by filter')x1_1=[1 zeros(1,10)];[h]=impz(b1,a1,10);y1conv=conv(h,x1_1);n=0:19;subplot(2,2,2);stem(y1conv) ;title('impulse response generated by conv')h=impz(b1,a1,21);subplot(2,2,3);stem([0:20], h);title('impulse response generated by impz') 结果:单位阶跃:a1=[1,0.75,0.125];b1=[1,-1];n=0:20;x2=ones(1,21);y1filter=filter(b1,a1,x2);subplot(2,2,3);stem(n,y1filter);title('y1filter_step');xlabel('x');ylabel('y');title('impulse response generated by filter')x2=ones(1,21);[h]=impz(b1,a1,20);y1=conv(h,x2);y1conv=y1(1:21);n1=0:20;subplot(2,2,2);stem(n1,y1conv,'filled');title('y1conv');xlabel('n');ylabel('y1[n]');title('impulse response generated by conv')a=[1,0.75,0.125];b=1;h=impz(b,a,21);subplot(2,2,1);stem([0:20], h);title('impulse response generated by impz') 结果:对单位冲激响应:a2=1;b2=[0 0.25*ones(1,4)];n=0:9;x1=[1 zeros(1,9)];y2filter=filter(b2,a2,x1);subplot(2,2,1);stem(n,y2filter);title('y2filter');xlabel('x');ylabel('y')title('impulse response generated by filter')x2=[1 zeros(1,5)];[h]=impz(b2,a2,5);y2conv=conv(h,x2);subplot(2,2,2);stem(n,y2conv,'filled')title('impulse response generated by conv')h=impz(b2,a2,10);subplot(2,2,3);stem([0:9], h);title('impulse response generated by impz') 结果:单位阶跃a1=1;b1=[0 0.25*ones(1,4)];n=0:20;x1=ones(1,21);y2filter=filter(b1,a1,x1);subplot(2,2,1);stem(n,y2filter);title('y2filter_step');xlabel('x');ylabel('y');title('impulse response generated by filter')y2=conv(b1,x1);y2conv=y2(1:21);subplot(2,2,2);stem(n,y2conv,'filled');title('y2conv');xlabel('n');ylabel('y[n]');title('impulse response generated by conv')n=0:20;b=[0,0.25,0.5,0.75,ones(1,17)];a=1;h=impz(b,a,21);subplot(2,2,3);stem([0:20], h);title('impulse response generated by impz')题目三2N点实数序列N=64。
华南理⼯⼤学信号与系统实验报告Experiment ExportName:Student No:Institute:Dec 26, 2011Experiment Purposes1. Be familiar with the software Environment and Programming flow in MATLAB5.3.2. Learn how to draw the signal waveform and determine the signal properties.3. Calculate the convolution, frequency response and system output by using the functions: conv, freqz, freqs and filter. Experiment Contents实验项⽬⼀:MATLAB编程基础及典型实例①画出离散时间正弦信号并确定基波周期(注:pi 表⽰圆周率)1 x1[n]=sin(pi*4/4)*cos(pi*n/4)2 x2[n]=cos(pi*n/4)*cos(pi*n/4)3 x3[n]=sin(pi*n/4)*cos(pi*n/8)program for matlabn=0:31;x1=sin(pi*n/4).*cos(pi*n/4);x2=cos(pi*n/4).*cos(pi*n/4);x3=sin(pi*n/4).*cos(pi*n/8);subplot(3,1,1);stem(n,x1);title('x1');subplot(3,1,2);stem(n,x2);title('x2');subplot(3,1,3);stem(n,x3);title('x3');grid on;Conclusion: These signals is periodic, the first and second signal’s per iod are 4. The third signal’s period is 16.②离散时间系统性质:离散时间系统往往是⽤⼏个性质来表征,如线性、时不变性、稳定性、因果性及可逆性等。
基于MATLAB的信号与系统仿真实验毕业设计信号与系统是电子信息类专业的一门重要课程,它是其他课程的基础和前提。
为了更好地理解信号与系统的理论知识,掌握信号的分析和处理方法,实验仿真是非常重要的手段之一、MATLAB作为一款强大的数学软件,被广泛应用于信号与系统的实验仿真中。
本文将基于MATLAB,介绍一个基于信号与系统的仿真实验的毕业设计。
该设计主要包括以下几个方面的内容:实验目的、实验原理、实验步骤和实验结果及分析。
实验目的:本次实验的主要目的是通过MATLAB软件,实现信号与系统的仿真分析,掌握信号与系统的基本概念和分析方法,培养学生对信号与系统的实际应用能力。
实验原理:本实验主要涉及信号的生成与采样、信号的查表和存储、信号的线性时不变系统等方面的内容。
通过对不同种类的信号进行分析,可以更好地理解信号的特性,并通过系统的分析,了解线性时不变系统对信号的作用及特性。
实验步骤:1.信号的生成与采样:在MATLAB中,通过给定信号的频率、振幅及采样率等参数,利用正弦函数或方波函数生成模拟信号,并对信号进行采样。
2.信号的查表和存储:将生成的信号通过查表和存储的方式保存为数据文件,并通过MATLAB读取这些数据文件,进行后续的处理和分析。
3.信号的线性时不变系统:通过设计不同的线性时不变系统,如低通滤波器或高通滤波器等,对信号进行滤波处理。
可以分析系统的频率响应、幅频响应等参数,并观察滤波后信号的变化。
实验结果及分析:通过对生成的信号进行采样、查表和存储,并对信号进行线性时不变系统的处理,在MATLAB中可以得到相应的结果。
根据实验结果,可以对信号的特性进行分析,比较不同信号和系统对信号的影响,进一步了解信号与系统的相关知识。
综上所述,本次基于MATLAB的信号与系统仿真实验毕业设计主要是通过对信号的生成、采样、查表和存储以及对信号进行线性时不变系统的处理,来掌握信号与系统的分析方法和应用能力。
通过实验结果的分析,可以进一步理解信号与系统的概念和特性,提高对信号与系统的理解和应用能力。
实验一 基于Matlab 的时域信号处理示例一. 实验内容1. 用MA TLAB 实现基本信号2. 画出信号的波形3. 用MATLAB 实现卷积和4. 用MATLAB 求系统输出二. 实验仪器PC 计算机—Matlab三. 实验步骤(1-1)写一个产生 信号的函数定义 n 范围为 [ t1,t2 ] 之间, 以 t0 作为偏移量 当 n - t0 为 0 的时候 x=1代码实现:function UnitImpulse(t1,t2,t0)% t1,t2信号的起止时刻,t0 冲激信号沿坐标的平移量 n=t1:t2; %定义区间范围x=[(n-t0)==0]; %n-t0=0 时, x = 1 Stem (n,x ); %描绘图像 End效果图:输入: UnitImpulse(-5,5,2)与实验设定相同。
当 t0=2 时, x = 1 .)(0t t -δ(1-2) 写一个产生 信号的函数定义 n 范围为 [ t1,t2 ] 之间, 以 t0 作为偏移量 当 n - t0 大于 0 的时候 x=1 代码实现:function UnitStep(t1,t2,t0)% t1,t2信号的起止时刻,t0 阶跃信号沿坐标的平移量 n=t1:t2; %定义区间范围x=[(n-t0)>=0]; %n-t0> 0时, x = 1 Stem (n,x ); %描绘图像End 效果图:输入: UnitStep(-5,5,-1)与预先结果相同。
(1-3)写一个产生离散复指数信号的函数function ComplexExponential(n1,n2,r,w )% n1,n2 信号的起止时间;r 指数序列的底; w 角频率 n=n1:n2; %定义区间范围 x=exp((r+j*w)*n); %定义指数函数 Rex=real(x); % 去指数函数的实部 Imx=imag(x); % 去指数函数的虚部 disp(Rex); %显示指数函数的实部 disp(Imx); %显示指数函数的实部 End效果图:输入: ComplexExponential(-5,5,2,3))(0t t u(2-1) 画出如下信号的波形利用前面1-1 所的函数 分别构造各个函数,再进行加减运算。
信号分析与处理MATLAB仿真实验报告2009.12.25院系:电气工程学院专业: 自动化班级:姓名:学号:实验7 离散时间序列的卷积实验目的:学会用MATLAB实现对离散时间序列的卷积,掌握利用h(n) 与输入x(n)卷积来求系统零状态响应的方法。
实验要求:使用MATLAB中求卷积函数的conv(),并对结果分析总结。
实验内容:LTI系统的单位脉冲响应为h(n)=(0.9)n ε(n),输入序列为x(n)=ε(n)- ε(n-10),求系统的输出y(n)。
程序function [y,ny]=conv_m(x,nx,h,nh);y=conv(x(5:45),h);ny=nh;y=y(1:41);subplot(3,1,1);stem(nx,x,'filled');axis([-4,40,0,1]);title('x[n]');subplot(3,1,2);stem(nh,h,'filled');axis([-4,40,0,1]);title('h[n]');subplot(3,1,3);stem(ny,y,'filled');axis([-4,40,0,8]);title('y[n]');实验结果:结果分析:改变参数以后的程序:function [y,ny]=conv_m(x,nx,h,nh);y=conv(x(5:45),h);ny=nh;y=y(1:41);subplot(3,1,1);stem(nx,x,'filled');axis([-4,40,0,1]);title('x[n]'); subplot(3,1,2);stem(nh,h,'filled');axis([-4,40,0,1]);title('h[n]'); subplot(3,1,3);stem(ny,y,'filled');axis([-4,40,0,2]);title('y[n]');输出结果:实验8 连续时间信号的卷积实验目的:学会用MATLAB实现对连续时间信号的卷积,掌握利用卷积的方法求系统零状态响应,并与离散系统比较。
一、实验目的1、加深对离散信号的DFT的理解;2、在MATLAB中实现FFT算法。
二、实验原理N点序列的DFT和IDFT变换定义式如下:,,利用旋转因子具有周期性,可以得到快速算法(FFT)。
在MATLAB中,可以用函数和计算N点序列的DFT 正、反变换。
三、实验内容1、对连续的单一频率周期信号按采样频率采样,截取长度N分别选N =20和N =16,观察其DFT结果的幅度谱。
实验代码:k=8;n1=[0:1:19];xa1=sin(2*pi*n1/k);subplot(2,2,1)plot(n1,xa1)xlabel('t/T');ylabel('x(n)');xk1=fft(xa1);xk1=abs(xk1);subplot(2,2,2)stem(n1,xk1)xlabel('k');ylabel('X(k)'); n2=[0:1:15]; xa2=sin(2*pi*n2/k); subplot(2,2,3) plot(n2,xa2)xlabel('t/T');ylabel('x(n)'); xk2=fft(xa2);xk2=abs(xk2); subplot(2,2,4) stem(n2,xk2)xlabel('k');ylabel('X(k)');实验结果:5101520-1-0.500.51t/Tx (n )05101520kX (k )51015-1-0.500.51t/Tx (n )kX (k )2 2N 点实数序列⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧-=+=n N n n Nn N n x 其它,012,...,2,1,0),192cos(21)72cos()(ππN=64。
用一个64点的复数FFT 程序,一次算出N n x DFT k X 2)]([)(=,并绘出)(k X 。
武汉工程大学电气信息学院2、四、思考:1、为什么图二中t=0处曲线是间断的,如何使其成为连续的曲线?因为axis函数对纵坐标的的上边界限定过小,使图形在边界处不能完整的显示。
2.3.四、思考:1、代数运算符号*和.*的区别是?*是矩阵相乘,是矩阵A行元素与B的列元素相乘的和.*是数组相乘,表示数组A和数组B中的对应元素相乘实验内容实验三连续时间信号的卷积一、实验内容1、已知两连续时间信号如下图所示,绘制信号f1(t)、f2(t)及卷积结果f(t)的波形;设时间变化步长dt分别取为0.5、0.1、0.01,当dt取多少时,程序的计算结果就是连续时间卷积的较好近似?2.实验内容1.2.实验内容实验五 连续时间信号的频域分析一、实验内容1、如图5.4所示的奇谐周期方波信号,周期为T1=1,幅度为A=1,将该方波信号展开成三角形式Fourier 级数并分别采用频域矩形窗和Hanning 窗加权,绘制两种窗函数加权后的方波合成图像。
时间范围取为-2~2,步长值取为0.01。
2、将图5.5中的锯齿波展开为三角形式Fourier 级数,按(2)式求出Fourier 级数的系数,并在频域分别采用矩形窗、Hanning 窗和三角窗加权,观察其Gibbs 效应及其消除情况。
时间范围取为-2~2,步长值取为0.01。
3、选做:编程计算连续时间周期信号的三角形式傅里叶级数展开的系数二、实验方法与步骤1、将方波信号展开成三角形式Fourier 级数并分别采用频域矩形窗和Hanning 窗加权 方波展开的三角式傅立叶级数为:()()t k k t x L k 1,5,3,1sin 4ωπ⋅∑=∞= 采用频域矩形窗加权,则展开式变为:()()()[]t k k t x K k 1012sin 124ωπ+⋅+∑==a0=2/T*int(f,t,0,T); %求函数f对t从0到T的定积分a0=simplify(a0) %得出结果syms kfa=t*cos(k*w*t);fb=t*sin(k*w*t);ak=2/T*int(fa,t,0,T); %求函数fa对t从0到T的定积分bk=2/T*int(fb,t,0,T); %求函数fb对t从0到T的定积分ak=simplify(ak)bk=simplify(bk)三、实验数据与结果分析1.2.3.根据绘制的幅频特性曲线,系统具有低通滤波特性2.根据绘制的幅频特性曲线,系统具有带通滤波特性。
第2讲基于Matlab的信号处理实例实验内容(1)(1) 读取给定的3D加速度信号文件,绘出信号波形;程序源代码:function sy2fid = fopen('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:lenx(i)=a(k);y(i)=a(k+1);z(i)=a(k+2);k=k+3;endsubplot(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)'); %标示名称执行结果如下所示:100200300400500600700050100150200nxx(i)5010015020025030035040045050100150200250nyy(i)501001502002503003504004500100200300nzz(i)(2) 将读出的3D 加速度信号分解为偶序列及奇序列,分别绘出波形;绘出偶序列及奇序列的和信号、差信号及积信号的波形;a.分解为偶序列及奇序列,分别绘出波形: 程序源代码:function sy2oefid = fopen('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;endx0=[zeros(1,len-1),x];%x前面补0x1=fliplr(x0);%x1即是反转的x0ex=(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-100001000200030004000050100150nxex(i)-4000-3000-2000-100001000200030004000050100150200nyey(i)-4000-3000-2000-100001000200030004000050100150nzez(i)-4000-3000-2000-100001000200030004000-100-50050100nxox(i)-4000-3000-2000-100001000200030004000-200-1000100200nyoy(i)-4000-3000-2000-100001000200030004000-200-1000100200nzoz(i)b.绘出偶序列及奇序列的和信号的波形: 程序源代码:function sumoefid = fopen('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; endx0=[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; sumoex=ex+ox; sumoey=ey+oy; sumoez=ez+oz; subplot(3,1,1);plot([-len+1:len-1],sumoex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('x');%标示坐标 legend('sumoex'); %标示名称 subplot(3,1,2);plot([-len+1:len-1],sumoex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('x');%标示坐标 legend('sumoey'); %标示名称 subplot(3,1,3);plot([-len+1:len-1],sumoex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('x');%标示坐标 legend('sumoez'); %标示名称执行结果如下所示:-4000-3000-2000-1000010002000300040000100200nxsumoex-4000-3000-2000-1000010002000300040000100200nxsumoey-4000-3000-2000-1000010002000300040000100200nxsumoezc..绘出偶序列及奇序列的差信号的波形程序源代码:function choefid = fopen('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:lenx(i)=a(k);y(i)=a(k+1);z(i)=a(k+2);k=k+3;endx0=[zeros(1,len-1),x];%x前面补0x1=fliplr(x0);%x1即是反转的x0ex=(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;choex=ex-ox;choey=ey-oy;choez=ez-oz;subplot(3,1,1);plot([-len+1:len-1],choex ,'g','LineWidth',3);grid on; %标示格子xlabel('n'),ylabel('x');%标示坐标legend('choex'); %标示名称subplot(3,1,2);plot([-len+1:len-1],choex ,'g','LineWidth',3);grid on; %标示格子xlabel('n'),ylabel('x');%标示坐标legend('choey'); %标示名称subplot(3,1,3);plot([-len+1:len-1],choex ,'g','LineWidth',3);grid on; %标示格子xlabel('n'),ylabel('x');%标示坐标 legend('choez'); %标示名称执行结果如下所示:-4000-3000-2000-1000010002000300040000100200nx-4000-3000-2000-1000010002000300040000100200nx-4000-3000-2000-1000010002000300040000100200nxchoexchoeychoezd.绘出偶序列及奇序列的积信号的波形程序源代码:function muloefid = fopen('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; endx0=[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; muloex=ex.*ox; muloey=ey.*oy; muloez=ez.*oz; subplot(3,1,1);plot([-len+1:len-1],muloex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('x');%标示坐标 legend('muloex'); %标示名称 subplot(3,1,2);plot([-len+1:len-1],muloex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('y');%标示坐标 legend('muloey'); %标示名称 subplot(3,1,3);plot([-len+1:len-1],muloex ,'g','LineWidth',3); grid on ; %标示格子 xlabel('n'),ylabel('z');%标示坐标 legend('muloez'); %标示名称执行结果如下所示:-4000-3000-2000-100001000200030004000-101x 104nxmuloex-4000-3000-2000-100001000200030004000-101x 104nymuloey-4000-3000-2000-100001000200030004000-101x 104nzmuloez∑-=-=10][1][M k k n x Mn y (3) 画出M 点滑动平均滤波器的波形(M 分别取4和10); 注:M 点滑动平均滤波器:程序源代码:function m n=0:20;x=[n==0]; %单位冲击响应 a1=[0.25 0.25 0.25 0.25]; b=[1];y1=filter(a1,b,x);a2=[0.1]; %求m=10时,差分方程右边的系数 for i=1:9a2=[a2,0.1]; endy2=filter(a2,b,x); subplot(2,1,1);stem(n,y1,'g','filled')%画图,用绿色,线条加粗 title('滑动平均滤波器的波形') grid on ; %标示格子xlabel('n'),ylabel('y');%标示坐标 legend('M=4'); %标示m subplot(2,1,2);stem(n,y2,'m','filled')%画图,用品红色,线条加粗 grid on ; %标示格子 xlabel('n'),ylabel('y');%标示坐标 title('滑动平均滤波器的波形') legend('M=10'); %标示m执行结果如下所示:246810121416182000.10.20.30.4滑动平均滤波器的波形nyM=4246810121416182000.050.1ny滑动平均滤波器的波形M=10(4) 用上述滑动平均滤波器对输入的3D 加速度信号进行滤波,同时绘出输入及输出信号波形;观察分析输出波形的变化。