phased.PhaseShiftBeamformer

Узкополосный формирователь луча сдвига фазы

Описание

phased.PhaseShiftBeamformer object реализует узкополосный формирователь луча сдвига фазы. Формирователь луча сдвига фазы аппроксимирует формирователь луча с временной задержкой для узкополосных сигналов сдвигом фазы прибывающий сигнал. Формирователь луча сдвига фазы принадлежит семейству обычных формирователей луча.

К сигналам beamform, прибывающим в массив:

  1. Создайте phased.PhaseShiftBeamformer объект и набор его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.

Создание

Описание

beamformer = phased.PhaseShiftBeamformer создает Систему формирователя луча сдвига фазы object™, beamformer, со значениями свойств по умолчанию.

beamformer = phased.PhaseShiftBeamformer(Name,Value) создает формирователь луча сдвига фазы с каждым свойством Name установите на заданный Value. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN). Заключите каждое имя свойства в одинарные кавычки.

Пример: beamformer = phased.PhaseShiftBeamformer('SensorArray',phased.URA,'OperatingFrequency',300e6) устанавливает сенсорную матрицу на универсальный прямоугольный массив (URA) со значениями свойств URA по умолчанию. Формирователь луча имеет рабочую частоту 300 МГц.

Свойства

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

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

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.

Сенсорная матрица в виде Системного объекта массивов, принадлежащего Phased Array System Toolbox. Сенсорная матрица может содержать подрешетки.

Пример: phased.URA

Скорость распространения сигнала в виде положительной скалярной величины с действительным знаком. Модули исчисляются в метрах в секунду. Скорость распространения по умолчанию является значением, возвращенным physconst('LightSpeed').

Пример: 3e8

Типы данных: single | double

Рабочая частота в виде положительной скалярной величины. Модули находятся в Гц.

Пример: 1e9

Типы данных: single | double

Источник beamforming направления в виде 'Property' или 'Input port'. Задайте, прибывает ли beamforming направление из Direction свойство этого объекта или от входного параметра, ANG. Значения этого свойства:

'Property'Задайте beamforming направление с помощью Direction свойство.
'Input port'Задайте beamforming направление с помощью входного параметра, ANG.

Типы данных: char

Направления Beamforming в виде с действительным знаком 2 1 вектор или 2 с действительным знаком L матрицей. Для матрицы каждый столбец задает различное beamforming направление. Каждый столбец имеет форму [AzimuthAngle;ElevationAngle]. Углы азимута должны находиться между-180 ° и 180 °, и углы возвышения должны находиться между-90 ° и 90 °. Все углы заданы относительно системы локальной координаты массива. Модули в градусах.

Пример: [40;30]

Зависимости

Чтобы включить это свойство, установите DirectionSource свойство к 'Property'.

Типы данных: single | double

Количество битов раньше квантовало компонент сдвига фазы формирователя луча или регулирующий векторные веса в виде неотрицательного целого числа. Значение нуля указывает, что никакое квантование не выполняется.

Пример 5

Типы данных: single | double

Если вы устанавливаете это значение свойства на 'Distortionless', усиление в beamforming направлении составляет 0 дБ. Если вы устанавливаете это значение свойства на 'Preserve power', норма весов является единицей.

Пример: 'Preserve power'

Типы данных: char

Включите выход beamforming весов в виде false или true. Чтобы получить beamforming веса, установите это свойство на true и используйте соответствующий выходной аргумент, W. Если вы не хотите получать веса, установите это свойство на false.

Типы данных: логический

Использование

Описание

пример

Y = beamformer(X) выполняет сдвиг фазы beamforming на входном сигнале, X, и возвращает beamformed выходной параметр в Y. Чтобы использовать этот синтаксис, установите DirectionSource на 'Property' и набор beamforming направление с помощью свойства Direction.

пример

Y = beamformer(X,ANG) использует ANG входной параметр, чтобы установить beamforming направление. Чтобы использовать этот синтаксис, установите свойство DirectionSource на 'Input port'.

