Исходная локализация Используя обобщенную взаимную корреляцию

В этом примере показано, как определить положение источника широкополосного сигнала с помощью обобщенной взаимной корреляции (GCC) и триангуляции. Для простоты этот пример ограничен двумерным сценарием, состоящим из одного источника и двух сенсорных матриц получения. Можно расширить этот подход больше чем к двум датчикам или сенсорным матрицам и к трем измерениям.

Введение

Исходная локализация отличается от оценки направления прибытия (DOA). Оценка DOA стремится определить только направление источника от датчика. Исходная локализация определяет свое положение. В этом примере исходная локализация состоит из двух шагов, первым из которых является оценка DOA.

  1. Оцените направление источника от каждой сенсорной матрицы с помощью алгоритма оценки DOA. Для широкополосных сигналов многие не может быть применено известное направление алгоритмов оценки прибытия, таких как метод Каплуна или MUSIC, потому что они используют разность фаз между элементами, делая их подходящими только для узкополосных сигналов. В широкополосном случае, вместо информации о фазе, можно использовать различие во времени прибытия сигнала среди элементов. Чтобы вычислить различия времени прибытия, этот пример использует обобщенную взаимную корреляцию с преобразованием фазы (GCC-PHAT) алгоритм. От различий во времени прибытия можно вычислить DOA. (Для другого примера узкополосных алгоритмов оценки DOA смотрите Направление Высокого разрешения Оценки Прибытия).

  2. Вычислите исходное положение триангуляцией. Во-первых, проведите прямые линии от массивов вдоль направлений прибытия. Затем вычислите пересечение этих двух линий. Это - исходное местоположение. Исходная локализация требует знания положения и ориентации датчиков получения или сенсорных матриц.

Формула триангуляции

Алгоритм триангуляции основан на простых тригонометрических формулах. Примите, что сенсорные матрицы расположены в 2D координатах (0,0) и (L, 0), и неизвестное исходное местоположение (x, y). От знания положений сенсорных матриц и этих двух направлений прибытия в массивах, θ1 и θ2, можно вычислить (x, y) координаты от

L=ytanθ1+ytanθ2

который можно решить для y

y=L/(tanθ1+tanθ2)

и затем для x

x=ytanθ1

Оставшаяся часть этого примера показывает, как можно использовать функции и Системные объекты Phased Array System Toolbox™, чтобы вычислить исходное положение.

Источник и геометрия датчика

Настройте два получающих ULAs с 4 элементами, выровненные вдоль оси X глобальной системы координат, и расположил с интервалами на расстоянии в 50 метров. Центр фазы первого массива (0,0,0). Центр фазы второго массива (50,0,0). Источник расположен в (30,100) метры. Как обозначено на рисунке, массив получения получает точку в +y направлении. Источник передает в-y направлении.

Задайте базовую линию между сенсорными матрицами.

L = 50;

Создайте приемник с 4 элементами ULA ненаправленных микрофонов. Можно использовать тот же phased.ULA Система object™ для phased.WidebandCollector и phased.GCCEstimator Системные объекты для обоих массивов.

N = 4;
rxULA = phased.ULA('Element',phased.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;

Задайте форму волны

Выберите исходный сигнал быть широкополосной формой волны LFM. Примите, что рабочая частота системы составляет 300 кГц и установила пропускную способность сигнала к 100 кГц. Примите максимальный рабочий диапазон 150 м. Затем можно установить импульсный интервал повторения (PRI) и импульсную частоту повторения (PRF). Примите 10%-й рабочий цикл и установите ширину импульса. Наконец, используйте скорость звука в подводном канале 1 500 м/с.

Установите параметры формы волны LFM и создайте phased.LinearFMWaveform Система object™.

fc = 300e3;             % 300 kHz
c = 1500;               % 1500 m/s
dmax = 150;             % 150 m
pri = (2*dmax)/c;
prf = 1/pri;
bw = 100.0e3;           % 100 kHz
fs = 2*bw;
waveform = phased.LinearFMWaveform('SampleRate',fs,'SweepBandwidth',bw,...
    'PRF',prf,'PulseWidth',pri/10);

Сигнал передачи может затем быть сгенерирован как

signal = waveform();

Излучите, распространите и соберите сигналы

Моделирование излучения и распространения для широкополосных систем, больше усложняют, чем моделирование узкополосных систем. Например, затухание зависит от частоты. Эффект Доплера, а также сдвиги фазы среди элементов из-за входящего направления сигнала также варьируется согласно частоте. Таким образом очень важно смоделировать те поведения при контакте с широкополосными сигналами. Этот пример использует подход поддиапазона.

Определите номер поддиапазонов к 128.

nfft = 128;

Задайте исходный теплоотвод и коллекторы сенсорной матрицы.

radiator = phased.WidebandRadiator('Sensor',srcULA,...
    'PropagationSpeed',c,'SampleRate',fs,...
    'CarrierFrequency',fc,'NumSubbands',nfft);
collector1 = phased.WidebandCollector('Sensor',rxULA,...
    'PropagationSpeed',c,'SampleRate',fs,...
    'CarrierFrequency',fc,'NumSubbands',nfft);
collector2 = phased.WidebandCollector('Sensor',rxULA,...
    'PropagationSpeed',c,'SampleRate',fs,...
    'CarrierFrequency',fc,'NumSubbands',nfft);

Создайте широкополосных распространителей сигнала для путей от источника до этих двух сенсорных матриц.

channel1 = phased.WidebandFreeSpace('PropagationSpeed',c,...
    'SampleRate',fs,'OperatingFrequency',fc,'NumSubbands',nfft);
channel2 = phased.WidebandFreeSpace('PropagationSpeed',c,...
    'SampleRate',fs,'OperatingFrequency',fc,'NumSubbands',nfft);

Определите направления распространения от источника до сенсорных матриц. Направления распространения относительно системы локальной координаты источника.

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

Излучите сигнал из источника в направлениях сенсорных матриц.

sigt = radiator(signal,[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-координату.

yest = L/(abs(tand(angest1)) + abs(tand(angest2)));
xest = yest*abs(tand(angest1));
zest = 0;
srcpos_est = [xest;yest;zest]
srcpos_est = 3×1

   29.9881
  100.5743
         0

Предполагаемое исходное местоположение совпадает с истинным местоположением к в 30 см.

Сводные данные

Этот пример показал, как выполнить исходную локализацию с помощью триангуляции. В частности, пример показал, как симулировать, распространить, и обработать широкополосные сигналы. Алгоритм GCC-PHAT используется, чтобы оценить направление прибытия широкополосного сигнала.