шаг

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

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

Y = step(H,X,XT) XT использования как учебные выборки, чтобы вычислить beamforming веса, когда вы устанавливаете свойство TrainingInputPort на true. XT является 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 на true. W является вектор-столбцом длины 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. Применяет КИХ-фильтр к выводу каждого датчика, чтобы достигнуть заданных ограничений. Фильтр характерен для каждого датчика.

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

|