step

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

Выполните задержку LCMV формирования луча

Синтаксис

Y = step(H,X)
Y = step(H,X,XT)
Y = step(H,X,ANG)
[Y,W] = step(___)

Описание

Примечание

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

Y = step(H,X) выполняет задержку LCMV формирования луча на входе, X, и возвращает сформированный лучом выход в Y. X является M -by - N матрицей, где N - количество элементов массива. M должен быть больше длины конечной импульсной характеристики, указанной в FilterLength свойство. Y является вектор-столбец длины M.

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

Y = step(H,X,XT) использует XT в качестве обучающих выборок для вычисления весов формирования луча при установке TrainingInputPort свойство к true. XT является M -by - N матрицей, где N - количество элементов массива. M должен быть больше длины конечной импульсной характеристики, указанной в FilterLength свойство.

Y = step(H,X,ANG) использует ANG как направление формирования луча, когда вы задаете DirectionSource свойство к 'Input port'. ANG - вектор-столбец длины 2 в виде [AzimuthAngle; ElevationAngle] (в степенях). Угол азимута должен быть между -180 ° и 180 °, а угол возвышения должен быть между -90 ° и 90 °.

Можно объединить необязательные входные параметры, если заданы их разрешающие свойства: Y = step(H,X,XT,ANG)

[Y,W] = step(___) возвращает дополнительный выход, W, как веса формирования луча, когда вы устанавливаете WeightsOutputPort свойство к true. W - вектор-столбец длины L, где L - количество степеней свободы beamformer. Для LCMV-формирователя с временной задержкой количество степеней свободы определяется продукт количества элементов массива и длины фильтра, заданной значением FilterLength свойство.

Примечание

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

Все входные и выходные аргументы могут быть одинарной или двойной точностью.

Примеры

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

Примените задержку LCMV к 11-элементному акустическому массиву ULA. Элементами являются всенаправленные микрофоны. Падающий угол сигнала составляет -50 степени по азимуту и 30 степени по повышению. Падающий сигнал является FM щебетом с пропускной способностью 500 Гц. Скорость распространения - типичная скорость звука в воздухе, 340 м/с.

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

nElem = 11;
microphone = phased.OmnidirectionalMicrophoneElement(...
    'FrequencyRange',[20 20000]);
array = phased.ULA('Element',microphone,'NumElements',nElem,'ElementSpacing',0.04);
fs = 8000;
t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340;
collector = phased.WidebandCollector('Sensor',array,...
    'PropagationSpeed',c,'SampleRate',fs,...
    'ModulatedInput',false);
incidentAngle = [-50;30];
x = collector(x.',incidentAngle);
noise = 0.2*randn(size(x));
rx = x + noise;

Создайте и примените задержку LCMV beamformer. Задайте длину фильтра 5.

filterLength = 5;
constraintMatrix = kron(eye(filterLength),ones(nElem,1));
desiredResponseVector = eye(filterLength,1);
beamformer = phased.TimeDelayLCMVBeamformer('SensorArray',array,...
    'PropagationSpeed',c,'SampleRate',fs,'FilterLength',filterLength,...
    'Direction',incidentAngle,'Constraint',constraintMatrix,...
    'DesiredResponse',desiredResponseVector);
y = beamformer(rx);

Сравните выход лучевого форматора с входом для среднего датчика.

plot(t,rx(:,6),'r:',t,y)
xlabel('Time')
ylabel('Amplitude')
legend('Original','Beamformed')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original, Beamformed.

Алгоритмы

Алгоритм формирования луча является аналогом во временной области узкополосного линейного ограничивающего устройства с минимальным отклонением (LCMV). Алгоритм делает следующее:

  1. Управление массивом в направлении формирования луча.

  2. Применяет конечная импульсная характеристика к выходу каждого датчика для достижения заданных ограничений. Фильтр характерен для каждого датчика.

См. также

|