Адаптивное формирования луча

Преимущества адаптивного формирования луча

Узкополосную Фазу Shift Beamformer Для ULA используют веса, выбранные независимо от любых данных, полученных массивом. Веса в узкополосной фазе сдвиговом формирователе луча управляют ответом массива в заданном направлении. Однако они не учитывают никаких сценариев помех. В результате эти обычные формирователи луча чувствительны к сигналам интерференции. Такие сигналы интерференции могут быть конкретной проблемой, если они возникают на боковых элементах отклика массива.

В отличие от этого, адаптивные или статистически оптимальные формирователи луча могут принимать во внимание сигналы интерференции. Алгоритм adaptive beamformer выбирает веса на основе статистики полученных данных. Для примера адаптивный формирователь луча может улучшить ОСШ путем использования принятых данных для размещения нулей в отклике массива. Эти значения null расположены под углами, соответствующими сигналам помех.

Поддержка адаптивного формирования луча

Программное обеспечение Phased Array System Toolbox™ предоставляет следующие адаптивные лучевые форматоры:

  • Линейно ограниченные лучи с минимальным отклонением (LCMV)

  • Диаграммы направленности отклонения без искажений (MVDR)

  • Морозообразователи

Обнуление с помощью LCMV Beamformer

В этом примере показано, как использовать LCMV-формирователь луча для указания значения null отклика массива в направлении интерферирующего источника. Массив представляет собой однородный линейный массив с 10 элементами (ULA). По умолчанию элементами ULA являются изотропные антенны, созданные phased.IsotropicAntennaElement Системные object™. Установите частотную область значений антенных элементов так, чтобы несущая частота находилась в рабочей области значений. Несущая частота составляет 1 ГГц.

fc = 1e9;
lambda = physconst('LightSpeed')/fc;
array = phased.ULA('NumElements',10,'ElementSpacing',lambda/2);
array.Element.FrequencyRange = [8e8 1.2e9];

Симулируйте тестовый сигнал с помощью простого прямоугольного импульса.

t = linspace(0,0.3,300)';
testsig = zeros(size(t));
testsig(201:205) = 1;

Предположим, что прямоугольный импульс падает на ULA с угла 30 ° азимута и 0 ° повышения. Используйте collectPlaneWave функция ULA Системного объекта для моделирования приема импульсного сигнала с угла падения.

angle_of_arrival = [30;0];
x = collectPlaneWave(array,testsig,angle_of_arrival,fc);

Сигнал x - матрица с десятью столбцами. Каждый столбец представляет принятый сигнал в одном из элементов массива.

Создайте обычный фазосдвигатель луча. Установите WeightsOutputPort свойство к true для вывода весов пространственного фильтра.

convbeamformer = phased.PhaseShiftBeamformer('SensorArray',array,...
    'OperatingFrequency',1e9,'Direction',angle_of_arrival,...
    'WeightsOutputPort',true);

Добавьте к сигналу комплексный белый Гауссов шум x. Установите поток случайных чисел по умолчанию для воспроизводимых результатов.

rng default
npower = 0.5;
x = x + sqrt(npower/2)*(randn(size(x)) + 1i*randn(size(x)));

Создайте 10W источник взаимодействий. Укажите заслонку заграждения, чтобы иметь эффективную излучаемую степень 10 Вт. Сигнал помехи от заслонки заграждения падает на ULA с угла 120 ° азимута и 0 ° повышения. Используйте collectPlaneWave функция объекта ULA System для симуляции приема сигнала глушителя.

jamsig = sqrt(10)*randn(300,1);
jammer_angle = [120;0];
jamsig = collectPlaneWave(array,jamsig,jammer_angle,fc);

Добавьте комплексный белый Гауссов шум, чтобы симулировать шумовые вклады, не связанные непосредственно с сигналом глушения. Снова установите поток случайных чисел по умолчанию для воспроизводимых результатов. Эта степень на 0 дБ ниже степени глушителя. Формируйте сигнал лучом с помощью обычного устройства формирования луча.

noisePwr = 1e-5;
rng(2008);
noise = sqrt(noisePwr/2)*...
    (randn(size(jamsig)) + 1j*randn(size(jamsig)));
jamsig = jamsig + noise;
rxsig = x + jamsig;
[yout,w] = convbeamformer(rxsig);

Реализуйте адаптивный LCMV-формирователь луча с помощью того же массива ULA. Используйте данные без целевых параметров, jamsig, как обучающие данные. Вывод сигнала формирования луча и весов формирователя луча.

steeringvector = phased.SteeringVector('SensorArray',array,...
    'PropagationSpeed',physconst('LightSpeed'));
LCMVbeamformer = phased.LCMVBeamformer('DesiredResponse',1,...
    'TrainingInputPort',true,'WeightsOutputPort',true);
LCMVbeamformer.Constraint = steeringvector(fc,angle_of_arrival);
LCMVbeamformer.DesiredResponse = 1;
[yLCMV,wLCMV] = LCMVbeamformer(rxsig,jamsig);

Постройте график выхода обычного формирователя луча и выхода адаптивного формирователя луча.

subplot(211)
plot(t,abs(yout))
axis tight
title('Conventional Beamformer')
ylabel('Magnitude')
subplot(212)
plot(t,abs(yLCMV))
axis tight
title('LCMV (Adaptive) Beamformer')
xlabel('Seconds')
ylabel('Magnitude')

Figure contains 2 axes. Axes 1 with title Conventional Beamformer contains an object of type line. Axes 2 with title LCMV (Adaptive) Beamformer contains an object of type line.

Адаптивный формирователь луча значительно улучшает ОСШ прямоугольного импульса на уровне 0,2 с.

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

subplot(211)
pattern(array,fc,[-180:180],0,'PropagationSpeed',physconst('LightSpeed'),...
    'CoordinateSystem','rectangular','Type','powerdb','Normalize',true,...
    'Weights',w)
title('Array Response with Conventional Beamforming Weights');
subplot(212)
pattern(array,fc,[-180:180],0,'PropagationSpeed',physconst('LightSpeed'),...)
    'CoordinateSystem','rectangular','Type','powerdb','Normalize',true,...
    'Weights',wLCMV)
title('Array Response with LCMV Beamforming Weights');

Figure contains 2 axes. Axes 1 with title Array Response with Conventional Beamforming Weights contains an object of type line. This object represents 1 GHz. Axes 2 with title Array Response with LCMV Beamforming Weights contains an object of type line. This object represents 1 GHz.

Адаптивная форма луча помещает ядро в угол прихода сигнала помехи, 120 °.

См. также

| |

Похожие темы