step

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

Формирование луча с использованием поддиапазонной фазовой перемены

Синтаксис

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) выполняет фазу сдвига формирования луча на входе, X, и возвращает сформированный лучом выход в Y.

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

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

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

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

Примечание

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

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

H

Объект Beamformer.

X

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

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

ANG

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

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

Y

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

W

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

FREQ

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

Примеры

расширить все

Примените поддиапазонное построение луча со сдвигом фазы к 11-элементному подводному ULA. Падающий угол широкополосного сигнала составляет 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;

Форма луча в направлении угла падения.

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

Постройте график действительной части исходного и лучистого сигналов.

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

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Original, Beamformed.

Постройте график диаграммы направленности для пяти частотных полос.

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

Figure contains an axes. The axes with title Azimuth Cut (elevation angle = 0.0°) contains 5 objects of type line. These objects represent 2.00000 kHz, 2.01562 kHz, 2.03125 kHz, 2.04688 kHz, 2.06250 kHz.

Алгоритмы

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

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

Ссылки

[1] Деревья фургонов, H. Optimum Array Processing. Нью-Йорк: Wiley-Interscience, 2002.

См. также

|