шаг

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

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

Синтаксис

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

Описание

Примечание

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

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

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

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

[Y,W] = step(___) возвращает дополнительный выходной параметр, W, как beamforming веса. Этот синтаксис доступен, когда вы устанавливаете свойство WeightsOutputPort на true. W является вектор-столбцом длины N. Какое-то время задержите формирователь луча, веса являются постоянными, потому что формирователь луча просто добавляет все каналы вместе и масштабирует результат сохранить степень сигнала.

Примечание

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

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

Примеры

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

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

Моделируйте прибывающий сигнал в широкополосном коллекторе.

microphone = phased.CustomMicrophoneElement('FrequencyVector',[20,20000],'FrequencyResponse',[1,1]);
array = phased.ULA('Element',microphone,'NumElements',11,'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);

Добавьте белый гауссов случайный шум в сигнал.

sigma = 0.2;
noise = sigma*randn(size(x));
rx = x + noise;

Beamform инцидентные сигналы с помощью формирователя луча с временной задержкой.

beamformer = phased.TimeDelayBeamformer('SensorArray',array,...
    'SampleRate',fs,'PropagationSpeed',c,...
    'Direction',incidentAngle);
y = beamformer(rx);

Постройте сигнал beamformed против инцидентного сигнала в среднем датчике массива.

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

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

|