基于广义互相关的源定位

这个例子展示了如何使用广义互相关(GCC)和三角测量来确定宽带信号的源的位置。为简单起见,本示例仅限于由一个源和两个接收传感器阵列组成的二维场景。您可以将此方法扩展到两个以上的传感器或传感器阵列,并扩展到三维。

介绍

源定位不同于到达方向(DOA)估计。DOA估计只寻求从传感器确定源的方向。源定位决定了它的位置。在本例中,源定位包括两个步骤,第一个是DOA估计。

  1. 使用DOA估计算法从每个传感器阵列估计源的方向。对于宽带信号,许多著名的到达方向估计算法,如Capon的方法或MUSIC,都不能应用,因为它们使用了元素之间的相位差,使它们只适合于窄带信号。在宽带情况下,您可以使用元素之间的信号到达时间差异而不是相位信息。为了计算到达时间差异,本例使用相变换的广义互相关(GCC-PHAT)算法。根据到达时间的差异,可以计算DOA。(窄带DOA估计算法的另一个例子,参见高分辨率的到达方向估计).

  2. 通过三角测量计算源的位置。首先,从阵列中沿着到达的方向画出直线。然后,计算这两条直线的交点。这是源位置。源定位需要接收传感器或传感器阵列的位置和方向的知识。

三角公式

三角剖分算法是基于简单的三角公式。假设传感器阵列位于二维坐标(0,0)(L, 0)而未知来源的位置是(x, y).根据传感器阵列的位置和到达阵列的两个方向, θ 1 θ 2 ,可以计算(x, y)坐标从

l y 棕褐色 θ 1 + y 棕褐色 θ 2

你能解出哪个y

y l / 棕褐色 θ 1 + 棕褐色 θ 2

然后对x

x y 棕褐色 θ 1

本示例的其余部分展示了如何使用相控阵系统工具箱™的函数和系统对象来计算源位置。

源和传感器几何形状

设置两个接收4元ULAs沿x-轴,间隔50米。第一个阵列的相位中心为(0, 0, 0).第二阵列的相位中心为(50, 0, 0).源位于(30100)米。如图所示,接收阵列在+ y方向。源在可能是方向。

指定传感器阵列之间的基线。

L = 50;

创建一个全向麦克风的4单元接收器ULA。你也可以用这个分阶段。齿龈系统对象™分阶段。WidebandCollector分阶段。GCCEstimator两个数组的系统对象。

N = 4;rxULA =分阶段。齿龈(“元素”,分阶段。OmnidirectionalMicrophoneElement,...“NumElements”N);

指定第一个传感器阵列的位置和方向。当您创建一个ULA时,数组元素将自动沿着y设在。数组的局部轴必须旋转90°以使元素沿x全球坐标系的-轴。

rxpos1 = (0, 0, 0);rxvel1 = (0, 0, 0);rxax1 = azelaxes (90 0);

指定第二传感器阵列的位置和方向。选择第二个数组的局部轴以与第一个数组的局部轴对齐。

rxpos2 = (L, 0, 0);rxvel2 = (0, 0, 0);rxax2 = rxax1;

指定信号源为单个全向传感器。

srcpos = (30; 100; 0);srcvel = (0, 0, 0);srcax = azelaxes (-90 0);srcULA = phased.OmnidirectionalMicrophoneElement;

定义波形

选择源信号为宽带线性调频波形。假设系统的工作频率为300khz,信号带宽设置为100khz。假设最大工作距离为150米。然后可以设置PRI(脉冲重复间隔)和PRF(脉冲重复频率)。假设占空比为10%,并设置脉冲宽度。最后,在水下使用1500米/秒的声速。

设置LFM波形参数并创建分阶段。linearFMWaveform系统对象™。

