开源无线网络-OSRAN

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 882|回复: 0

从波束赋形到OAM(一)

[复制链接]

4

主题

22

帖子

220

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
220
发表于 2021-8-1 10:24:55 | 显示全部楼层 |阅读模式
波束赋形仿真
最近一段时间研究了一下无线通信中轨道角动量(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

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



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|OpenXG  

Copyright © 2001-2013 Comsenz Inc.Template by Comsenz Inc.All Rights Reserved.

Powered by Discuz!X3.2

快速回复 返回顶部 返回列表