使用广义互相关源定位
这个例子展示了如何确定宽带信号的来源的位置使用广义互相关(GCC)和三角测量。为了简单起见,这个例子是局限于一个二维场景组成的一个源和两个接收传感器阵列。您可以扩展这种方法两个以上的传感器或传感器阵列和三个维度。
介绍
源定位不同于direction-of-arrival (DOA)估计。DOA估计试图确定只有一个源的方向传感器。源定位决定地位。在这个示例中,源定位包含两个步骤,第一个是DOA估计。
估计的方向从每个传感器阵列使用源DOA估计算法。对于宽带信号,许多著名的波达方向估计算法,如阉鸡的方法或音乐,不能应用,因为他们使用元素之间的相位差,使它们只适合窄带信号。在宽带的情况下,而不是相位信息,您可以使用元素之间的差分信号的到场时间。计算到场时间差异,下面的例子使用了广义互相关和相变(GCC-PHAT)算法。从到场时间的差异,你可以计算出DOA。(窄带DOA估计算法的另一个例子,看看高分辨率的波达方向估计)。
计算三角的源位置。首先,沿着directions-of-arrival画直线的数组。然后,计算这两条线的交点。这是源的位置。源位置和姿态的定位需要知识接收传感器或传感器阵列。
三角公式
三角剖分算法是基于简单的三角函数公式。假定传感器阵列位于二维坐标(0,0)和(L, 0)和未知的源位置(x, y)。从传感器阵列的知识立场和两个directions-of-arrival数组, 和 ,你可以计算(x, y)坐标从
你可以解决吗y
然后对x
余下的这个例子展示了如何使用相控阵系统的功能和系统对象工具箱™计算源的位置。
源和传感器几何
这种设置两个接收第4单元沿对齐x设在全球坐标系统和间距为50米。第一个数组的相位中心(0,0,0)。第二个数组的相位中心(50,0,0)。源位于(30100)米。正如图所示,接收数组收益点+ y方向。源的传输可能是方向。
指定传感器阵列之间的基线。
L = 50;
创建一个第4单元的全向麦克风接收器齿龈。您可以使用相同的phased.ULA
系统对象™phased.WidebandCollector
和phased.GCCEstimator
系统对象的数组。
N = 4;rxULA = phased.ULA (“元素”phased.OmnidirectionalMicrophoneElement,…“NumElements”N);
指定第一个传感器阵列的位置和姿态。当您创建一个齿龈,数组元素自动间隔沿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;
定义波形
选择源信号是宽带线性调频波形。假设系统的工作频率是300千赫和设置信号的带宽100千赫。承担的最大工作范围150米。然后,您可以设置脉冲重复间隔(PRI)和脉冲重复频率(脉冲)。承担10%的责任周期和脉冲宽度。最后,用声速的水下通道1500 m / s。
线性调频脉冲波形参数设置并创建phased.LinearFMWaveform
系统对象。
fc = 300年e3;% 300千赫c = 1500;% 1500 m / s距离= 150;% 150革命制度党=(2 *距离)/ c;脉冲重复频率= 1 /革命制度党;bw = 100.0 e3;% 100千赫fs = 2 * bw;波形= phased.LinearFMWaveform (“SampleRate”fs,“SweepBandwidth”bw,…脉冲重复频率的脉冲重复频率,“脉冲宽度”革命制度党/ 10);
传输信号可以生成
=信号波形();
辐射、传播和收集信号
宽带系统建模的辐射和传播比建模窄带系统更为复杂。例如,衰减依赖于频率。多普勒频移以及元素之间的相移由于根据频率信号入射方向也不同。因此,它是至关重要的这些行为模型在处理宽带信号。这个示例使用了一次能带的方法。
设置的部分波段数128。
nfft = 128;
指定源散热器和传感器阵列的收藏家。
散热器= phased.WidebandRadiator (“传感器”srcULA,…“PropagationSpeed”c“SampleRate”fs,…“CarrierFrequency”足球俱乐部,“NumSubbands”,nfft);collector1 = phased.WidebandCollector (“传感器”rxULA,…“PropagationSpeed”c“SampleRate”fs,…“CarrierFrequency”足球俱乐部,“NumSubbands”,nfft);collector2 = phased.WidebandCollector (“传感器”rxULA,…“PropagationSpeed”c“SampleRate”fs,…“CarrierFrequency”足球俱乐部,“NumSubbands”,nfft);
创建宽带信号实现了路径从源到两个传感器阵列。
channel1 = phased.WidebandFreeSpace (“PropagationSpeed”c…“SampleRate”fs,“OperatingFrequency”足球俱乐部,“NumSubbands”,nfft);channel2 = phased.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 = phased.GCCEstimator (“SensorArray”rxULA,“SampleRate”fs,…“PropagationSpeed”c);doa2 = phased.GCCEstimator (“SensorArray”rxULA,“SampleRate”fs,…“PropagationSpeed”c);
估计到达的方向。
angest1 = doa1 (sigr1);angest2 = doa2 (sigr2);
由三角形组成的源位置使用先前建立的公式。因为这个场景是局限于x - y飞机,z坐标设置为0。
是的= L / (abs(踮(angest1)) + abs(罐内(angest2)));x =是的* abs(踮(angest1));热情= 0;srcpos_est = [x;是的;热情)
srcpos_est =3×129.9881 - 100.5743 0
估计源位置匹配的真实位置,在30厘米。
总结
这个例子展示了如何使用三角测量执行源定位。特别是,这个例子展示了如何模拟,传播和处理宽带信号。GCC-PHAT算法用于估计宽带信号的到达方向。