如何使用matlab做互相关实验

441 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

摘要:振动测试有的时候需要做互相关,本文演示一个简单的互相关实验。

image.png

一、什么是互相关

如下图所示,互相关函数是描述随机信号x(t),y(t)在任意两个不同时刻t1,t2的取值之间的相关程度。

r = xcorr(x,y) 返回两个离散时间序列的互相关。互相关测量向量 x 和移位(滞后)副本向量 y 的之间的相似性,形式为滞后的函数。如果 x 和 y 的长度不同,函数会在较短向量的末尾添加零,使其长度与另一个向量相同。

xcorr是计算互相关函数,带有一个option的参数: a=xcorr(x,y,'option') option='biased' - 互相关的有偏估计: option='unbiased' - 互相关的无偏估计: option='normalized' 或 'coeff' - 对序列进行归一化,使零滞后时的自相关等于 1: option='none' - 原始、未缩放的互相关。当 x 和 y 长度不同时,'none' 是唯一有效的选项。

二、一个简单的求互相关的例子

如下图所示的q1和q2两个信号。要想求互相关,则

image.png

在matlab命令行中输入下面语句。 dt=1,t=0:dt:511,[a,b]=xcorr(q1,q2,'none'),plot(b*dt,a) 可以观察计算效果。互相关函数是描述随机信号x(t),y(t)在任意两个不同时刻t1,t2的取值之间的相关程度。下图中最高值对应的横坐标,对应的其实就是两个信号之间的时间差。

image.png