[Y,W] = beamformer(___) возвращает beamforming веса, W. Чтобы использовать этот синтаксис, установите свойство WeightsOutputPort на true.

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

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

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

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

Типы данных: single | double
Поддержка комплексного числа: Да

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

Пример: [40;10]

Зависимости

Чтобы включить этот аргумент, установите свойство DirectionSource на 'Input port'.

Типы данных: single | double

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

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

Выходной параметр Beamformed, возвращенный как M с комплексным знаком-by-L матрица, где M является количеством строк X и L является количеством beamforming направлений.

Типы данных: single | double
Поддержка комплексного числа: Да

Веса Beamforming, возвращенные как N с комплексным знаком-by-L матрица. Если сенсорная матрица содержит подрешетки, N является количеством подрешеток; в противном случае N является числом элементов. L является количеством beamforming направлений.

Зависимости

Чтобы включить этот выход, установите свойство DirectionSource на true.

Типы данных: single | double
Поддержка комплексного числа: Да

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

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

stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

свернуть все

Примените сдвиг фазы beamforming к сигналу sinewave, полученному ULA с 7 элементами. beamforming направление является азимутом на 45 ° и вертикальным изменением на 0 °. Примите, что массив действует на уровне 300 МГц. Задайте beamforming направление с помощью Direction свойство.

Симулируйте сигнал.

t = (0:1000)';
fsignal = 0.01;
x = sin(2*pi*fsignal*t);
c = physconst('Lightspeed');
fc = 300e6;
incidentAngle = [45;0];
array = phased.ULA('NumElements',7);
x = collectPlaneWave(array,x,incidentAngle,fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x + noise;

Настройте формирователь луча сдвига фазы и затем beamform входные данные.

beamformer = phased.PhaseShiftBeamformer('SensorArray',array,...
    'OperatingFrequency',fc,'PropagationSpeed',c,...
    'Direction',incidentAngle,'WeightsOutputPort',true);
[y,w] = beamformer(rx);

Постройте исходный сигнал в среднем элементе и сигнал beamformed.

plot(t,real(rx(:,4)),'r:',t,real(y))
xlabel('Time (sec)')
ylabel('Amplitude')
legend('Input','Beamformed')

Постройте диаграмму направленности массивов после применения весов.

pattern(array,fc,[-180:180],0,'PropagationSpeed',c,'Type',...
    'powerdb','CoordinateSystem','polar','Weights',w)

Примените сдвиг фазы beamforming к сигналу, полученному ULA с 5 элементами. beamforming направление является азимутом на 45 ° и вертикальным изменением на 0 °. Примите, что массив действует на уровне 300 МГц. Задайте beamforming направление с помощью входного порта.

Симулируйте сигнал sinewave, прибывающий в массив.

t = (0:1000)';
fsignal = 0.01;
x = sin(2*pi*fsignal*t);
c = physconst('LightSpeed');
fc = 300e6;
incidentAngle = [45;0];
array = phased.ULA('NumElements',5);
x = collectPlaneWave(array,x,incidentAngle,fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x + noise;

Создайте формирователь луча сдвига фазы и затем beamform входные данные.

beamformer = phased.PhaseShiftBeamformer('SensorArray',array,...
    'OperatingFrequency',fc,'PropagationSpeed',c,...
    'DirectionSource','Input port','WeightsOutputPort',true);

Получите сигнал beamformed и веса формирователя луча.

[y,w] = beamformer(rx,incidentAngle);

Постройте исходный сигнал в среднем элементе и сигнал beamformed.

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

Постройте диаграмму направленности массивов после применения весов.

pattern(array,fc,[-180:180],0,'PropagationSpeed',c,'CoordinateSystem','rectangular','Weights',w)

Алгоритмы

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

Ссылки

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

[2] Джонсон, Дон Х. и D. Обида. Обработка сигналов массивов. Englewood Cliffs, NJ: Prentice Hall, 1993.

[3] Ван Вин, Б.Д. и К. М. Бакли. “Beamforming: универсальный подход к пространственной фильтрации”. IEEE Журнал ASSP, стр Издания 5 № 2 4–24.

Расширенные возможности

Введенный в R2011a