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

Этот пример иллюстрирует несколько методов оценки направления прибытия (DOA) с высоким разрешением. В нем представлены варианты алгоритмов MUSIC, root-MUSIC, ESPRIT и root-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, используйте метод root-MUSIC. Создайте оценку DOA, используя алгоритм root-MUSIC.

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 оценщика root-MUSIC DOA в true. В этом случае алгоритм root-MUSIC также называется унитарным алгоритмом root-MUSIC.

rootmusicangle.ForwardBackwardAveraging = true;

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

ang = rootmusicangle(signal)
ang = 1×2

   16.9960   21.9964

Мы также можем использовать оценку ESPRIT DOA. Как и в случае root-MUSIC, задайте значение свойства 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

Наконец, используйте оценку MUSIC DOA. MUSIC также поддерживает прямое-обратное среднее. В отличие от ESPRIT и root-MUSIC, 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: [1x181 double]
               DOAOutputPort: true
                  NumSignals: 2
            NumSignalsSource: 'Property'

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

    17    22

plotSpectrum(musicangle)

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

Направления прибытия для MUSIC ограничены углами скана в ScanAngles свойство. Потому что истинные направления прибытия в этом примере совпадают с углами поиска в ScanAngles, MUSIC предоставляет точные оценки угла DOA. На практике root-MUSIC обеспечивает превосходное разрешение по сравнению с MUSIC. Однако алгоритм MUSIC может также использоваться для оценки DOA как в азимуте, так и на высоте с помощью 2-D массива. Смотрите оценку направления прибытия с 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

Уменьшение вычислительной сложности

В дополнение к прямому и обратному усреднению, другие методы могут уменьшить вычислительную сложность. Одним из таких подходов является решение эквивалентной задачи с уменьшенными размерностями в пространстве луча. В то время как алгоритм ESPRIT выполняет разложение собственных значений (EVD) действительной матрицы 10x10 в нашем примере, версия пространства луча может уменьшить задачу до 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

   16.9961   21.9962

Оптимизация эффективности

В дополнение к усреднению 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

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

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

   40.0016  -22.9919   12.0693    0.0737

ESPRIT, root-MUSIC и 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

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

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, root-MUSIC и root-WSF являются важными алгоритмами DOA, которые обеспечивают хорошую эффективность и разумную вычислительную сложность для ULA. Унитарные ESPRIT, унитарные root-MUSIC и beamspace унитарные ESPRIT обеспечивают способы значительно снизить вычислительные затраты оценщиков, одновременно улучшая их эффективность. root-WSF особенно привлекателен в контексте коррелированных источников, потому что, вопреки другим способам, он не требует пространственного сглаживания, чтобы правильно оценить DOA, когда количество источников известно.