文档

gccphat

广义互相关

语法

Tau = gccphat(sig,refsig)
Tau = gccphat(sig,refsig,fs)
[tau,R,lag] = gccphat(___
___= gccphat(sig)
___= gccphat(sig,fs)

描述

例子

τ= gccphat (团体refsig计算时间延迟,τ,信号之间,团体,和参考信号,refsig.这两个团体而且refsig可以有多个通道。该函数假设信号和参考信号来自同一个源。为了估计延迟,gccphat找到相互关系峰值的位置团体而且refsig.用广义互相关相位变换(GCC-PHAT)算法计算相互关。时延是默认采样频率一赫兹对应的采样间隔的倍数。

例子

τ= gccphat (团体refsigfs,表示信号的采样频率。时延是对应于采样频率的采样间隔的倍数。所有的输入信号都应该有相同的采样率。

例子

τR滞后= gccphat(___此外,使用前面语法中的任何参数返回交叉相关值和相关时间延迟。延迟是采样间隔的倍数。交叉相关通道的数量等于输入通道的数量团体

例子

___= gccphat(团体___= gccphat(团体fs返回的所有通道对之间的估计延迟和交叉相关性团体.如果团体列,生成的τ而且R2列。在这些语法中,不使用参考信号输入。第一个τ而且R包含使用第一个信道作为参考的延迟和交叉相关。第二个列包含使用第二个通道作为参考的延迟和交叉相关,等等。

例子

全部折叠

加载锣声信号。首先,用锣信号作为参考信号。然后,复制信号两次,引入5秒和25秒的时间延迟。保持采样率为默认的一赫兹。使用gccphat估计延迟信号和参考信号之间的时间延迟。

负载;Refsig = y;Delay1 = 5;Delay2 = 25;Sig1 = delayseq(refsig,delay1);Sig2 = delayseq(refsig,delay2);Tau_est = gccphat([sig1,sig2],refsig)
tau_est =1×25 25

加载锣声信号。用锣信号作为参考信号。然后,复制信号,引入5毫秒的时间延迟。使用8192hz的采样率。使用gccphat估计延迟信号和参考信号之间的时间延迟。

负载;延迟= 0.005;Refsig = y;sig = delayseq(refsig,delay,Fs);tau_est = gccphat(sig,refsig,Fs)
Tau_est = 0.0050

加载一个采样率为8192赫兹的音乐声音信号。然后,将信号复制三次,并在信号之间引入时延。估计延迟信号和参考信号之间的时间延迟。绘制相关值。

负载汉德尔;dt = 1/Fs;Refsig = y;

创建信号的三个延迟版本。

Delay1 = -5.2*dt;Delay2 = 10.3*dt;Delay3 = 7*dt;sig1 = delayseq(refsig,delay1,Fs);sig2 = delayseq(refsig,delay2,Fs);sig3 = delayseq(refsig,delay3,Fs);

延迟信号与参考信号交叉关联。

[tau_est,R,lag] = gccphat([sig1,sig2,sig3],refsig,Fs);

gccphat函数估计延迟到最近的样本间隔。

disp (tau_est * Fs)
日积月累7

画出相关函数。

情节(1000 *滞后,真正的(R(: 1)))包含(“滞后时间(毫秒)”) ylabel (互相关的)轴([-5,5,-.4,1.1])保持情节(1000 *滞后,真正的(R(:, 2)))情节(1000 *滞后,真正的(R (:, 3)))

加载一个采样率为8192赫兹的音乐声音信号。然后,将信号复制两次,并在两个信号与参考信号之间引入时延。估计时延,并绘制所有信号对之间的互相关函数。

负载汉德尔;dt = 1/Fs;Refsig = y;

创建信号的三个延迟版本。

Delay1 = -5.7*dt;Delay2 = 10.2*dt;sig1 = delayseq(refsig,delay1,Fs);sig2 = delayseq(refsig,delay2,Fs);

将所有信号与其他信号交叉关联。

[tau_est,R,lag] = gccphat([refsig,sig1,sig2],Fs);

显示以样本间隔为单位的时间延迟。该算法估计时间延迟量化到最近的样本区间。三个信号的相互关系产生9个可能的时延,每一个可能的信号对。

disp (tau_est * Fs)
0 -6 10 6 0 16 -10 -16 0

与自身相关的信号给出零延迟。

画出相关函数。

n = 1:9情节(1000 *滞后,真正的(R (:, n)))如果n = = 1包含(“滞后时间(毫秒)”) ylabel (“相关”)轴([5 5。4、1.1])结束结束持有

输入参数

全部折叠

传感器信号,指定为N-by-1列向量或anN——- - - - - -矩阵。N时间抽样的次数和是通道数。如果团体是一个矩阵,每一列是一个不同的通道。

例子:(0、1、2、3、2、1、0]

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

参考信号,指定为N-by-1复值列向量或anN——- - - - - -复数矩阵。如果refsig是列向量,那么所有通道都在团体使用refsig作为计算互相关时的参考信号。

如果refsig是一个矩阵,那么大小是refsig必须匹配的尺寸团体.的gccphat函数计算对应通道之间的相互关系团体而且refsig.信号可以来自不同的来源。

例子:(1、2、3、2、1,0,0)

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

信号采样率,指定为正实值标量。所有的信号都应该有相同的采样率。采样速率的单位是赫兹。

例子:8000

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

输出参数

全部折叠

时间延迟,返回为1 × -K实值行向量。的价值K取决于输入参数的语法。

  • 当参考信号,refsig的值K的列维数团体.每一项τ中对应信号对的估计延迟团体而且refsig

  • 当不使用参考信号时,的值K等于列维数的平方团体2.每一项τ中对应信号对的估计延迟团体

单位是秒。

不同传感器信号之间的相互关系,返回为a (2)N+ 1)——-K复数矩阵。

  • 当参考信号,refsig的值K的列维数团体.每一列都是对应的信号对之间的相互关系团体而且refsig

  • 当不使用参考信号时,的值K等于列维数的平方团体2.每一列都是对应的信号对之间的相互关系团体

相关滞后时间,返回为(2 n + 1)实值列向量。每一行滞后的对应行的滞后时间R.滞后值被限制为采样间隔的倍数。延迟单位以秒为单位。

更多关于

全部折叠

广义互相关

你可以使用广义互相关来估计一个信号到达两个不同传感器的时间差。

由一个源发射并在两个传感器接收的信号模型由:

r 1 t 年代 t + n 1 t r 2 t 年代 t D + n 2 t

在哪里D是到达的时差(目标辐射源),或一个传感器上的信号相对于第二个传感器的到达时间的时间差。您可以通过寻找使两个信号之间的相互关系最大化的时间延迟来估计时间延迟。

从TDOA,你可以估计平面波的舷侧到达角相对于连接两个传感器的线。对于被距离隔开的两个传感器l,舷侧到达角,较宽的角度,与时间差有关

β c τ l

在哪里c是介质中的传播速度。

估计时延的一种常用方法是计算两个传感器接收到的信号之间的相互关系。为了识别时间延迟,在互相关中找到峰值。当信噪比较大时,相关峰值τ,对应实际时延D

R τ E r 1 t r 2 t + τ D 参数 马克斯 τ R τ

当相关函数的峰值更明显时,性能会提高。你可以使用一个加权函数来锐化一个互相关的峰值,这个加权函数可以使输入信号变白。这种技术叫做广义互相关(GCC)。一个特殊的加权函数将信号的谱密度归一化为谱幅值,导致广义互相关相位变换方法(GCC-PHAT).

年代 f R τ e 2 π f τ d τ R ˜ τ 年代 f | 年代 f | e + 2 π f τ d f D ˜ 参数 马克斯 τ R ˜ τ

如果你只使用两个传感器对,你只能估计到达的舷侧角。然而,如果您使用多个对非共线传感器,例如,在一个市建局,您可以使用最小二乘估计来估计平面波的到达方位角和仰角。为N传感器,可以写延时时间τkj信号到达kth传感器相对于jth传感器的

c τ k j x k x j u u 因为 α θ + α θ j + 因为 θ k

在哪里u为平面波的单位传播矢量。角α和θ分别为传播矢量的方位角和仰角。所有的角和向量都是根据局部轴定义的。您可以使用最小二乘来求解第一个方程,以得到单位传播向量的三个分量。然后,你可以解第二个方程的方位角和仰角。

参考文献

[1] Knapp、c.h.和G.C. Carter,“时滞估计的广义相关方法”。IEEE声学,语音和信号处理汇刊。1976年8月第4期。

[2] G. C.卡特,“相干性和时延估计”。IEEE学报。1987年2月第75卷第2期。

扩展功能

在R2015b中引入

这个话题有帮助吗?