Оценка направления прибытия с Beamscan, MVDR и MUSIC

Этот пример иллюстрирует использование оценки beamscan, MVDR и MUSIC для направления прибытия (DOA). Beamscan является методом, который формирует обычный луч и сканирует его по интересующим направлениям, чтобы получить пространственный спектр. Отклик без искажений минимального отклонения (MVDR) похож на beamscan, но использует луч MVDR. Классификация нескольких сигналов (MUSIC) является подпространственным методом, который обеспечивает оценки DOA высокого разрешения. Для всех трех методов peaks выхода пространственного спектра указывают DOA принятых сигналов. В этом примере мы иллюстрируем использование beamscan, MVDR и MUSIC для оценки широких углов с равномерным линейным массивом (ULA) и азимутом и углами возвышения с равномерным прямоугольным массивом (URA).

Моделирование принятого сигнала ULA

Сначала моделируйте равномерный линейный массив (ULA), содержащую 10 изотропных антенн, разнесенных на 0,5 метра друг от друга.

ula = phased.ULA('NumElements',10,'ElementSpacing',0.5);

Предположим, что два узкополосных сигнала ударяются о массив. Первый сигнал поступает от 40 ° по азимуту и 0 ° по повышению, второй сигнал поступает от -20 ° по азимуту и 0 ° по повышению. Рабочая частота системы составляет 300 МГц.

ang1 = [40; 0];          % First signal
ang2 = [-20; 0];         % Second signal
angs = [ang1 ang2];

c = physconst('LightSpeed');
fc = 300e6;              % Operating frequency
lambda = c/fc;
pos = getElementPosition(ula)/lambda;

Nsamp = 1000;

Кроме того, примите, что степень теплового шума на каждой антенне составляет 0,01 Вт.

nPower = 0.01;

Сгенерируйте многоканальный сигнал, принятый ULA.

rs = rng(2007);
signal = sensorsig(pos,Nsamp,angs,nPower);

Оценка DOA сканирования луча с помощью ULA

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

Широкие углы, соответствующие двум направлениям падения, являются:

broadsideAngle = az2broadside(angs(1,:),angs(2,:))
broadsideAngle =

   40.0000  -20.0000

Мы видим, что два широких угла совпадают с азимутальными углами. В целом, когда угол возвышения равен нулю, а угол азимута находится внутри [-90 90], широкий угол совпадает с углом изменения азимута. В следующем мы выполняем преобразование только, когда они не равны.

Алгоритм сканирования луча сканирует обычный луч через предопределенную область скана. Здесь мы устанавливаем область сканирования [-90 90], чтобы покрыть все 180 степени.

spatialspectrum = phased.BeamscanEstimator('SensorArray',ula,...
            'OperatingFrequency',fc,'ScanAngles',-90:90);

По умолчанию оценщик луча производит только пространственный спектр по области скана. Установите значение свойства DOAOutputPort равным true, чтобы получить оценки DOA. Установите значение свойства NumSignals равным 2, чтобы найти местоположения двух верхних пиков.

spatialspectrum.DOAOutputPort = true;
spatialspectrum.NumSignals = 2;

Теперь мы получаем пространственный спектр и DOA. Предполагаемые значения DOA показывают правильные значения, которые составляют 40 ° и -20 °.

[~,ang] = spatialspectrum(signal)
ang =

    40   -20

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

plotSpectrum(spatialspectrum);

Улучшение разрешения с помощью оценок MVDR и MUSIC

Обычный луч не может разрешить два близко расположенных сигнала. Когда два сигнала поступают из направлений, разделенных меньшей, чем ширина луча, сканирование луча не сможет оценить направления сигналов. Чтобы проиллюстрировать это ограничение, мы моделируем два принятых сигнала от 30 ° и 40 ° по азимуту.

ang1 = [30; 0]; ang2 = [40; 0];
signal = sensorsig(pos,Nsamp,[ang1 ang2],nPower);

[~,ang] = spatialspectrum(signal)
ang =

    35    71

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

plotSpectrum(spatialspectrum);

Пространственный спектр выхода имеет только один доминирующий пик. Поэтому он не может разрешить эти два близко расположенных сигнала. Когда мы пытаемся оценить DOA из peaks выходных данных beamscan, мы получаем неправильные оценки. Объект beamscan возвращает два максимальных достигать максимума в качестве предполагаемых DOA независимо от того, насколько разный peaks. В этом случае beamscan возвращает малый пик на 71 ° в качестве второй оценки.

