шаг

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

Оцените направление прибытия с помощью MUSIC

Синтаксис

spectrum = step(estimator,X)
[spectrum,doa] = step(estimator,X)

Описание

Примечание

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

spectrum = step(estimator,X) возвращает спектр MUSIC для сигнала, заданного X.

[spectrum,doa] = step(estimator,X) также возвращает поперечные направления сигнала прибытия, doa. Чтобы использовать этот синтаксис, установите свойство DOAOutputPort на true.

Примечание

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

Входные параметры

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

Средство оценки MUSIC, заданное как Системный объект phased.MUSICEstimator.

Пример: phased.MUSICEstimator

Полученный сигнал, заданный как M-by-N матрица с комплексным знаком. Количество M является количеством демонстрационных значений (снимки состояния), содержавшиеся в сигнале и N, является количеством элементов датчика в массиве.

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

Пример: [[0;1;2;3;4;3;2;1;0],[1;2;3;4;3;2;1;0;0]]

Типы данных: double
Поддержка комплексного числа: Да

Выходные аргументы

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

MUSIC пространственный спектр, возвращенный как неотрицательный, K с действительным знаком - вектор-столбец длины, представляющий значение предполагаемого MUSIC пространственный спектр. Каждая запись соответствует углу, заданному свойством ScanAngles.

Направления прибытия сигналов, возвращенных как L с действительным знаком - вектор - строка длины. Направление угла падения является углом между исходным направлением и осью массивов или поперечным углом. Угловые модули в градусах. L является количеством сигналов, заданных свойством NumSignals или вычисленным использованием метода, заданного свойством NumSignalsMethod.

Зависимости

Чтобы включить этот выходной аргумент, установите свойство DOAOutputPort на true.

Примеры

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

Оцените DOAs двух сигналов, полученных стандартным ULA с 10 элементами наличие интервала элемента 1 метра. Затем постройте спектр MUSIC.

Примечание: можно заменить каждый вызов функции с эквивалентным синтаксисом step. Например, замените myObject(x) на step(myObject,x).

Создайте массив ULA. Антенна рабочая частота составляет 150 МГц.

fc = 150.0e6;
array = phased.ULA('NumElements',10,'ElementSpacing',1.0);

Создайте прибывающие сигналы в ULA. Истинное направление прибытия первого сигнала составляет 10 ° в азимуте и 20 ° в повышении. Направление второго сигнала составляет 60 ° в азимуте и-5 ° в повышении.

fs = 8000.0;
t = (0:1/fs:1).';
sig1 = cos(2*pi*t*300.0);
sig2 = cos(2*pi*t*400.0);
sig = collectPlaneWave(array,[sig1 sig2],[10 20; 60 -5]',fc);
noise = 0.1*(randn(size(sig)) + 1i*randn(size(sig)));

Оцените DOAs.

estimator = phased.MUSICEstimator('SensorArray',array,...
    'OperatingFrequency',fc,...
    'DOAOutputPort',true,'NumSignalsSource','Property',...
    'NumSignals',2);
[y,doas] = estimator(sig + noise);
doas = broadside2az(sort(doas),[20 -5])
doas = 1×2

    9.5829   60.3813

Постройте спектр MUSIC.

plotSpectrum(estimator,'NormalizeResponse',true)

Во-первых, оцените DOAs двух сигналов, полученных стандартным ULA с 10 элементами наличие интервала элемента половины длины волны. Затем постройте пространственный спектр.

Примечание: можно заменить каждый вызов функции с эквивалентным синтаксисом step. Например, замените myObject(x) на step(myObject,x).

Антенна рабочая частота составляет 150 МГц. Направления прибытия двух сигналов разделяются на 2 °. Направление первого сигнала является азимутом на 30 ° и повышением на 0 °. Направление второго сигнала является азимутом на 32 ° и повышением на 0 °. Оцените количество сигналов с помощью критерия Минимальной длины описания (MDL).

Создайте сигналы, прибывающие в ULA.

fs = 8000;
t = (0:1/fs:1).';
f1 = 300.0;
f2 = 600.0;
sig1 = cos(2*pi*t*f1);
sig2 = cos(2*pi*t*f2);
fc = 150.0e6;
c = physconst('LightSpeed');
lam = c/fc;
array = phased.ULA('NumElements',10,'ElementSpacing',0.5*lam);
sig = collectPlaneWave(array,[sig1 sig2],[30 0; 32 0]',fc);
noise = 0.1*(randn(size(sig)) + 1i*randn(size(sig)));

Оцените DOAs.

estimator = phased.MUSICEstimator('SensorArray',array,...
    'OperatingFrequency',fc,'DOAOutputPort',true,...
    'NumSignalsSource','Auto','NumSignalsMethod','MDL');
[y,doas] = estimator(sig + noise);
doas = broadside2az(sort(doas),[0 0])
doas = 1×2

   30.0000   32.0000

Постройте спектр MUSIC.

plotSpectrum(estimator,'NormalizeResponse',true)

Смотрите также

Системные объекты

Введенный в R2017b