step

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

Выполните задержку LCMV beamforming

Синтаксис

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 beamforming на входе, X, и возвращает beamformed выходной параметр в YX M-by-N матрица, где N является числом элементов сенсорной матрицы. M должен быть больше, чем КИХ-длина фильтра, заданная в FilterLength свойство. Y вектор-столбец длины M.

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

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

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

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

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

Примечание

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

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

Примеры

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

Примените формирователь луча LCMV с временной задержкой к акустическому массиву ULA с 11 элементами. Элементы являются ненаправленными микрофонами. Инцидентный угол сигнала является-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 с временной задержкой. Задайте filterlength 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')

Алгоритмы

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

  1. Регулирует массив к beamforming направлению.

  2. Применяет КИХ-фильтр к выходу каждого датчика, чтобы достигнуть заданных ограничений. Фильтр характерен для каждого датчика.

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

|