AnyMath 文档

EngeePhased.PhaseShiftBeamformer

页面进行中。

基于相移的窄带波束成形器。

库::`[医]工程师` 座:: 相移波束形成器

资料描述

*EngeePhased系统对象。PhaseShiftBeamformer*模拟基于相移的窄带波束成形器。 延迟使用时域中的相移来近似。 移相波束形成器属于传统波束形成器家族。

要创建和使用窄带相移波束成形器,请按照以下步骤操作:

  1. 创建*EngeePhased对象。PhaseShiftBeamformer*并设置其属性。

  2. 用参数调用对象,就好像它是一个函数一样。

若要了解有关如何使用系统对象的详细信息,请参阅 AnyMath系统对象.

语法

创造

  • 波束形成器=EngeePhased。PhaseShiftBeamformer() -使用默认属性值创建基于相移的波束形成器。

  • 波束形成器=EngeePhased。PhaseShiftBeamformer(名称=值) -以一对形式创建具有指定属性的相移光束整形器 名称=值,在哪里 姓名 -物业的名称,以及 价值 -适当的值。 您可以指定多个对 «名称-值» 对的顺序并不重要。 未指定的属性保留其默认值。

使用

  • Y=波束形成器(X) -基于相移*X*生成窄带波束*Y*。 若要使用此语法,请设置*DirectionSource*值 "财产" 并使用*Direction*设置射线形成的方向。

  • Y=波束形成器(X,ANG) -使用输入参数*ANG*设置射线形成的方向。 若要使用此语法,请设置*DirectionSource*值 "输入端口".

  • Y,W=波束形成器(___) -返回波束赋形的加权系数*W*。 若要使用此语法,请设置*WeightsOutputPort*值 真的.

争论

输入参数

X-输入信号

+ 复矩阵M乘N

Details

输入信号,指定为复数矩阵 上 .

如果天线阵元包含天线子晶格, -这是天线子晶格的数量;否则 -这是天线阵元的数量。

输入矩阵的第一维的大小可以改变以模拟信号长度的变化。 例如在具有可变脉冲重复率的脉冲波形的情况下可以发生大小的变化。

数据类型

漂浮64, 漂浮64</无翻译> 支持复数::是

ANG-输出信号生成方向

+ 实向量是2乘1列 | L上的实矩阵2

Details

信号的辐射方向,指定为实列向量 上 或矩阵 上 ,在哪里 -这是束形成方向的数量。 每列都有表单 [AzimuthAngle;ElevationAngle].

测量单位是度。

方位角应介于 −180° 和 180°,包容性。 座椅的角度应在 −90° 以前 90°,包容性。

依赖关系

若要使用此参数,请将属性设置为*DirectionSource*value "输入端口".

数据类型

漂浮物32, 漂浮64</无翻译>

输出参数

*Y*是光束产生的输出信号

+ L上的复数矩阵M

Details

作为复矩阵返回的输入信号的叠加 上 ,在哪里 -参数*X*的行数,以及 -束形成方向的数量。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

W—波束形成的加权系数

+ 复数n乘l矩阵

Details

复共轭波束形成权值作为复矩阵返回 上 ,在哪里 -天线阵元的数量, -束形成方向的数量。

依赖关系

若要使用此参数,请设置以下属性*DirectionSource*value 真的.

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

特征

# DirectionSource — 束形成方向的源
String

Details

束形成方向的源极,设为 "财产" (默认情况下)或 "输入端口":

  • "财产" -使用*Direction指定射线形成的方向*

  • 输入端口 -使用输入参数*ANG指定射线形成的方向*

# WeightsNormalization — 一种波束成形器加权系数归一化的方法
String

Details

对波束成形器的加权系数进行归一化的方法。

*如果此属性设置为 "脝陆脤篓" (默认情况下),波束成形方向的增益为 0 分贝。

*如果为此属性设置了值 "保留权力",加权系数的范数等于一。

# PropagationSpeed — 信号传播速度
Real number

Details

信号的传播速度,设为正标量。 默认值是光速。 299792458.

测量单位为m/s。

# OperatingFrequency — 工作频率
Real number

Details

的工作频率,设置为正标量。

默认值 — 3e8.

测量单位为Hz。

# WeightsOutputPort — 启用波束成形权重的输出
Logical

Details

使能波束成形权值的输出被设置为 错误 (默认情况下)或 真的. 要获取光束整形权重,请将此属性设置为 真的 并使用适当的输出参数*W*。

如果不希望接收加权系数,请将此属性设置为 错误.

# NumPhaseShifterBits — 移相器的位深度
Real number

Details

用于量化波束成形矢量或控制矢量的加权系数的相移分量的比特数被设置为非负整数。 默认值 0 表示不执行量化。

# SensorArray — 天线阵列对象

Details

天线阵列的物体、由子晶格制成的天线或天线阵列的元件。 天线阵列可以包含子晶格。

# Direction — 光束成形方向
Scalar / array of real numbers

Details

射线形成的方向,定义为实矢量 上 或者一个真正的矩阵 上 . 在矩阵中,每列定义了单独的射线形成方向。 每列都有表单 [AzimuthAngle;ElevationAngle].

方位角应介于 −180° 和 180°,包容性。 座椅的角度应在 −90° 以前 90°,包容性。

默认值 — [0; 0;;].

测量单位是度。

依赖关系

若要使用此属性,请设置*DirectionSource*值 "财产".

方法

所有系统对象通用

步!::运行系统对象运算算法 释放!::允许更改系统对象属性的值 重置!::重置系统对象的内部状态

例子:

使用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")

so phase shift beamformer

我们将在应用加权系数后构造天线阵列的辐射方向图。

pattern(array,fc,[-180:180],0,PropagationSpeed=c,CoordinateSystem="polar",Weights=w)

so phase shift beamformer 1

使用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")

so phase shift beamformer 2

我们将在应用加权系数后构造天线阵列的辐射方向图。

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

so phase shift beamformer 3

此外

相移波束形成

Details

相移波束形成器采用常规的延迟和波束形成算法。 在波束成形时,假设信号是窄带的,因此相移可以近似所需的延迟。 与此同时,波束成形器保留传入信号的功率。

有关详细信息,请参阅[1]。

数据准确性

Details

*EngeePhased系统对象。PhaseShiftBeamformer*支持输入、属性和参数的单精度和双精度。

*如果参数*X*的输入数据具有单精度,则输出数据具有单精度。

*如果参数*X*的输入数据具有双精度,则输出数据具有双精度。 输出数据的准确性不依赖于属性和其他参数的准确性。

文学作品

  1. Van Trees,H.L. Optimum Array Processing。 繝シ繧ォ繝シ縺ォ縺、縺縺ヲ縺ョ縺顔衍繧峨○繧侦#陨ァ縺上□縺辅>缧

  2. 约翰逊,唐H.和D.Dudgeon. 阵列信号处理。 恩格尔伍悬崖,新泽西州:Prentice Hall,1993。

  3. 范维恩,B.D.和K.M.巴克利。 Beamforming:空间过滤的通用方法。 IEEE ASSP杂志,Vol。 5No.2第4-24页。