Чтобы разрешить тесно расположенные сигналы, мы можем использовать алгоритм минимального отклонения искажения отклика (MVDR) или алгоритм классификации нескольких сигналов (MUSIC). Сначала мы рассмотрим оценку MVDR, которая сканирует луч MVDR по заданной области. Поскольку луч MVDR имеет меньшую ширину луча, он имеет более высокое разрешение.

mvdrspatialspect = phased.MVDREstimator('SensorArray',ula,...
        'OperatingFrequency',fc,'ScanAngles',-90:90,...
        'DOAOutputPort',true,'NumSignals',2);
[~,ang] = mvdrspatialspect(signal)
plotSpectrum(mvdrspatialspect);
ang =

    30    40

Алгоритм MVDR правильно оценивает DOA, которые неразрешимы при сканировании луча. Улучшенное разрешение поставляется с ценой. MVDR более чувствителен к ошибкам положения датчика. В условиях, когда положения датчика неточны, MVDR может привести к худшему пространственному спектру, чем beamscan. Кроме того, если мы дополнительно уменьшим различие двух направлений сигнала до уровня, который меньше, чем ширина луча пучка MVDR, оценщик MVDR также не справится.

Алгоритм MUSIC может также использоваться, чтобы разрешить эти близко расположенные сигналы. Оцените направления прихода двух источников и сравните пространственный спектр MVDR с пространственным спектром MUSIC.

musicspatialspect = phased.MUSICEstimator('SensorArray',ula,...
        'OperatingFrequency',fc,'ScanAngles',-90:90,...
        'DOAOutputPort',true,'NumSignalsSource','Property','NumSignals',2);
[~,ang] = musicspatialspect(signal)
ymvdr = mvdrspatialspect(signal);
ymusic = musicspatialspect(signal);
helperPlotDOASpectra(mvdrspatialspect.ScanAngles,...
  musicspatialspect.ScanAngles,ymvdr,ymusic,'ULA')
ang =

    30    40

Направления прибытия с помощью MUSIC верны, а MUSIC обеспечивает даже лучшее пространственное разрешение, чем MVDR. MUSIC, как и MVDR, чувствителен к ошибкам положения датчика. В сложение количество источников должно быть известно или точно оценено. Когда количество заданных источников неверно, MVDR и Beamscan могут просто вернуть незначительный peaks от правильного пространственного спектра. Напротив, сам пространственный спектр MUSIC может быть неточным, когда количество источников задано неправильно. В сложение амплитуды спектрального peaks MUSIC не могут быть интерпретированы как степень источников.

Для ULA дополнительные алгоритмы высокого разрешения могут дополнительно использовать специальную геометрию ULA. См. «Направление прибытия с высоким разрешением».

Преобразование Бродсайдских углов в азимут

Несмотря на то, что мы можем только оценить широкие углы с помощью ULA, мы можем преобразовать предполагаемые широкие углы в азимутальные, если знаем их входящие повышения. Теперь мы моделируем два сигнала, поступающих от 35 ° по повышению и оцениваем их соответствующие широкие углы.

ang1 = [40; 35]; ang2 = [15; 35];

signal = sensorsig(pos,Nsamp,[ang1 ang2],nPower);
[~,ang] = mvdrspatialspect(signal)
ang =

    32    12

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

ang = broadside2az(ang,35)
ang =

   40.3092   14.7033

Оценка DOA Beamscan с URA

Далее мы иллюстрируем оценку DOA с помощью равномерного прямоугольного массива (URA) 10 на 5. URA может оценить как азимут, так и углы возвышения. Интервал элемента составляет 0,3 метра между каждой строкой и 0,5 метра между каждым столбцом.

ura = phased.URA('Size',[10 5],'ElementSpacing',[0.3 0.5]);

Предположим, что два сигнала влияют на URA. Первый сигнал поступает от 40 ° по азимуту и 45 ° по повышению, второй сигнал поступает от -20 ° по азимуту и 20 ° по повышению.

ang1 = [40; 45];         % First signal
ang2 = [-20; 20];        % Second signal

signal = sensorsig(getElementPosition(ura)/lambda,Nsamp, ...
  [ang1 ang2],nPower);
rng(rs);                 % Restore random number generator

Создайте 2-D объект оценки луча из URA. Этот объект использует тот же алгоритм, что и 1-D случай, за исключением того, что он сканирует и азимут, и повышение вместо широких боковых углов.

