шаг

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

Выполните пространственную оценку спектра

Синтаксис

Y = step(H,X)
[Y,ANG] = step(H,X)

Описание

Примечание

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

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

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

[Y,ANG] = step(H,X) возвращает дополнительный вывод ANG как направление прибытия (DOA) сигнала, когда свойство DOAOutputPort верно. ANG является вектором - строкой из предполагаемых поперечных углов (в градусах).

Примечание

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

Примеры

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

Во-первых, оцените DOAs двух сигналов, полученных стандартным ULA с 10 элементами с интервалом элемента 1 метра. Антенна рабочая частота составляет 150 МГц. Фактическое направление первого сигнала составляет 10 ° в азимуте и 20 ° в повышении. Направление второго сигнала составляет 60 ° в азимуте и −5 ° в повышении. Затем постройте пространственный спектр MVDR.

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

Создайте сигналы с добавленным шумом. Затем создайте Систему ULA object™.

fs = 8000;
t = (0:1/fs:1).';
x1 = cos(2*pi*t*300);
x2 = cos(2*pi*t*400);
array = phased.ULA('NumElements',10,'ElementSpacing',1);
array.Element.FrequencyRange = [100e6 300e6];
fc = 150.0e6;
x = collectPlaneWave(array,[x1 x2],[10 20;60 -5]',fc);
noise = 0.1*(randn(size(x)) + 1i*randn(size(x)));

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

estimator = phased.MVDREstimator('SensorArray',array,...
    'OperatingFrequency',fc,'DOAOutputPort',true,'NumSignals',2);

Оцените DOAs.

[y,doas] = estimator(x + noise);
doas = broadside2az(sort(doas),[20 -5])
doas = 1×2

    9.5829   60.3813

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

plotSpectrum(estimator)