Направление высокого разрешения оценки прибытия

Этот пример иллюстрирует несколько методов оценки направления прибытия (DOA) с высоким разрешением. Это вводит варианты MUSIC, корневой МУЗЫКИ, ESPRIT и алгоритмов корневого WSF и обсуждает их соответствующие достоинства в контексте далекого поля, узкополосные источники сигнала, полученные антенной универсальной линейной матрицы (ULA).

Моделирование полученных сигналов массивов

Задайте универсальную линейную матрицу (ULA), состоявшую из 10 изотропных антенн. Интервал элемента массива составляет 0,5 метра.

N = 10;
ula = phased.ULA('NumElements',N,'ElementSpacing',0.5)
ula = 
  phased.ULA with properties:

           Element: [1x1 phased.IsotropicAntennaElement]
       NumElements: 10
    ElementSpacing: 0.5000
         ArrayAxis: 'y'
             Taper: 1

Симулируйте массив выход для двух инцидентных сигналов. Оба сигнала являются инцидентом от 90 ° в азимуте. Их углы возвышения составляют 73 ° и 68 ° соответственно. В этом примере мы принимаем, что эти два направления неизвестны и должны быть оценены. Симулируйте основную полосу полученный сигнал в массиве, демодулируемом от рабочей частоты 300 МГц.

fc = 300e6;                               % Operating frequency
fs = 8192;                                % Sampling frequency
lambda = physconst('LightSpeed')/fc;      % Wavelength
pos = getElementPosition(ula)/lambda;     % Element position in wavelengths
ang1 = [90;73]; ang2 = [90;68];           % Direction of the signals
angs = [ang1 ang2];
Nsamp = 1024;                             % Number of snapshots
noisePwr = 0.01;                          % Noise power

rs = rng(2012);                           % Set random number generator
signal = sensorsig(pos,Nsamp,angs,noisePwr);

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

Вычислите поперечные углы, соответствующие двум инцидентным углам.

ang_true = az2broadside(angs(1,:),angs(2,:))
ang_true = 1×2

   17.0000   22.0000

Поперечные углы составляют 17 ° и 22 °.

Оценка Направления прибытия (DOA)

Примите, что мы знаем априорно, что существует два источника. Чтобы оценить DOA, используйте метод корневой МУЗЫКИ. Создайте средство оценки DOA с помощью алгоритма корневой МУЗЫКИ.

rootmusicangle = phased.RootMUSICEstimator('SensorArray',ula,...
            'OperatingFrequency',fc,...
            'NumSignalsSource','Property','NumSignals',2)
rootmusicangle = 
  phased.RootMUSICEstimator with properties:

                 SensorArray: [1x1 phased.ULA]
            PropagationSpeed: 299792458
          OperatingFrequency: 300000000
            NumSignalsSource: 'Property'
                  NumSignals: 2
    ForwardBackwardAveraging: false
            SpatialSmoothing: 0

Поскольку вектор отклика массивов ULA сопряжен симметричный, мы можем использовать усреднение прямого обратного (FB), чтобы выполнить расчеты с действительными матрицами и уменьшать вычислительную сложность. Основанные на FB средства оценки также имеют более низкое отклонение и уменьшают корреляцию между сигналами.

Чтобы применить прямое обратное усреднение, установите свойство ForwardBackwardAveraging средства оценки DOA корневой МУЗЫКИ к истине. В этом случае алгоритм корневой МУЗЫКИ также называется унитарным алгоритмом корневой МУЗЫКИ.

rootmusicangle.ForwardBackwardAveraging = true;

Выполните оценку DOA:

ang = rootmusicangle(signal)
ang = 1×2

   16.9960   21.9964

Мы можем также использовать средство оценки DOA ESPRIT. Как в случае корневой МУЗЫКИ, установленной ForwardBackwardAveraging свойство на true. Этот алгоритм также называется унитарным ESPRIT.

espritangle = phased.ESPRITEstimator('SensorArray',ula,...
             'OperatingFrequency',fc,'ForwardBackwardAveraging',true,...
             'NumSignalsSource','Property','NumSignals',2)
espritangle = 
  phased.ESPRITEstimator with properties:

                 SensorArray: [1x1 phased.ULA]
            PropagationSpeed: 299792458
          OperatingFrequency: 300000000
            NumSignalsSource: 'Property'
                  NumSignals: 2
            SpatialSmoothing: 0
                      Method: 'TLS'
    ForwardBackwardAveraging: true
                RowWeighting: 1

