Этот пример иллюстрирует несколько методов оценки направления поступления с высоким разрешением (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 используется метод 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-основанные оценщики также имеют меньшую дисперсию и уменьшают корреляцию между сигналами.
Чтобы применить усреднение вперед-назад, установите для свойства ForwardBackedAveraging оценщика 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, задайте свойству ForwardBackedAveraging значение 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 вычисляет пространственный спектр для заданных широкополосных углов сканирования. Направления поступления соответствуют пикам в пространственном спектре 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)

Направления прибытия на MUSIC ограничены углами сканирования в ScanAngles собственность. Потому что истинные направления прибытия в этом примере совпадают с углами поиска в ScanAngles, MUSIC предоставляет точные оценки угла DOA. На практике root-MUSIC обеспечивает превосходное разрешение для MUSIC. Однако алгоритм MUSIC может также использоваться для оценки DOA как по азимуту, так и по высоте с использованием массива 2-D. См. раздел Оценка направления поступления с помощью Beamscan, MVDR и MUSIC.
На практике вы, как правило, не знаете количество источников сигнала и должны оценить количество источников из принятого сигнала. Можно оценить количество источников сигнала, указав значение «Auto» для свойства NumDiscursedSource и выбрав значение «AIC» или «MDL» для свойства NumTachedMethod. Для AIC используется информационный критерий Акайке (AIC), а для MDL - критерий минимальной длины описания (MDL).
Перед установкой NumReservedSource необходимо деблокировать объект 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 давать неверные оценки. АПК оценивает число источников как два, поскольку три источника коррелируют.
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, 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 = Nrrootmusicangle =
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
Таким образом, ESPRIT, MUSIC, root-MUSIC и root-WSF являются важными алгоритмами DOA, которые обеспечивают хорошую производительность и разумную вычислительную сложность для ULA. Unitary ESPRIT, unitary root-MUSIC и beampace unitary ESPRIT обеспечивают способы значительного снижения вычислительных затрат оценщиков, одновременно повышая их производительность. root-WSF особенно привлекателен в контексте коррелированных источников, поскольку, в отличие от других методов, он не требует пространственного сглаживания для правильной оценки DOA, когда известно количество источников.