шаг

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

Beamforming с помощью перемены фазы поддиапазона

Синтаксис

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

Описание

Примечание

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

Y = step(H,X) выполняет сдвиг фазы поддиапазона beamforming на входе, X, и возвращает beamformed выходной параметр в Y.

Y = step(H,X,ANG) использование ANG как beamforming направление. Этот синтаксис доступен, когда вы устанавливаете свойство DirectionSource на 'Input port'.

[Y,W] = step(___) возвращает beamforming веса, W. Этот синтаксис доступен, когда вы устанавливаете свойство WeightsOutputPort на true.

[Y,FREQ] = step(___) возвращает центральные частоты поддиапазонов, FREQ. Этот синтаксис доступен, когда вы устанавливаете свойство SubbandsOutputPort на true.

[Y,W,FREQ] = step(___) возвращает beamforming веса и центральные частоты поддиапазонов. Этот синтаксис доступен, когда вы устанавливаете свойство WeightsOutputPort на true и устанавливаете свойство SubbandsOutputPort на true.

Примечание

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

Входные параметры

H

Объект Beamformer.

X

Входной сигнал, заданный как M-by-N матрица. Если сенсорная матрица содержит подмассивы, N является количеством подмассивов; в противном случае N является числом элементов. Этот аргумент может быть задан как одинарная или двойная точность.

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

ANG

Направления Beamforming, заданные как матрица 2D строки. Каждый столбец имеет форму [AzimuthAngle; ElevationAngle], в градусах. Каждый угол азимута должен быть между –180 и 180 градусами, и каждый угол повышения должен быть между –90 и 90 градусами. Этот аргумент может быть задан как одинарная или двойная точность.

Выходные аргументы

Y

Beamformed вывод. Y является M-by-L матрица, где M является количеством строк X, и L является количеством beamforming направлений. Этот аргумент может быть возвращен как одинарная или двойная точность.

W

Веса Beamforming. W имеет размерности N-by-K-by-L. K является количеством поддиапазонов в свойстве NumSubbands. L является количеством beamforming направлений. Если сенсорная матрица содержит подмассивы, N является количеством подмассивов; в противном случае N является числом элементов. Каждый столбец W задает узкополосную связь beamforming веса, используемые в соответствующем поддиапазоне для соответствующего направления. Этот аргумент может быть возвращен как одинарная или двойная точность.

FREQ

Центральные частоты поддиапазонов. FREQ является вектор-столбцом длины K, где K является количеством поддиапазонов в свойстве NumSubbands. Этот аргумент может быть возвращен как одинарная или двойная точность.

Примеры

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

Примените сдвиг фазы поддиапазона beamforming к подводному ULA с 11 элементами. Инцидентный угол широкополосного сигнала составляет 10 ° в азимуте и 30 ° в повышении. Несущая частота составляет 2 кГц.

Создайте ULA.

antenna = phased.ULA('NumElements',11,'ElementSpacing',0.3);
antenna.Element.FrequencyRange = [20 20000];

Создайте сигнал щебета с шумом.

fs = 1e3;
carrierFreq = 2e3;
t = (0:1/fs:2)';
x = chirp(t,0,2,fs);
c = 1500;
collector = phased.WidebandCollector('Sensor',antenna, ...
    'PropagationSpeed',c,'SampleRate',fs,...
    'ModulatedInput',true,'CarrierFrequency',carrierFreq);
incidentAngle = [10;30];
x = collector(x,incidentAngle);
noise = 0.3*(randn(size(x)) + 1j*randn(size(x)));
rx = x + noise;

Beamform в направлении инцидентного угла.

beamformer = phased.SubbandPhaseShiftBeamformer('SensorArray',antenna, ...
    'Direction',incidentAngle,'OperatingFrequency',carrierFreq, ...
    'PropagationSpeed',c,'SampleRate',fs,'SubbandsOutputPort',true, ...
    'WeightsOutputPort',true);
[y,w,subbandfreq] = beamformer(rx);

Постройте действительную часть сигналов beamformed и оригинала.

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

Постройте шаблон ответа для пяти диапазонов частот.

pattern(antenna,subbandfreq(1:5).',[-180:180],0,'PropagationSpeed',c, ...
    'CoordinateSystem','rectangular','Weights',w(:,1:5))
legend('location','SouthEast')

Алгоритмы

Фаза поддиапазона переключает формирователь луча, разделяет сигнал на несколько поддиапазонов и применяет узкополосный сдвиг фазы beamforming к сигналу в каждом поддиапазоне. Сигналы beamformed во всех поддиапазонах перегруппированы, чтобы сформировать выходной сигнал.

Для получения дальнейшей информации см. [1].

Ссылки

[1] Деревья фургона, H. Оптимальная обработка матриц. Нью-Йорк: Wiley-межнаука, 2002.

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

|