当前位置: 首页 > news >正文

xcorr函数原理_matlab中的xcorr 自相关函数

转载自 http://blog.163.com/to_be_myself/blog/static/176060227201101762159227/

Matlab中用于计算自相关函数的指令是xcorr.比如矩阵A=[1 2 3];

xcorr(A)=3.0000 8.0000 14.0000 8.0000 3.0000

自相关函数是信号间隔的函数,间隔有正负间隔,所以n个长度的信号,有2n-1个自相关函数值,分别描述的是不同信号间隔的相似程度。

比如,上面的矩阵,最后得到5个结果,其中第三个是自己和自己相乘,最后相加的结果,值最大1*1+2*2+3*3=14。而第二个和第四个分别是间隔正负1的结果也就是1*2+2*3=8,2*1+3*2=8。第1个和第五个分别是间隔正负2,也就是1*3=3,3*1=3。

52072870692665045.jpg

xcorr求出的结果仅仅是x(n)*x(n+m)并对其求和,并没有除以前面的N或者是N-|K|。不用这个函数也可以求

for k=0:1:p

t5=0;

for n=0:1:N-k-1

t5=t5+conj(x(n+1))*x(n+1+k);

end

Rxx(k+1)=t5/N;

end

也可以实现,其中N为序列长度此处并未求出全部的自相关序列,只求了间隔从0到p的。

我们令Rx=xcorr(x);

则Rxx(k+1)=Rx(N+k)/N得到。

下面是摘自一篇博文:

1. 首先说说自相关和互相关的概念。

这个是信号分析里的概念,他们分别表示的是两个时间序列之间和同一个时间序列在任意两个不同时刻的取值之间的相关程度,即互相关函数是描述随机信号 x(t),y(t)在任意两个不同时刻t1,t2的取值之间的相关程度,自相关函数是描述随机信号x(t)在任意两个不同时刻t1,t2的取值之间的相关程度。

自相关函数是描述随机信号X(t)在任意两个不同时刻t1,t2的取值之间的相关程度;互相关函数给出了在频域内两个信号是否相关的一个判断指标,把两测点之间信号的互谱与各自的自谱联系了起来。它能用来确定输出信号有多大程度来自输入信号,对修正测量中接入噪声源而产生的误差非常有效.

事实上,在图象处理中,自相关和互相关函数的定义如下:设原函数是f(t),则自相关函数定义为R(u)=f(t)*f(-t),其中*表示卷积;设两个函数分别是f(t)和g(t),则互相关函数定义为R(u)=f(t)*g(-t),它反映的是两个函数在不同的相对位置上互相匹配的程度。

那么,如何在matlab中实现这两个相关并用图像显示出来呢?

dt=.1;

t=[0:dt:100];

x=cos(t);

[a,b]=xcorr(x,'unbiased');

plot(b*dt,a)

上面代码是求自相关函数并作图,对于互相关函数,稍微修改一下就可以了,即把

[a,b]=xcorr(x,'unbiased');改为[a,b]=xcorr(x,y,'unbiased');便可。

2. 实现过程:

在Matalb中,求解xcorr的过程事实上是利用Fourier变换中的卷积定理进行的,即R(u)=ifft(fft(f)×fft(g)),其中×表示乘法,注:此公式仅表示形式计算,并非实际计算所用的公式。当然也可以直接采用卷积进行计算,但是结果会与xcorr的不同。事实上,两者既然有定理保证,那么结果一定是相同的,只是没有用对公式而已。下面是检验两者结果相同的代码:

dt=.1;

t=[0:dt:100];

x=3*sin(t);

y=cos(3*t);

subplot(3,1,1);

plot(t,x);

subplot(3,1,2);

plot(t,y);

[a,b]=xcorr(x,y);

subplot(3,1,3);

plot(b*dt,a);

yy=cos(3*fliplr(t)); % or use: yy=fliplr(y);

z=conv(x,yy);

pause;

subplot(3,1,3);

plot(b*dt,z,'r');

即在xcorr中不使用scaling。

3. 其他相关问题:

1) 相关程度与相关函数的取值有什么联系?

相关系数只是一个比率,不是等单位量度,无什么单位名称,也不是相关的百分数,一般取小数点后两位来表示。相关系数的正负号只表示相关的方向,绝对值表示相关的程度。因为不是等单位的度量,因而不能说相关系数0.7是0.35两倍,只能说相关系数为0.7的二列变量相关程度比相关系数为0.35的二列变量相关程度更为密切和更高。也不能说相关系数从0.70到0.80与相关系数从0.30到0.40增加的程度一样大。

对于相关系数的大小所表示的意义目前在统计学界尚不一致,但通常按下是这样认为的:

相关系数          相关程度

0.00-±0.30       微相关

±0.30-±0.50   实相关

±0.50-±0.80  显著相关

±0.80-±1.00  高度相关

matlab计算自相关函数autocorr和xcorr有什么不一样的?xcorr是没有将均值减掉做的相关,autocorr则是减掉了均值。

相关文章:

  • IT == 网管?
  • android finish 判断当前_最常用的Activity的onBackPressed()与finish()的区别.
  • 一切艺术与伟业的奥妙——专心!
  • axis1 c# 接口 调用_Tomcat6.0+Jdk1.5+Axis1.3搭建java webservice环境,并使用c#调用该服务。...
  • 开发基于ASP.NET的自定义日志系统
  • mysql 几级缓存_mysql缓存:一级缓存和二级缓存
  • HTTP 1.1与HTTP 1.0的比较
  • mysql 中一个表里有父子关系_SQLAlchemy - 同一个表中的父子关系
  • c mysql锁_mysql三种锁
  • 文献管理软件使用[keep updating]
  • The 25 Worst Tech Products of All Time
  • 电脑mac地址会变吗_怎么查询电脑mac地址
  • mysql 以非root启动_非root权限安装mysql启动问题
  • 比较 Microsoft Update, Windows Server Update Services, 和 SMS
  • python顺序执行 toggle_python – 将CellRendererToggle的单行设置为不一致
  • Google 是如何开发 Web 框架的
  • CentOS6 编译安装 redis-3.2.3
  • flask接收请求并推入栈
  • HashMap ConcurrentHashMap
  • IDEA 插件开发入门教程
  • JavaScript实现分页效果
  • Java小白进阶笔记(3)-初级面向对象
  • Kibana配置logstash,报表一体化
  • Sublime text 3 3103 注册码
  • v-if和v-for连用出现的问题
  • Yeoman_Bower_Grunt
  • 从伪并行的 Python 多线程说起
  • 机器学习 vs. 深度学习
  • 利用jquery编写加法运算验证码
  • 线上 python http server profile 实践
  • 转载:[译] 内容加速黑科技趣谈
  • Java总结 - String - 这篇请使劲喷我
  • # 安徽锐锋科技IDMS系统简介
  • #HarmonyOS:Web组件的使用
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • ${factoryList }后面有空格不影响
  • (HAL库版)freeRTOS移植STMF103
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (poj1.2.1)1970(筛选法模拟)
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (办公)springboot配置aop处理请求.
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Micro Framework初体验(二)
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET多线程执行函数
  • /bin、/sbin、/usr/bin、/usr/sbin
  • @angular/cli项目构建--http(2)
  • [ IO.File ] FileSystemWatcher
  • [20140403]查询是否产生日志
  • [ARC066F]Contest with Drinks Hard
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计