exponenta event banner

шаг

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

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

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

Примечание

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

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

Примеры

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

Применить формирователь луча LCMV с временной задержкой к 11-элементной акустической матрице ULA. Элементы представляют собой вездеходные микрофоны. Угол падения сигнала -50 градусов по азимуту и 30 градусов по отметке. Падающий сигнал представляет собой чирп ЧМ с полосой пропускания 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 с временной задержкой. Укажите длину фильтра, равную 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. Применяет фильтр FIR к выходному сигналу каждого датчика для достижения заданных ограничений. Фильтр предназначен для каждого датчика.

См. также

|