step

Системный объект: поэтапный. RootMUSICEstimator
Пакет: поэтапный

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

Синтаксис

ANG = step(H,X)
ANG = step(H,X,ElAng)

Описание

Примечание

Запуск в R2016b, вместо того, чтобы использовать step метод, чтобы выполнить операцию, заданную Системой object™, можно вызвать объект с аргументами, как будто это была функция. Например, y = step(obj,x) и y = obj(x) выполните эквивалентные операции.

ANG = step(H,X) оценивает направление прибытия (DOA) от X сигнала использование средства оценки DOA HX матрица, столбцы которой соответствуют каналам сигнала. ANG вектор-строка из предполагаемых поперечных углов (в градусах). Можно задать аргумент X как одинарная или двойная точность.

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

ANG = step(H,X,ElAng) задает, кроме того, принятые углы вертикального изменения сигналов. Этот синтаксис только применим когда SensorArray свойство объекта задает универсальный круговой массив (UCA). ElAng скаляр между-90 ° и 90 ° и применяется ко всем сигналам. Углы вертикального изменения для всех сигналов должны быть эквивалентными требуемый алгоритмом phase mode excitation. Можно задать аргумент ElAng как одинарная или двойная точность.

Примечание

Объект выполняет инициализацию в первый раз, когда объект выполняется. Эта инициализация блокирует ненастраиваемые свойства (MATLAB) и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете ненастраиваемое свойство или входную спецификацию, Системный объект выдает ошибку. Чтобы изменить ненастраиваемые свойства или входные параметры, необходимо сначала вызвать release метод, чтобы разблокировать объект.

Примеры

развернуть все

Оцените DOA двух сигналов, полученных стандартной универсальной линейной матрицей (ULA) с 10 элементами, имеющей интервал элемента 1 метра. Антенна рабочая частота составляет 150 МГц. Фактическое направление первого сигнала является 10 градусами в области азимута и 20 градусами в области вертикального изменения. Направление второго сигнала является 45 градусами в области азимута и 60 градусами в области вертикального изменения.

fs = 8000;
t = (0:1/fs:1).';
x1 = cos(2*pi*t*300);
x2 = cos(2*pi*t*400);
sULA = phased.ULA('NumElements',10,...
    'ElementSpacing',1);
sULA.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(sULA,[x1 x2],[10 20;45 60]',fc);
rng default;
noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x)));
sDOA = phased.RootMUSICEstimator('SensorArray',sULA,...
    'OperatingFrequency',fc,...
    'NumSignalsSource','Property',...
    'NumSignals',2);
doas = step(sDOA,x + noise);
az = broadside2az(sort(doas),[20 60])
az = 1×2

   10.0001   45.0107

Используя алгоритм корневой МУЗЫКИ, оцените угол азимута прибытия двух сигналов, полученных UCA с 15 элементами наличие 1,5-метрового радиуса. Антенна рабочая частота составляет 150 МГц. Фактическое направление прибытия первого сигнала является 10 градусами в области азимута и 4 градусами в области вертикального изменения. Направление прибытия второго сигнала является 45 градусами в области азимута и-2 градусами в области вертикального изменения. В оценке направлений прибытия примите, что сигналы прибывают от 0 вертикальных изменений степеней.

Установите частоты сигналов к 500 и 600 Гц. Установите частоту дискретизации на 8 кГц и рабочую частоту к 150 МГц. Затем создайте сгенерированные модулированные сигналы, массив UCA и сигналы плоской волны.

fs = 8000;
fc = 150e6;
t = (0:1/fs:1).';
x1 = cos(2*pi*t*500);
x2 = cos(2*pi*t*600);
sUCA = phased.UCA('NumElements',15,...
    'Radius',1.5);
x = collectPlaneWave(sUCA,[x1 x2],[10 4; 45 -2]',fc);

Добавьте случайный комплексный гауссов белый шум в сигналы.

rs = RandStream('mt19937ar','Seed',0);
noise = 0.1/sqrt(2)*(randn(rs,size(x))+1i*randn(rs,size(x)));

Создайте поэтапное. Системный объект RootMUSICEstimator

sDOA = phased.RootMUSICEstimator('SensorArray',sUCA,...
    'OperatingFrequency',fc,...
    'NumSignalsSource','Property',...
    'NumSignals',2);

Решите для углов азимута для нулевого вертикального изменения степеней.

elang = 0;
doas = step(sDOA, x + noise, elang);
az = sort(doas)
az = 1×2

    9.9815   44.9986