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

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

Введение

В принципе можно легко спроектировать идеальную универсальную линейную матрицу (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.