EngeePhased.PhaseShiftBeamformer
|
Страница в процессе разработки. |
Формирователь узкополосного луча на основе фазового сдвига.
| Библиотека |
|
| Блок |
Описание
Системный объект EngeePhased.PhaseShiftBeamformer моделирует формирователь узкополосного луча на основе фазового сдвига. Задержка аппроксимируется с помощью фазового сдвига во временной области. Фазосдвигающий формирователь луча относится к семейству обычных формирователей луча.
Чтобы создать и использовать формирователь узкополосного луча на основе фазового сдвига, выполните следующие действия:
-
Создайте объект EngeePhased.PhaseShiftBeamformer и установите его свойства.
-
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
-
beamformer = EngeePhased.PhaseShiftBeamformer()— создает формирователь луча на основе фазового сдвига со значениями свойств по умолчанию. -
beamformer = EngeePhased.PhaseShiftBeamformer(Name=Value)— создает формирователь луча на основе фазового сдвига с заданными свойствами в виде парыName=Value, гдеName— имя свойства, аValue— соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.
Использование
-
Y = beamformer(X)— формирует узкополосный луч Y на основе фазового сдвига X. Чтобы использовать этот синтаксис, установите для свойства DirectionSource значение"Property"и задайте направление формирования луча с помощью свойства Direction. -
Y = beamformer(X,ANG)— использует входной аргумент ANG для установки направления формирования луча. Чтобы использовать этот синтаксис, установите для свойства DirectionSource значение"Input port". -
Y,W = beamformer(___)— возвращает весовые коэффициенты формирования луча W. Чтобы использовать этот синтаксис, установите для свойства WeightsOutputPort значениеtrue.
Аргументы
Входные аргументы
X — входной сигнал
комплексная матрица M на N
Details
Входной сигнал, заданный в виде комплексной матрицы на .
Если элемент антенной решетки содержит антенные подрешетки, — это количество антенных подрешеток; в противном случае — это количество элементов антенной решетки.
Размер первой размерности входной матрицы может меняться для имитации изменения длины сигнала. Изменение размера может происходить, например, в случае импульсной формы сигнала с переменной частотой повторения импульсов.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
ANG — направления формирования выходного сигнала
вещественный вектор-столбец 2 на 1 | вещественная матрица 2 на L
Details
Направления излучения сигналов, заданные как вещественный вектор-столбец на или матрица на , где — это количество направлений формирования луча. Каждый столбец имеет вид [AzimuthAngle;ElevationAngle].
Единицы измерения — градусы.
Азимутальный угол должен лежать между −180° и 180°, включительно. Угол места должен лежать в диапазоне от −90° до 90°, включительно.
Зависимости
Чтобы использовать этот аргумент, установите для свойства DirectionSource значение "Input port".
| Типы данных |
|
Выходные аргументы
Y — выходной сигнал, сформированный по лучу
комплексная матрица M на L
Details
Суперпозиция входных сигналов, возвращаемых в виде комплексной матрицы на , где — количество строк аргумента X, а — количество направлений формирования луча.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
W — весовые коэффициенты формирования луча
комплексная матрица N на L
Details
Комплексно сопряженные весовые коэффициенты формирования луча, возвращаемые в виде комплексной матрицы на , где — количество элементов антенной решетки, — количество направлений формирования луча.
Зависимости
Чтобы использовать этот аргумент, установите дял свойства DirectionSource значение true.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Свойства
#
DirectionSource —
источник направления формирования луча
String
Details
Источник направления формирования луча, заданный как "Property" (по умолчанию) или "Input port":
-
"Property"— укажите направление формирования луча с помощью свойства Direction -
Input port— укажите направление формирования луча с помощью входного аргумента ANG
#
WeightsNormalization —
подход к нормализации весовых коэффициентов формирователя луча
String
Details
Подход к нормализации весовых коэффициентов формирователя луча.
-
Если для этого свойства установлено значение
"Distortionless"(по умолчанию), коэффициент усиления в направлении формирования луча равен0дБ. -
Если для этого свойства задано значение
"Preserve power", норма весовых коэффициентов равна единице.
#
PropagationSpeed —
скорость распространения сигнала
Real number
Details
Скорость распространения сигнала, заданная как положительный скаляр. По умолчанию используется значение скорости света 299792458.
Единицы измерения — м/с.
#
OperatingFrequency —
рабочая частота
Real number
Details
Рабочая частота, заданная как положительный скаляр.
Значение по умолчанию — 3e8.
Единицы измерения — Гц.
#
WeightsOutputPort —
включение вывода весовых коэффициентов формирования луча
Logical
Details
Включение вывода весовых коэффициентов формирования луча, задается как false (по умолчанию) или true. Для получения весовых коэффициентов формирования луча установите для этого свойства значение true и используйте соответствующий выходной аргумент, W.
Если вы не хотите получать весовые коэффициенты, установите для этого свойства значение false.
#
NumPhaseShifterBits —
разрядность квантования фазовращателя
Real number
Details
Количество бит, используемых для квантования компонента фазового сдвига весовых коэффициентов вектора формирования луча или вектора управления, задается как целое неотрицательное число. Значение по умолчанию 0 означает, что квантование не выполняется.
# SensorArray — объект антенной решетки
Details
Объект антенной решетки, антенны из подрешеток или элемента антенной решетки. Антенная решетка может содержать подрешетки.
#
Direction —
направления формирования луча
Scalar / array of real numbers
Details
Направления формирования луча, заданные как вещественный вектор на или вещественная матрица на . В матрице каждый столбец задает отдельное направление формирования луча. Каждый столбец имеет вид [AzimuthAngle;ElevationAngle].
Азимутальный угол должен лежать между −180° и 180°, включительно. Угол места должен лежать в диапазоне от −90° до 90°, включительно.
Значение по умолчанию — [0; 0;;].
Единицы измерения — градусы.
Зависимости
Чтобы использовать это свойство, установите для свойства DirectionSource значение "Property".
Примеры
Фазовый формирователь луча с использованием ULA, направление формирования луча с помощью свойства
Details
Применим фазосдвиговое формирование луча к синусоидальному сигналу, принимаемому линейной антенной решеткой из 7 элементов. Направление формирования луча — азимут 45° и угол места 0°. Предположим, что решетка работает на частоте 300 МГц. Укажем направление формирования луча с помощью свойства.
Смоделируем синусоидальный сигнал, поступающий на решетку.
using EngeePhased
using Random
t = collect(0:1000)
fsignal = 0.01
y = sin.(2π * fsignal .* t)
c = 299_792_458.0
fc = 300e6
incidentAngle = [45.0, 0.0]
array = EngeePhased.ULA(NumElements=7)
collector = EngeePhased.Collector(Sensor=array,OperatingFrequency=fc,PropagationSpeed=c)
x = collector(y, incidentAngle)
noise = 0.1 .* (randn(size(x)) .+ 1im .* randn(size(x)))
rx = x .+ noise
Создадим фазосдвигающий формирователь луча, а затем сформируем луч для входных данных.
beamformer = EngeePhased.PhaseShiftBeamformer(SensorArray=array,
OperatingFrequency=fc,PropagationSpeed=c,
Direction=incidentAngle,WeightsOutputPort=true)
Получим сформированный сигнал и весовые коэффициенты формирователя луча.
y,w = beamformer(rx)
Построим график исходного сигнала в центральном элементе и сигнала, сформированного в результате формирования луча.
plot(t, real.(rx[:, 4]),
seriestype = :line, ls = :dot, color = :red,
label = "Original",
xlabel = "Time", ylabel = "Amplitude")
plot!(t, real.(y),
seriestype = :line, color = :blue,
label = "Beamformed")

