资源描述:
《用-MATLAB-演示互相关算法的应用例子.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、互相关算法的应用例子---测量汽车速度(作者:王大伦)(本文选自王大伦著《数字信号处理—理论与实践》)2.7.4应用举例互相关算法可以用来测量汽车速度。其方案示于图2.7.5.。汽车前后轮经过的路况可以认为是相同的。为了测量车速,需要在前、后轴上分别安装压力传感器。传感器的输出取决于路况。设是前后轴的距离,是车速,则是汽车经过距离所需的时间。换句话说,后轮传感器当前的输出信号就是秒以前的前轮传感器的输出信号。图2.7.5车速测量方案程序M.M进行仿真。图2.7.6A是噪声信号,代表前轮传感器的输出序列。将这个序列延迟个采样间隔,并加上噪声,得
2、到示于子图B的序列。它代表后轮传感器的输出序列。求二者的互相关序列并示于子图C。将在的邻域展开,得到子图D。由此看出,函数在有最大值。今前后轮距轮距是已知数,由此可知汽车经过距离所需要的时间为(延迟样点数)(采样间隔)。由此算出车速为,其中,采样间隔是已知数,故车速得以算出。图2.7.6程序M.M的运行结果%通过求互相关序列,测定汽车速度。%x=[randn(1,151)];nx=[-75:75];%汽车前轮传感器输出序列xsubplot(2,2,1)plot(nx,x);grid;%显示序列xxlabel('n');ylabel('x(n)
3、');title('汽车前轮传感器输出序列');[y,ny]=seqshift(x,nx,20);%汽车后轮传感器输出序列y,它是x的延迟序列w=randn(1,length(y));nw=ny;%产生随机序列w(n)[y,ny]=seqadd(y,ny,w,nw);%得到迟延加扰信号ysubplot(2,2,2)plot(ny,y);grid;%显示序列yxlabel('n');ylabel('y(n)');title('汽车后轮传感器输出序列');[x1,nx1]=seqfold(x,nx);%得到x1(n)=x(-n)[rxy,nrxy
4、]=convwthn(y,ny,x1,nx1);%通过卷积求y(n)与x1(n)的互相关序列subplot(2,2,3)plot(nrxy,rxy);grid;%显示互相关序列axis([-150,150,-50,200]);xlabel('n');ylabel('rxy(n)');title('互相关序列');subplot(2,2,4)H=stem(nrxy,rxy);set(H,'markersize',2);grid;%在互相关序列的最大点附近显示该序列axis([10,30,-50,200]);set(gcf,'color','w'
5、)%置图形背景色为白line([-4,8],[0,0])title('延迟加噪序列与原序列的互相关')xlabel('ny'),ylabel('rxy')