steering vector

发布时间 2023-11-09 09:43:42作者: c_root_m

Steering vector是导向向量,在高分辨率谱估计和波束形成中很重要。

导向矢量矩阵是一个矩阵,其每一列代表一个特定的到达角度,而每一行代表阵列中的一个阵元。假设阵列由M个阵元组成,导向矢量矩阵的维度通常为M×L,其中L表示选择的离散角度的数量。
image

在matlab中生成steering vector

sv = steervec(pos,ang)

sv = steervec(pos,ang,nqbits)

以下代码指定一个由5个元素组成的均匀线阵列,每个元素间隔10厘米。然后,指定频率为1ghz的入射平面波,到达方位为45°,仰角为0°。计算这个波的导向向量。

% 生成阵列元素
elementPos = (0:.1:.4);
% 
c = physconst('LightSpeed');
fc = 1e9;
lam = c/fc;
% 到达方位角和俯仰角
ang = [45;0];
%
sv = steervec(elementPos/lam,ang,3)

输入

1.pos
表示麦克风阵列的位置

Example: [0,0,0; 0.1,0.4,0.3; 1,1,1]

Data Types: double

2.ang
表示接收信号的方位角和俯仰角。

Example: [45;0]

Data Types: double

3.nqbits
用于量化波束形成器相移或转向矢量权重的位数,指定为非负整数。值为0表示不进行量化。

Example: 5

输出

返回一个N*M的复数矩阵(sv)。N表示阵列麦克风的个数,M表示入射平面波的个数(也就是声源的个数)。其中sv中的每一列对应ang的每一列。

sv = 5×1 complex

   1.0000 + 0.0000i
   0.0887 + 0.9961i
  -0.9843 + 0.1767i
  -0.2633 - 0.9647i
   0.9376 - 0.3478i