Построим диаграмму направленности антенной решетки после применения весовых коэффициентов.
pattern(array,fc,[-180:180],0,PropagationSpeed=c,CoordinateSystem="polar",Weights=w)

Фазовый формирователь луча с использованием ULA, направление формирования луча с помощью входного аргумента
Details
Применим фазосдвиговое формирование луча к сигналу, принимаемому линейной антенной решеткой из 5 элементов. Направление формирования луча — азимут 45° и угол места 0°. Предположим, что решетка работает на частоте 300 МГц. Укажем направление формирования луча с помощью входного аргумента.
Смоделируем синусоидальный сигнал, поступающий на решетку.
using EngeePhased
using LinearAlgebra
using Random
function collectPlaneWave(array, x, incidentAngle, fc, c)
N = array.NumElements
az = deg2rad(incidentAngle[1])
el = deg2rad(incidentAngle[2])
d = c / fc / 2
u = cos(el) * cos(az)
n = -(N-1)/2 : (N-1)/2
a = exp.(+1im * 2π * (fc / c) * d .* n .* u)
return vec(x) * transpose(a)
end
t = collect(0:1000)
fsignal = 0.01
x = sin.(2π * fsignal .* t)
c = 299_792_458.0
fc = 300e6
incidentAngle = [45.0, 0.0]
array = EngeePhased.ULA(NumElements=5)
x = collectPlaneWave(array, x, incidentAngle, fc, c)
noise = 0.1 .* (randn(size(x)) .+ 1im .* randn(size(x)))
rx = x .+ noise
Создадим фазосдвигающий формирователь луча, а затем сформируем луч для входных данных.
beamformer = EngeePhased.PhaseShiftBeamformer(SensorArray=array,
OperatingFrequency=fc,PropagationSpeed=c,
DirectionSource="Input port",WeightsOutputPort=true)
Получим сформированный сигнал и весовые коэффициенты формирователя луча.
y,w = beamformer(rx,incidentAngle)
Построим график исходного сигнала в центральном элементе и сигнала, сформированного в результате формирования луча.
plot(t, real.(rx[:, 3]),
seriestype = :line, ls = :dot, color = :red,
label = "Original",
xlabel = "Time", ylabel = "Amplitude")
plot!(t, real.(y),
seriestype = :line, color = :blue,
label = "Beamformed")

Построим диаграмму направленности антенной решетки после применения весовых коэффициентов.
pattern(array,fc,[-180:180],0,PropagationSpeed=c,CoordinateSystem="rectangular",Weights=w)

Дополнительно
Формирование луча с фазовым сдвигом
Details
В формирователе луча с фазовым сдвигом используется обычный алгоритм формирования луча с задержкой и суммой. При формировании луча предполагается, что сигнал является узкополосным, поэтому фазовый сдвиг может приблизить требуемую задержку. При этом формирователь луча сохраняет мощность входящего сигнала.
Более подробная информация приведена в [1].
Точность данных
Details
Системный объект EngeePhased.PhaseShiftBeamformer поддерживает одинарную и двойную точность для входных данных, свойств и аргументов.
-
Если входные данные аргумента X имеют одинарную точность, то выходные данные имеют одинарную точность.
-
Если входные данные аргумента X имеют двойную точность, то выходные данные имеют двойную точность. Точность выходных данных не зависит от точности свойств и других аргументов.
Литература
-
Van Trees, H.L. Optimum Array Processing. New York, NY: Wiley-Interscience, 2002.
-
Johnson, Don H. and D. Dudgeon. Array Signal Processing. Englewood Cliffs, NJ: Prentice Hall, 1993.
-
Van Veen, B.D. and K. M. Buckley. Beamforming: A versatile approach to spatial filtering. IEEE ASSP Magazine, Vol. 5 No. 2 pp. 4–24.