文档

xcorr

互相关

语法

R = xcorr(x,y)
R = xcorr(x)
R = xcorr(___maxlag)
R = xcorr(___scaleopt)
[r,滞后]= xcorr(___

描述

例子

r= xcorr (xy返回两个离散时间序列的相互关系,x而且y.相互关联衡量的是两者之间的相似性x和移位(滞后)副本y作为滞后的函数。如果x而且y有不同的长度,函数在较短的向量的末尾加上0,所以它有相同的长度,N,就像另一个。

例子

r= xcorr (x的自相关序列x.如果x是矩阵吗r的列是否包含所有列组合的自相关和互相关序列x

例子

R = xcorr(___maxlag限制从-开始的延迟范围maxlagmaxlag.该语法接受一个或两个输入序列。maxlag默认为N- 1

例子

R = xcorr(___scaleopt另外指定互相关或自相关的标准化选项。其他选项“没有”(默认值)要求x而且y有相同的长度。

例子

r滞后= xcorr(___还返回一个具有计算相关性的滞后时间的向量。

例子

全部折叠

在不同位置的两个传感器测量汽车过桥时引起的振动。

加载信号和采样率,.创建时间向量并绘制信号。传感器2的信号比传感器1的信号到达的时间早。

负载sensorDatat1 =(0:长度(s1)-1)/Fs;t2 =(0:长度(s2)-1)/Fs;Subplot (2,1,1) plot(t1,s1)标题(“s_1”) subplot(2,1,2) subplot(t2,s2)“s_2”)包含(“时间(s)”

当滞后等于延迟时,两个测量值的相互相关性最大。

绘制相互关系图。将延迟表示为以秒为单位的样本数。

[acor,lag] = xcorr(s2,s1);[~,I] = max(abs(acor));lagDiff =滞后(I)
lagDiff = -350
timeDiff = lagDiff/Fs
timeDiff = -0.0317
图图(滞后,acor) a3 = gca;a3。XTick = sort([-3000:1000:3000 lagDiff]);

对齐两个信号并重新绘制它们。延迟差加1,以说明MATLAB®使用的基于1的索引。

s1al = s1(-lagDiff+1:end);t1al =(0:长度(s1al)-1)/Fs;Subplot (2,1,1) Subplot (t1al,s1al)标题(“s_1、一致”) subplot(2,1,2) subplot(t2,s2)“s_2”)包含(“时间(s)”

语音录音包括由墙壁反射引起的回声。使用自相关将其过滤掉。

在录音中,一个人说了MATLAB®这个词。加载数据和采样率,

负载mtlb输入soundsc(mtlb,Fs)

通过向录音中添加延迟信号的副本来模拟回声样品经已知因素衰减.指定时间延迟为0.23 s,衰减因子为0.5。

Timelag = 0.23;delta = round(Fs* timeelag);Alpha = 0.5;Orig = [mtlb; 0 (delta,1)];Echo = [0 (delta,1);mtlb]*alpha;mtEcho = orig + echo;

画出原始信号、回声和结果信号。

t = (0:length(mtEcho)-1)/Fs;Subplot (2,1,1) plot(t,[origin echo])“原始”“回声”) subplot(2,1,2) plot(t,mtEcho)“总”)包含(“时间(s)”

要收听,输入soundsc(mtEcho,Fs)

计算信号自相关的无偏估计。选择并绘制滞后大于零对应的部分。

[Rmm,滞后]= xcorr(mtEcho,“公正”);Rmm = Rmm(滞后>0);滞后=滞后(滞后>0);图(滞后/Fs,Rmm) xlabel(“滞后(s)”

自相关在回波到达的滞后处有一个尖峰。通过IIR系统对信号进行滤波,消除回波。,遵循

[~,dl] = findpeaks(Rmm,滞后,“MinPeakHeight”, 0.22);mtNew = filter(1,[1 0 (1,dl-1) alpha],mtEcho);

绘制滤波后的信号并与原始信号进行比较。

Subplot (2,1,1) plot(t, trans)图例(“原始”) subplot(2,1,2) plot(t,mtNew)“过滤”)包含(“时间(s)”

要收听,输入soundsc(mtNew,Fs)

生成三个11样本指数序列,,.使用stem3并排绘制序列。

N = 11;n = (0: n -1)';A = 0.4;B = 0.7;C = 0.999;Xabc = [a];^nb.^n c.^n]; stem3(n,1:3,xabc',“填充”) ax = gca;斧子。YTick = 1:3;视图(37.5,30)

计算序列的自相关和相互交叉相关。输出滞后,这样您就不必跟踪它们。将结果归一化,使自相关在零滞后时具有单位值。

[cr,lgs] = xcorr(xabc,多项式系数的);Row = 1:3Col = 1:3 nm = 3*(行-1)+ Col;次要情节(3 3海里)茎(lgs cr(:,海里),“。”)标题(sprintf (“c_ {% d % d}’ylim([0 1])结束结束

限制计算之间的滞后而且

[cr,lgs] = xcorr(xabc,5,多项式系数的);Row = 1:3Col = 1:3 nm = 3*(行-1)+ Col;次要情节(3 3海里)茎(lgs cr(:,海里),“。”)标题(sprintf (“c_ {% d % d}’ylim([0 1])结束结束

计算自相关和相互交叉相关的无偏估计。默认情况下,延迟在两者之间运行而且

Cu = xcorr(xabc,“公正”);Row = 1:3Col = 1:3 nm = 3*(行-1)+ Col;次要情节(3 3海里)茎(- (n - 1): (n - 1)、铜(:,海里),“。”)标题(sprintf (“c_ {% d % d}’,行,坳))结束结束

计算28个样本指数序列的自相关函数,

A = 0.95;N = 28;n = 0: n -1;滞后= -(N-1):(N-1);X = a.^n;C = xcorr(x);

确定分析地检验结果的正确性。使用较大的抽样率来模拟连续的情况。序列的自相关函数,,是

Fs = 10;nn = -(N-1):1/fs:(N-1);dd = (1-a.^(2*(N-abs(nn))))/(1-a^2).*a.^abs(nn);

在同一图形上绘制序列。

茎(滞后,c);持有情节(nn, dd)包含(“滞后”)传说(“xcorr”“分析”)举行

重复计算,但现在找到一个无偏见的自相关的估计。验证无偏估计是由

Cu = xcorr(x,“公正”);du = dd./(N-abs(nn));茎(滞后、铜);持有情节(nn, du)包含(“滞后”)传说(“xcorr”“分析”)举行

重复计算,但现在找到一个有偏见的自相关的估计。验证偏差估计是由

Cb = xcorr(x,“有偏见的”);db = dd/N;茎(滞后,cb);持有情节(nn, db)包含(“滞后”)传说(“xcorr”“分析”)举行

找到自相关的估计值,其值在零滞后是统一的。

Cz = xcor (x,多项式系数的);Dz = dd/max(dd);茎(滞后、cz);持有情节(nn, dz)包含(“滞后”)传说(“xcorr”“分析”)举行

计算并绘制两个16样本指数序列的相互相关性,而且,

N = 16;n = 0: n -1;A = 0.84;B = 0.92;Xa = a.^n;Xb = b.^n;R = xcorr(xa,xb);茎(- (n - 1): (n - 1), r)

确定分析地检验结果的正确性。使用较大的抽样率来模拟连续的情况。序列的互相关函数而且,,是

Fs = 10;nn = -(N-1):1/fs:(N-1);cn = (1 - (a*b).^(N-abs(nn)))/(1 -a *b). *...(a.^nn.*(nn>0) + (nn==0) + b.^-(nn).*(nn<0));

在同一图形上绘制序列。

持有情节(nn, cn)包含(“滞后”)传说(“xcorr”“分析”

验证切换操作数的顺序是否颠倒了顺序。

图干(-(N-1):(N-1),xcorr(xb,xa))保持不变茎(- (n - 1): (n - 1), fliplr (r),”——*’)包含(“滞后”)传说(“xcorr (x_b x_a)”“fliplr (xcorr (x_a x_b))”

生成20个样本的指数序列.计算并绘制其与的交叉相关性而且.输出滞后,使绘图更容易。xcorr在较短序列的末尾追加0,以匹配较长序列的长度。

Xc = 0.77.^(0:20-1);[xca,la] = xcorr(xa,xc);[xcb,lb] = xcorr(xb,xc);图(2,1,1)子图(2,1,2)茎(la,xca)子图(2,1,2)茎(lb,xcb) xlabel(“滞后”

此示例需要并行计算工具箱™软件和支持cuda的NVIDIA GPU,具有1.3或以上的计算能力。看到GPU系统要求获取详细信息。

创建一个包含10hz正弦波的附加噪声信号,以1khz采样。使用gpuArray要创建gpuArray对象存储在计算机的GPU上。

T = 0:0.001:10-0.001;X = cos(2* *10*t) + randn(size(t));X = gpuArray(X);

计算规范化自相关序列滞后200。

[xc,滞后]= xcorr(X,200,多项式系数的);

输出,xc,是一个gpuArray对象。

使用收集将数据从GPU传输到MATLAB®作为双精度矢量的工作空间。

Xc = gather(Xc);

输入参数

全部折叠

输入数组,指定为向量、矩阵或gpuArray对象。

看到GPU计算(并行计算工具箱)和GPU系统要求有关使用的详细资料xcorrgpuArray对象。

例子:Sin (2*pi*(0:9)/10) + randn([1 10])/10指定一个噪声正弦作为行向量。

例子:Sin (2*pi*[0.1;0.3]*(0:39))' + randn([40 2])/10指定一个双通道噪声正弦信号。

例子:gpuArray(sin(2*pi*(0:9)/10) + randn([1 10])/10)指定一个有噪声的正弦信号为gpuArray对象。

数据类型:|
复数支持:万博1manbetx是的

输入数组,指定为向量或gpuArray对象。

数据类型:|
复数支持:万博1manbetx是的

最大延迟,指定为整数标量。如果你指定maxlag,返回的互相关序列范围为-maxlagmaxlag.如果您没有指定maxlag时,滞后范围为2N- 1,其中N长度中较大的是哪个x而且y

数据类型:|

标准化选项,指定为以下之一:

  • “没有”-原始的、未缩放的相互关联。这是唯一允许的选项x而且y有不同的长度。

  • “有偏见的”-相互关系的偏倚估计:

    R x y 有偏见的 1 N R x y

  • “公正”-相互关系的无偏估计:

    R x y 无偏见的 1 N | | R x y

  • 多项式系数的-规范化序列,使自相关性在零滞后等于1:

    R x y 多项式系数 1 R x x 0 R y y 0 R x y

数据类型:字符

输出参数

全部折叠

交叉相关序列,返回为向量、矩阵或gpuArray对象。

如果x是一个×N信号矩阵表示N那么,在它的列中xcorr (x)返回一个(2- 1) ×N2的信道的自相关和相互交叉相关矩阵x.如果你指定maxlag,然后r尺寸(2 ×maxlag- 1) ×N2

例如,如果年代是一个三通道信号, 年代 x 1 x 2 x 3. 的结果R = xcorr(S)组织为

R R x 1 x 1 R x 1 x 2 R x 1 x 3. R x 2 x 1 R x 2 x 2 R x 2 x 3. R x 3. x 1 R x 3. x 2 R x 3. x 3.

滞后指数,作为一个向量返回。

更多关于

全部折叠

互相关和自相关

的结果xcorr可以解释为两个随机序列之间的相关性的估计或两个确定性信号之间的确定性相关性。

两个联合平稳随机过程的真互相关序列,xn而且yn,由

R x y E x n + y n E x n y n

在哪里<n<,星号表示复数共轭,和E是期望值算子。xcorr只能估计序列,因为在实践中,只有一个无限长随机过程的实现的有限段是可用的。

默认情况下,xcorr计算未归一化的原始相关性:

R x y n 0 N 1 x n + y n 0 R y x < 0.

输出向量,c的元素

c R x y N 1 2 ... 2 N 1.

一般来说,相关函数需要归一化来产生准确的估计。您可以使用input参数来控制相关性的规范化scaleopt

参考文献

[1]巴克,约翰R,迈克尔m丹尼尔,安德鲁c辛格。信号与系统的计算机探索用MATLAB。第二版。上马鞍河,新泽西州:Prentice Hall, 2002。

Stoica, Petre和Randolph Moses。信号的光谱分析。上马鞍河,新泽西州:Prentice Hall, 2005。

扩展功能

R2006a之前介绍

这个话题有用吗?