Область сканирования задается свойством 'AzimuthScanAngles' и 'ElevationScanAngles'. Чтобы уменьшить вычислительную сложность, мы предполагаем некоторое априорное знание о направлениях входящего сигнала. Мы ограничиваем азимутальный скан область [-45 45], а повышение скана область [10 60].

azelspectrum = phased.BeamscanEstimator2D('SensorArray',ura,...
       'OperatingFrequency',fc,...
       'AzimuthScanAngles',-45:45,'ElevationScanAngles',10:60,...
       'DOAOutputPort',true,'NumSignals',2);

Выходной параметр DOA является матрицей 2-by-N, где N - количество сигнальных направлений. Первая строка содержит азимутальные углы, а вторая - углы возвышения.

[~,ang] = azelspectrum(signal)
ang =

    40   -20
    45    20

Постройте график 3-D спектра по азимуту и повышению.

plotSpectrum(azelspectrum);

Оценка DOA MVDR с URA

Подобно случаю ULA, мы используем 2-D версию алгоритма MVDR. Поскольку наши знания о положении датчика идеальны, мы ожидаем, что спектр MVDR будет иметь лучшее разрешение, чем beamscan.

mvdrazelspectrum = phased.MVDREstimator2D('SensorArray',ura,...
        'OperatingFrequency',fc,...
        'AzimuthScanAngles',-45:45,'ElevationScanAngles',10:60,...
        'DOAOutputPort',true,'NumSignals',2);
[~,ang] = mvdrazelspectrum(signal)
plotSpectrum(mvdrazelspectrum);
ang =

   -20    40
    20    45

Оценка MUSIC DOA с URA

Мы также можем использовать алгоритм MUSIC, чтобы оценить направления прибытия двух источников.

musicazelspectrum = phased.MUSICEstimator2D('SensorArray',ura,...
        'OperatingFrequency',fc,...
        'AzimuthScanAngles',-45:45,'ElevationScanAngles',10:60,...
        'DOAOutputPort',true,'NumSignalsSource','Property','NumSignals',2);
[~,ang] = musicazelspectrum(signal)
plotSpectrum(musicazelspectrum);
ang =

   -20    40
    20    45

Для сравнения оценок MVDR и MUSIC рассмотрим источники, расположенные еще ближе друг к другу. Используя MVDR и MUSIC, вычислите пространственный спектр двух источников, расположенных на 10 ° по азимуту и разделенных на 3 ° по повышению.

ang1 = [10; 20];         % First signal
ang2 = [10; 23];        % Second signal

signal = sensorsig(getElementPosition(ura)/lambda,Nsamp, ...
  [ang1 ang2],nPower);
[~,angmvdr] = mvdrazelspectrum(signal)
[~,angmusic] = musicazelspectrum(signal)
angmvdr =

    10   -27
    22    21


angmusic =

    10    10
    23    20

В этом случае только MUSIC правильно оценивает направления прибытия для двух источников. Чтобы увидеть, почему, постройте разрез по повышению каждого пространственного спектра на 10 ° азимут.

ymvdr = mvdrazelspectrum(signal);
ymusic = musicazelspectrum(signal);
helperPlotDOASpectra(mvdrazelspectrum.ElevationScanAngles,...
  musicazelspectrum.ElevationScanAngles,ymvdr(:,56),ymusic(:,56),'URA')

Поскольку спектр MUSIC имеет лучшее пространственное разрешение, чем MVDR, MUSIC правильно идентифицирует источники, в то время как MVDR не делает этого.

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

В этом примере мы показали, как применить методы beamscan, MVDR и MUSIC к задаче оценки DOA. Мы использовали оба метода, чтобы оценить широкие углы для сигналов, полученных ULA. Алгоритм MVDR имеет лучшее разрешение, чем beamscan, когда нет ошибки положения датчика. MUSIC имеет даже лучшее разрешение, чем MVDR, но количество источников должно быть известно. Мы также проиллюстрировали, как преобразовать азимут и широкие углы. Затем мы применили beamscan, MVDR и MUSIC, чтобы оценить азимут и углы возвышения с помощью URA. Во всех этих случаях мы построили график выхода пространственного спектра и снова обнаружили, что MUSIC имеет лучшее пространственное разрешение. Beamscan, MVDR и MUSIC являются методами, которые могут быть применены к любому типу массива, но для ULA и URA существуют дополнительные методы высокого разрешения, которые могут дополнительно использовать геометрию массива.