开源无线网络-OpenXG

标题: 从波束赋形到OAM(一) [打印本页]

作者: luhan    时间: 2021-8-1 10:24
标题: 从波束赋形到OAM(一)
波束赋形仿真
最近一段时间研究了一下无线通信中轨道角动量(OAM)的实现方式,虽然从原理上解释比较简单,但从仿真实现上,仍需要对多天线的实现机制有较多的了解。本文将通过几个示例,逐步介绍OAM在Matlab中的实现方式。
首先我们介绍在Matlab中波束赋形的实现方式,假设有一个K天线阵列,各天线间距为dist,每个天线全向发送余弦波 cos(2pi * f * t + bias_k),dist = lamda/2,lamda 为波长。
波束赋形天线示意图
令bias_k = k * phi ,让 phi在[0, pi] 内取不同值,在距离第一根天线 d处位置(d>>dist )计算各天线信号叠加,观测点与天线阵列角度为 [-pi, pi]。可发现观测点的场强随 phi的变化而发生变化,由各天线信号叠加形成的波束指向会随着phi的取值而变化。
具体Matlab 的代码如下:
%初始化余弦波波长、频率、天线个数等参数lamda = 0.1;freq = 3e9;c = lamda * freq; % c为光速dist = lamda /2 ;d = 50;theta = pi;N_ant=16;amp=zeros(1,round(theta / 0.01)+1 );  % 用于存储各观测点的信号幅值
接下来计算在观测点处,各个天线辐射信号叠加的幅度,并作图:
for bias = 0:0.01:pij=1;amp=zeros(1,2* round(theta / 0.01)+1 );for i=-pi:0.01:pi    for k = 1:N_ant        % 以下式子是用于计算每个天线在d处的叠加        amp(1,j) = amp(1,j) + cos(2*pi*freq * ( d+  (k-1)*dist * cos(i) - (k-1)*dist * cos(bias)  )/c );    end    j = j+1;endclf;%plot((-pi:0.01:pi)/pi * 180,abs(amp.*cos(i))); %如果没有polarplotdb函数,可以直接在二维坐标系内画幅值与角度关系polarplotdb((-pi:0.01:pi),abs(amp)/N_ant,'-r'); pause(0.1);hold offend

以上仅从空间信号叠加的角度仿真波束赋形,可以得到下图。当然也可以通过数学公式推算,形成一个各方向幅值的表达式,本文不再对这部分开展描述。








欢迎光临 开源无线网络-OpenXG (http://bbs.openxg.org.cn/) Powered by Discuz! X3.2