Используя экспериментальную калибровку, чтобы компенсировать неуверенность массивов

Этот пример показывает, как использовать экспериментальную калибровку, чтобы улучшать производительность антенной решетки в присутствии неизвестных возмущений.

Введение

В принципе можно легко разработать идеальную универсальную линейную матрицу (ULA), чтобы выполнить задачи обработки матриц, такие как beamforming или направление оценки прибытия. На практике нет такой вещи как идеальный массив. Например, всегда будут некоторые неизбежные производственные допуски среди различных элементов в массиве. Поскольку в целом невозможно получить точное знание о тех изменениях, они часто упоминаются как неуверенность или возмущения. Обычно наблюдаемая неуверенность включает усиление элемента и неуверенность фазы элемента (электрическая неуверенность), а также неуверенность местоположения элемента (геометрическая неуверенность).

Присутствие неуверенности в системе массивов вызывает быстрое ухудшение в обнаружении, разрешении и производительности оценки алгоритмов обработки матриц. Поэтому очень важно калибровать массив перед своим развертыванием. В дополнение к вышеупомянутым факторам неуверенность может также возникнуть из-за других факторов, таких как аппаратное старение и воздействие на окружающую среду. Калибровка поэтому также выполняется регулярно во всех развернутых системах.

Существует много калибровочных алгоритмов массивов. Этот пример фокусируется на экспериментальном калибровочном подходе [1], где неуверенность оценивается от ответа массива к одному или нескольким известным внешним источникам в известных местоположениях. Пример сравнивает эффект неуверенности на производительности массива до и после калибровки.

Моделирование электрической и геометрической неуверенности

Рассмотрите идеальный ULA с 6 элементами вдоль оси Y, действующей с интервалом полудлины волны и универсальным сужением. Для ULA могут быть вычислены ожидаемые положения элемента и заострения.

N = 6;
designed_pos = [zeros(1,N);(0:N-1)*0.5;zeros(1,N)];
designed_taper = ones(N,1);

Затем, смоделируйте возмущения, которые могут существовать в действительном массиве. Они обычно моделируются как случайные переменные. Например, примите, что значение и фаза заострения встревожены нормально распределенными случайными переменными со стандартными отклонениями 0,1 и 0.05, соответственно.

rng(2014);
taper = (designed_taper + 0.1*randn(N,1)).*exp(1i*0.05*randn(N,1));

Следующие данные показывают различие между значением и фазой встревоженного заострения и разработанного заострения.

helperCompareArrayProperties('Taper',taper,designed_taper,...
    {'Perturbed Array','Designed Array'});

Возмущения в местоположениях датчика в x, y, и z направления сгенерированы так же со стандартным отклонением 0,05.

pos = designed_pos + 0.05*randn(3,N);

Фигура ниже показов, где положения элемента встревоженного массива и идеального массива.

helperCompareArrayProperties('Position',pos,designed_pos,...
    {'Perturbed Array','Designed Array'});

Эффект возмущения массивов

Предыдущий раздел показывает различие между разработанным, идеальным массивом и действительным, встревоженным массивом. Из-за этих ошибок, если вы вслепую применяете шаги обработки, такие как веса beamforming, вычисленное использование разработанного массива, на встревоженном массиве, производительность значительно ухудшается.

Считайте случай формирователя луча LCMV разработанным, чтобы регулировать идеальный массив к направлению 10 азимутов степеней с двумя интерференцией от двух известных направлений-10 азимутов степеней и 60 азимутов степеней. Цель состоит в том, чтобы сохранить сигнал интереса при подавлении интерференции.

Если точное знание заострения и геометрии массива известно, beamforming веса могут быть вычислены можно следующим образом:

% Generate 10K samples from target and interferences with 30dB SNR
az = [-10 10 60];
Nsamp = 1e4;
ncov = db2pow(-30);
[~,~,rx_cov] = sensorsig(pos,Nsamp,az,ncov,'Taper',taper);

% Compute LCMV beamforming weights assuming the designed array
sv = steervec(pos,az);
w = lcmvweights(bsxfun(@times,taper,sv),[0;1;0],rx_cov);

Однако, поскольку массив содержит неизвестные возмущения, beamforming веса должен быть вычислен на основе положений и заострения разработанного массива.

designed_sv = steervec(designed_pos,az);
designed_w = lcmvweights(bsxfun(@times,designed_taper,designed_sv),...
    [0;1;0],rx_cov);

Следующая фигура сравнивает ожидаемую диаграмму направленности с шаблоном, из которого следуют, применяя разработанные веса на встревоженный массив.

helperCompareBeamPattern(pos,taper,w,designed_w,-90:90,az,...
    {'Expected Pattern','Uncalibrated Pattern'},...
    'Beam Pattern Before Calibration');

От нанесенных на график шаблонов ясно, что шаблон следовал из некалиброванных весов, не удовлетворяет требования. Это помещает пустой указатель вокруг желаемых 10 направлений азимута степеней. Это означает, что желаемый сигнал больше не может получаться. К счастью, калибровка массивов может помочь возвратить шаблон, чтобы заказать.

Экспериментальная калибровка

Существуют многие алгоритм, доступный, чтобы выполнить калибровку массивов. Один класс обычно используемых алгоритмов является экспериментальной калибровкой. Алгоритм настраивает несколько источников в известных направлениях и затем использует массив, чтобы получить сигнал от тех передатчиков. Поскольку эти передатчики в известных направлениях, ожидаемый полученный сигнал идеального массива может быть вычислен. Сравнивая их с фактическим полученным сигналом, возможно вывести различие из-за неуверенности и исправить их.

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

pilot_ang = [-60, -5 ,5, 40; -10, 0, 0, 30];

Четыре экспериментальных источника расположены в следующем азимуте и угловых парах повышения: (-60,-10), (-5, 0), (5, 0), и (40, 30). Полученный сигнал от этих пилотов может быть моделирован как

for m = size(pilot_ang,2):-1:1
    calib_sig(:,:,m) = sensorsig(pos,Nsamp,pilot_ang(:,m),...
        ncov,'Taper',taper);
end

Используя полученный сигнал от пилотов в массиве, вместе с положениями элемента и заострениями разработанного массива, калибровочный алгоритм [1] оценки положения элемента и заострения для встревоженного массива.

[est_pos,est_taper] = pilotcalib(designed_pos,...
    calib_sig,pilot_ang,designed_taper);

Если предполагаемые положения и заострение доступны, они могут использоваться вместо разработанных параметров массива при вычислении весов формирователя луча. Это приводит к шаблону массивов, представленному красной линией ниже.

corrected_w = lcmvweights(bsxfun(@times,est_taper,...
    steervec(est_pos,az)),[0;1;0],rx_cov);

helperCompareBeamPattern(pos,taper,...
    w,corrected_w,-90:90,az,...
    {'Expected Pattern','Calibrated Pattern'},...
    'Beam Pattern After Calibration');

Фигура выше показов, что шаблон, следующий из калиброванного массива, намного лучше, чем тот от некалиброванного массива. В частности, сигналы от желаемого направления теперь сохраняются.

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

Этот пример показывает, как неуверенность в массиве может повлиять на его шаблон ответа и в свою очередь ухудшить производительность массива. Пример также иллюстрирует, как экспериментальная калибровка может использоваться, чтобы помочь восстановить производительность массива.

Ссылки

[1] Н. Фистас и А. Мэникас, "Новый Общий Глобальный Калибровочный Метод Массивов", Продолжения IEEE ICASSP, IV Издания, стр 73-76, апрель 1994.