主要内容

gccphat

广义互相关

描述

例子

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

例子

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

例子

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

例子

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

例子

全部折叠

加载一个锣声信号。首先,用锣信号作为参考信号。然后,将信号复制两次,引入5秒和25秒的时间延迟。采样率保持默认值为1赫兹。使用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)
-5 10 7

绘制相关函数。

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

图中包含一个轴对象。axis对象包含3个line类型的对象。

加载一个采样率为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])结束结束持有

图中包含一个轴对象。axis对象包含9个line类型的对象。

输入参数

全部折叠

传感器信号,指定为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是的

输出参数

全部折叠

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

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

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

单位是秒。

不同传感器信号的相互关联,返回为a (2)N1)——-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 ˜ τ

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

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

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

参考文献

[1] Knapp, C. H.和G.C. Carter,“估计时间延迟的广义相关方法。”IEEE声学、语音与信号处理汇刊。ASSP-24卷,第4期,1976年8月

[2] G. C. Carter,“相干性和时间延迟估计。”IEEE论文集。1987年2月第75卷第2期

扩展功能

版本历史

在R2015b中引入