ang = espritangle(signal)
ang = 1×2

   21.9988   16.9748

Наконец, используйте средство оценки DOA MUSIC. MUSIC Также поддерживает прямое обратное усреднение. В отличие от ESPRIT и корневой МУЗЫКИ, MUSIC вычисляет пространственный спектр для заданных поперечных углов сканирования. Направления прибытия соответствуют peaks в MUSIC пространственный спектр.

musicangle = phased.MUSICEstimator('SensorArray',ula,...
             'OperatingFrequency',fc,'ForwardBackwardAveraging',true,...
             'NumSignalsSource','Property','NumSignals',2,...
             'DOAOutputPort',true)
musicangle = 
  phased.MUSICEstimator with properties:

                 SensorArray: [1x1 phased.ULA]
            PropagationSpeed: 299792458
          OperatingFrequency: 300000000
    ForwardBackwardAveraging: true
            SpatialSmoothing: 0
                  ScanAngles: [-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 ... ]
               DOAOutputPort: true
                  NumSignals: 2
            NumSignalsSource: 'Property'

[~,ang] = musicangle(signal)  
ang = 1×2

    17    22

plotSpectrum(musicangle)

Figure contains an axes object. The axes object with title MUSIC Spatial Spectrum contains an object of type line. This object represents 1 GHz.

Направления прибытия для MUSIC ограничиваются углами сканирования в ScanAngles свойство. Поскольку истинные направления прибытия в этот пример совпадают с поисковыми углами в ScanAngles, MUSIC обеспечивает точные угловые оценки DOA. На практике корневая МУЗЫКА обеспечивает превосходящее разрешение MUSIC. Однако алгоритм MUSIC может также использоваться для оценки DOA и азимут и вертикальное изменение с помощью 2D массива. Смотрите Направление Оценки Прибытия с Beamscan, MVDR и MUSIC.

Оценка количества источников сигнала

На практике вы обычно не знаете количество источников сигнала и должны оценить количество источников от полученного сигнала. Можно оценить количество источников сигнала путем определения 'Auto' для свойства NumSignalsSource и выбора 'AIC' или 'MDL' для свойства NumSignalsMethod. Для AIC Критерий информации о Akaike (AIC) используется, и для MDL, критерий минимальной длины описания (MDL) используется.

Прежде чем можно будет установить NumSignalsSource, необходимо выпустить объект DOA, потому что это заблокировано, чтобы повысить эффективность во время обработки.

release(espritangle);
espritangle.NumSignalsSource = 'Auto';
espritangle.NumSignalsMethod = 'AIC';
ang = espritangle(signal)
ang = 1×2

   21.9988   16.9748

Сокращение вычислительной сложности

В дополнение к прямому обратному усреднению другие методы могут уменьшать вычислительную сложность. Один из этих подходов должен решить эквивалентную задачу с уменьшаемыми размерностями в beamspace. В то время как алгоритм ESPRIT выполняет разложение собственного значения (EVD) 10x10 действительная матрица в нашем примере, beamspace версия может уменьшать проблему до EVD 3x3 действительная матрица. Этот метод использует априорное знание сектора, где сигналы расположены, чтобы расположить центр вентилятора луча. В этом примере укажите вентилятору луча на 20 ° в азимуте.

bsespritangle = phased.BeamspaceESPRITEstimator('SensorArray',ula,...
               'OperatingFrequency',fc,...
               'NumBeamsSource','Property','NumBeams',3,...
               'BeamFanCenter',20);
ang = bsespritangle(signal)
ang = 1×2

   21.9875   16.9943

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

rootwsfangle = phased.RootWSFEstimator('SensorArray',ula,...
          'OperatingFrequency',fc,'MaximumIterationCount',2);
ang = rootwsfangle(signal)
ang = 1×2

   21.9962   16.9961

Оптимизация производительности

В дополнение к усреднению FB можно использовать взвешивание строки, чтобы улучшать статистическую производительность пробела элемента средство оценки ESPRIT. Взвешивание строки является методом, который применяет различные веса к строкам матрицы подпространства сигнала. Весовой коэффициент строки определяет максимальный вес. В большинстве случаев это выбрано, чтобы быть как можно больше. Однако его значение никогда не может быть больше (N-1)/2, где N является числом элементов массива.

