step

Системный объект: поэтапный. 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.

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

|