fc = 300年e3;% 300千赫c = 1500;% 1500 m / s距离= 150;% 150革命制度党=(2 *距离)/ c;脉冲重复频率= 1 /革命制度党;bw = 100.0 e3;% 100千赫fs = 2 * bw;波形=分阶段。LinearFMWaveform (“SampleRate”fs,“SweepBandwidth”bw,...脉冲重复频率的脉冲重复频率,“脉冲宽度”革命制度党/ 10);

发送信号可以被生成为

=信号波形();

辐射、传播和收集信号

宽带系统的辐射和传播建模要比窄带系统建模复杂得多。例如,衰减取决于频率。信号入射方向引起的多普勒频移和各元素间的相移也随频率而变化。因此,在处理宽带信号时,对这些行为进行建模至关重要。本例使用子带方法。

设置子带个数为128。

nfft = 128;

指定源散热器和传感器阵列采集器。

散热器=分阶段。WidebandRadiator (“传感器”srcULA,...“PropagationSpeed”c“SampleRate”fs,...“CarrierFrequency”足球俱乐部,“NumSubbands”, nfft);collector1 =分阶段。WidebandCollector (“传感器”rxULA,...“PropagationSpeed”c“SampleRate”fs,...“CarrierFrequency”足球俱乐部,“NumSubbands”, nfft);collector2 =分阶段。WidebandCollector (“传感器”rxULA,...“PropagationSpeed”c“SampleRate”fs,...“CarrierFrequency”足球俱乐部,“NumSubbands”, nfft);

为从源到两个传感器阵列的路径创建宽带信号传播器。

channel1 =分阶段。WidebandFreeSpace (“PropagationSpeed”c...“SampleRate”fs,“OperatingFrequency”足球俱乐部,“NumSubbands”, nfft);channel2 =分阶段。WidebandFreeSpace (“PropagationSpeed”c...“SampleRate”fs,“OperatingFrequency”足球俱乐部,“NumSubbands”, nfft);

确定从源到传感器阵列的传播方向。传播方向是相对于源的局部坐标系。

[~, ang1t] = rangeangle (rxpos1、srcpos srcax);[~, ang2t] = rangeangle (rxpos2、srcpos srcax);

从源向传感器阵列的方向辐射信号。

Sigt =散热器(信号,[ang1t ang2t]);

然后,将信号传播到传感器阵列。

sigp1 = channel1 (sigt (: 1), srcpos, rxpos1, srcvel, rxvel1);sigp2 = channel2 (sigt (:, 2), srcpos, rxpos2, srcvel, rxvel2);

计算传播信号在传感器阵列的到达方向。由于收集器响应是传感器阵列局部坐标系中到达方向的函数,将局部坐标轴矩阵传递给rangeangle函数。

[~, ang1r] = rangeangle (srcpos、rxpos1 rxax1);[~, ang2r] = rangeangle (srcpos、rxpos2 rxax2);

在接收传感器阵列采集信号。

sigr1 = collector1 (sigp1 ang1r);sigr2 = collector2 (sigp2 ang2r);

GCC估计和三角测量

创建GCC-PHAT估计器。

doa1 =分阶段。GCCEstimator (“SensorArray”rxULA,“SampleRate”fs,...“PropagationSpeed”c);doa2 =分阶段。GCCEstimator (“SensorArray”rxULA,“SampleRate”fs,...“PropagationSpeed”c);

估计到达的方向。

angest1 = doa1 (sigr1);angest2 = doa2 (sigr2);

用前面建立的公式对源位置进行三角定位。因为这个场景仅限于x - y平面,将z坐标设为零。

yest = L/(abs(tand(angest1)) + abs(tand(angest2)));x =是的* abs(踮(angest1));热情= 0;srcpos_est = [x;是的;热情)
srcpos_est =3×129.9881 - 100.5743 0

估计的源位置与真实位置的匹配在30厘米以内。

总结

这个例子展示了如何使用三角定位来执行源定位。特别地,该示例展示了如何模拟、传播和处理宽带信号。采用GCC-PHAT算法对宽带信号的到达方向进行估计。