release(espritangle);
espritangle.RowWeighting = 4
espritangle = 
  phased.ESPRITEstimator with properties:

                 SensorArray: [1x1 phased.ULA]
            PropagationSpeed: 299792458
          OperatingFrequency: 300000000
            NumSignalsSource: 'Auto'
            NumSignalsMethod: 'AIC'
            SpatialSmoothing: 0
                      Method: 'TLS'
    ForwardBackwardAveraging: true
                RowWeighting: 4

ang = espritangle(signal)
ang = 1×2

   21.9884   17.0003

Оценка когерентных источников в лучевых средах

Если несколько источников коррелируются или когерентные (как в лучевых средах), пространственная ковариационная матрица становится неполным рангом, и основанные на подпространстве методы оценки DOA могут перестать работать. Чтобы показать это, смоделируйте полученный сигнал, состоявший из 4 узкополосных компонентов. Примите, что 2 из первых 3 сигналов являются многопутевыми отражениями первого источника, имея величины, равные 1/4 и 1/2 тот из первого источника, соответственно.

scov = eye(4);
magratio = [1;0.25;0.5];
scov(1:3,1:3) = magratio*magratio';

Все сигналы являются инцидентом при вертикальном изменении на 0 °, с углами инцидента азимута-23 °, 0 °, 12 ° и 40 °.

% Incident azimuth
az_ang = [-23 0 12 40];

% When the elevation is zero, the azimuth within [-90 90] is the same as
% the broadside angle.
el_ang = zeros(1,4);

% The received signals
signal = sensorsig(pos,Nsamp,[az_ang; el_ang],noisePwr,scov);
rng(rs);  % Restore random number generator

Сравните эффективность алгоритма DOA, когда источники будут когерентными. Чтобы упростить пример, запустите только одно испытание на алгоритм. Учитывая высокий ОСШ, результатами будет хороший индикатор точности оценки.

Во-первых, проверьте, что критерий AIC недооценивает количество источников, заставляя унитарный алгоритм ESPRIT дать неправильные оценки. AIC оценивает количество источников как два, потому что коррелируются три источника.

release(espritangle);
espritangle.NumSignalsSource = 'Auto';
espritangle.NumSignalsMethod = 'AIC';
ang = espritangle(signal)
ang = 1×2

  -15.3535   40.0024

Алгоритм корневого WSF устойчив в контексте коррелированых сигналов. С правильным количеством источников как вход алгоритм правильно оценивает направления прибытия.

release(rootwsfangle);
rootwsfangle.NumSignalsSource = 'Property';
rootwsfangle.NumSignals = 4;
ang = rootwsfangle(signal)
ang = 1×4

   40.0016  -22.9919   12.0693    0.0737

ESPRIT, корневой МУЗЫКЕ, и MUSIC, однако, не удается оценить правильные направления прибытия, даже если мы задаем количество источников и используем унитарные реализации.

release(rootmusicangle);
rootmusicangle.NumSignalsSource = 'Property';
rootmusicangle.NumSignals = 4;
rootmusicangle.ForwardBackwardAveraging = true;
ang = rootmusicangle(signal)
ang = 1×4

   40.0077  -22.8313    4.4976  -11.9038

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

release(rootmusicangle);
Nr = 2;    % Number of multipath reflections 
rootmusicangle.SpatialSmoothing = Nr
rootmusicangle = 
  phased.RootMUSICEstimator with properties:

                 SensorArray: [1x1 phased.ULA]
            PropagationSpeed: 299792458
          OperatingFrequency: 300000000
            NumSignalsSource: 'Property'
                  NumSignals: 4
    ForwardBackwardAveraging: true
            SpatialSmoothing: 2

ang = rootmusicangle(signal)
ang = 1×4

   40.0010  -22.9959   12.1376    0.1843

Сравнение алгоритмов DOA

Таким образом, ESPRIT, MUSIC, корневая МУЗЫКА и корневой WSF являются важными алгоритмами DOA, которые обеспечивают хорошую эффективность и разумную вычислительную сложность для ULAs. Унитарный ESPRIT, унитарная корневая МУЗЫКА и beamspace унитарный ESPRIT обеспечивают способы значительно уменьшать вычислительную стоимость средств оценки, также улучшая их производительность. корневой WSF особенно привлекателен в контексте коррелированых источников, потому что вопреки другим методам это не требует, чтобы пространственное сглаживание правильно оценило DOAs, когда количество источников известно.