matlab中的xcorr和autocorr

自相关函数是信号间隔的函数,间隔有正负间隔,所以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。

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则是减掉了均值

自己做的实验:

[plain] view plaincopy

[y,fs,nbits]=wavread(‘1b.wav’);

frameSize=256;

overLap=128;

frameMat=buffer(y,frameSize,overLap);

[ndim,nFrame]=size(frameMat);

frame1=frameMat(:,50);

subplot(3,1,1);

plot([1:frameSize]/fs,frame1);

%%%%用xcorr求自相关

% E = mean(x);

%  X2 =x-E;

%  c =xcorr(x2);

%  d =c./c(N);

%  f =d(N:2*N-1);

frame2=frame1-mean(frame1);%减掉均值

[c,lags]=xcorr(frame2);

d=c./c(frameSize);%归一化

subplot(3,1,2);

plot(lags(frameSize:end)/fs,d(frameSize:end));

title(‘xcorr求自相关’);%没有减掉均值做相关

%%%%用auotcorr求自相关

[c1,lags1,bound]=autocorr(frame1,frameSize-1);

subplot(3,1,3);

plot(lags1(1:end)/fs,c1(1:end));

title(‘autocorr求自相关’);%减掉了均值在做相关,最后做了归一化

%比较两者的图形,结果一样。。

喜欢 (0)or分享 (0)

matlab autocorr说明,matlab中的xcorr和autocorr_matlab培训相关推荐

  1. matlab pi表示,matlab中pi是什么意思

    解:MATLAB 源程序为 >> t=0:0.001:40; >>ft=5*sawtooth(pi/5*t,0.5); >>plot(t,ft),grid on & ...

  2. matlab 牛顿向后差分,Matlab在时间序列分析中的应用--笔记

    <Matlab在时间序列分析中的应用--笔记>由会员分享,可在线阅读,更多相关<Matlab在时间序列分析中的应用--笔记(12页珍藏版)>请在人人文库网上搜索. 1.MATL ...

  3. matlab xk-xk-1,数学符号中conj是什么意思

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:数学符号中conj是什么意思回答:conj是求复数的共轭,Matlab有这个函 数 若x=a+bi(a,b∈R),则 x'=a- b ...

  4. matlab在输电线路故障测距中应用,Matlab在输电线路故障测距中的应用.doc

    Matlab在输电线路故障测距中的应用 毕业设计(论文) 题目 Matlab在输电线路故障测距中的应用 二级学院 电子信息与自动化学院 专 业 电气工程及其自动化 班 级 110070401 学生姓名 ...

  5. dst matlab,DSTcode DST跟踪算法MATLAB代码,复杂环境中仿多目标 实现的单 Other systems 其他 272万源代码下载- www.pudn.com...

    文件名称: DSTcode下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 82 KB 上传时间: 2017-03-17 下载次数: 0 提 供 者: Mar ...

  6. “输入字符不是 MATLAB 语句或表达式中的有效字符”的解决办法

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 问题描述: 输入字符不是 MATLAB 语句或表达式中的有效字符 原因分析: 标点符号:采用了中文的标点符号 解决方案: ...

  7. matlab在线性系统理论中的应用,线性系统理论相关的matlab应用.ppt

    控制系统的分析方法 早期的控制系统分析过程复杂而耗时,如想得到一个系统的冲激响应曲线,首先需要编写一个求解微分方程的子程序,然后将已经获得的系统模型输入计算机,通过计算机的运算获得冲激响应的响应数据, ...

  8. P5 Matlab/Simulink 在时域分析中的应用-《Matlab/Simulink与控制系统仿真》程序指令总结

    上一篇 回到目录 下一篇 <Matlab/Simulink与控制系统仿真>程序指令总结 Matlab_Simulink_BookExample 5. Matlab/Simulink 在时域 ...

  9. Matlab在概率统计中的应用问题及解决方案集锦

    前言 关于MATLAB系列的精品专栏大家可参见 MATLAB-30天带你从入门到精通 MATLAB深入理解高级教程(附源码) 喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟! Matlab在概 ...

最新文章

  1. 使用geopandas 制作中国疫情地图
  2. 「后端小伙伴来学前端了」记录自己的踩坑第一天 | CSS:vertical-align 属性
  3. acwing2058. 笨拙的手指(进制转换)
  4. 2019 6月编程语言_六月开始提供435项免费在线编程和计算机科学课程
  5. ras的c语言源代码文档,µMore(µITRON操作系统)--功能概况
  6. sf | 空间矢量对象的属性连接方法
  7. android web view
  8. Sep 12.1.4112.4156部署客户端
  9. PdfJS使用的一些说明
  10. yum更新php版本,yum安装的php升级到7.0版本
  11. PS为美女换服装颜色及换头发颜色
  12. LTE IDLE DRX和CDRX
  13. PHP通过PHPMailer类库实现QQ邮箱发送方法
  14. 这是最坏的时代,也是最好的时代
  15. 第9章 Linux的磁盘管理
  16. JavaScript 实现雪花效果
  17. python制作slack bot聊天机器人02
  18. 工具“正确”打开方式——如何用notion来谈恋爱
  19. HTC 8X电信版连接WIN7电脑的真正解决办法
  20. LIS 最长递增子序列

热门文章

  1. 全文转载:寻找最适合动漫的视频编码
  2. 南方农机杂志南方农机杂志社南方农机编辑部2022年第24期目录
  3. 不错的todo建议:应该往todo-list添加什么内容
  4. Spring Boot 企业级开发课后题答案黑马程序员
  5. 爱情八十八课,对抗消磨
  6. PowerCLi 通过vCenter批量创建及管理虚拟交换机到所有esxi主机
  7. web兼容性(分辨率)测试插件
  8. AutoJs学习-文字转语音QQ发送
  9. 英集芯ip6806无线充电方案5W过Qi认证外围精简14颗器件
  10. 微软认可的交叉证书已经过期,驱动软件面临无法签名的问题,安信教你如何解决签名问题!