step

Системный объект: фазированный. MUSICEstimator2D
Пакет: поэтапный

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

Синтаксис

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

Описание

Примечание

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

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

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

Примечание

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

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

расширить все

2-D MUSIC, заданный как phased.MUSICEstimator2D Системный объект.

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

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

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

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

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

расширить все

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

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

Зависимости

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

Примеры

расширить все

Предположим, что две синусоидальные волны частот 450 Гц и 600 Гц поражают URA с двух разных направлений. Сигналы поступают от -37 ° азимута, 0 ° повышения и 17 ° азимута, 20 ° повышения. Используйте 2-D MUSIC, чтобы оценить направления прихода двух сигналов. Рабочая частота массива составляет 150 МГц, и частота дискретизации сигнала составляет 8 кГц.

f1 = 450.0;
f2 = 600.0;
doa1 = [-37;0];
doa2 = [17;20];
fc = 150e6;
c = physconst('LightSpeed');
lam = c/fc;
fs = 8000;

Создайте URA с изотропными элементами по умолчанию. Установите область значений частотной характеристики элементов.

array = phased.URA('Size',[11 11],'ElementSpacing',[lam/2 lam/2]);
array.Element.FrequencyRange = [50.0e6 500.0e6];

Создайте два сигнала и добавьте случайный шум.

t = (0:1/fs:1).';
x1 = cos(2*pi*t*f1);
x2 = cos(2*pi*t*f2);
x = collectPlaneWave(array,[x1 x2],[doa1,doa2],fc);
noise = 0.1*(randn(size(x))+1i*randn(size(x)));

Создайте и выполните оценку 2-D MUSIC, чтобы найти направления прибытия.

estimator = phased.MUSICEstimator2D('SensorArray',array,...
    'OperatingFrequency',fc,...
    'NumSignalsSource','Property',...
    'DOAOutputPort',true,'NumSignals',2,...
    'AzimuthScanAngles',-50:.5:50,...
    'ElevationScanAngles',-30:.5:30);
[~,doas] = estimator(x + noise)
doas = 2×2

   -37    17
     0    20

Предполагаемые DOA точно соответствуют истинным DOA.

Постройте график 2-D пространственного спектра

plotSpectrum(estimator);

Figure contains an axes. The axes with title 2-D MUSIC Spatial Spectrum contains an object of type surface.

Предположим, что две синусоидальные волны частот 1,6 кГц и 1,8 кГц поражают дисковый массив с двух разных направлений. Интервал между элементами диска составляет 1/2 длины волны. Сигналы поступают от -31 ° азимута, -11 ° повышения и 35 ° азимута, 55 ° повышения. Используйте 2-D MUSIC, чтобы оценить направления прихода двух сигналов. Рабочая частота массива составляет 300 МГц, и частота дискретизации сигнала составляет 8 кГц.

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

f1 = 1.6e3;
f2 = 1.8e3;
doa1 = [-31;-11];
doa2 = [35;55];
fc = 300e6;
c = physconst('LightSpeed');
lam = c/fc;
fs = 8.0e3;

Создайте конформный массив с изотропными элементами по умолчанию. Сначала создайте URA, чтобы получить позиции элемента.

uraarray = phased.URA('Size',[21 21],'ElementSpacing',[lam/2 lam/2]);
pos = getElementPosition(uraarray);

Извлеките их подмножество, чтобы сформировать вписанный диск.

radius = 10.5*lam/2;
pos(:,sum(pos.^2) > radius^2) = [];

Затем создайте конформный массив, используя эти положения.

confarray = phased.ConformalArray('ElementPosition',pos);
viewArray(confarray)

Установите область значений частотной характеристики элементов.

confarray.Element.FrequencyRange = [50.0e6 600.0e6];

Создайте два сигнала и добавьте случайный шум.

t = (0:1/fs:1.5).';
x1 = cos(2*pi*t*f1);
x2 = cos(2*pi*t*f2);
x = collectPlaneWave(confarray,[x1 x2],[doa1,doa2],fc);
noise = 0.1*(randn(size(x)) + 1i*randn(size(x)));

Создайте и выполните оценку 2-D MUSIC, чтобы найти направления прибытия.

estimator = phased.MUSICEstimator2D('SensorArray',confarray,...
    'OperatingFrequency',fc,...
    'NumSignalsSource','Property',...
    'DOAOutputPort',true,'NumSignals',2,...
    'AzimuthScanAngles',-60:.1:60,...
    'ElevationScanAngles',-60:.1:60);
[~,doas] = estimator(x + noise)
doas = 2×2

    35   -31
    55   -11

Предполагаемые DOA точно соответствуют истинным DOA.

Постройте график 2-D пространственного спектра

plotSpectrum(estimator);

Figure contains an axes. The axes with title 2-D MUSIC Spatial Spectrum contains an object of type surface.

Введенный в R2016b