Haiwen 发表于 2023-6-22 11:55:29

从波束赋形到OAM(二)

OAM波形仿真看到这篇文章的同学,可以默认已经对OAM有了基本的了解,在此就不再赘述OAM角动量的含义了。在无线通信中,OAM一般是指具有涡旋相位的无线信号,为了构造涡旋相位的信号,可以使用具有涡旋面的天线或均匀圆阵列天线(UCA)。由于UCA天线简单易用实现,且可以灵活的发送不同拓扑荷的OAM信号,因此得到了较为广泛的应用。由UCA形成的OAM,本质上仍可以认为是一种特殊的MIMO。其天线阵列如下图所示,各天线阵子均匀摆放在一个圆上,各天线阵子之间所发送信号的相位差相同,通过调整不同天线之间相位差的大小,从而实现不同拓扑荷的OAM波形。https://pic1.zhimg.com/80/v2-2ad1cc1ab499d3461bb173507bfb69e0_720w.webp因此,我们可以非常简单的套用上篇文章中波束赋形的仿真方式,实现OAM天线。接下来我们在Matlab中实现OAM天线,并画出相位面和幅值。% 初始化所发送正弦信号的基础参数freq = 1.5e9;c = 3e8;lamda = c/freq;bias = [0,45,90,135];% 仿真4种拓扑荷x = zeros(8,3);% 初始化发送天线的位置,等间隔分布在一个圆上x1 = [0.269375, 0,0];x2 = [0.190477, 0.190477,0];x3 = [0, 0.269375,0];x4 = [-0.190477, 0.190477,0];x5 = [-0.269375, 0,0];x6 = [-0.190477, -0.190477,0];x7 = [0, -0.269375,0];x8 = [0.190477, -0.190477,0];y = zeros(501,501,4);
接下来,我们在空间某位置计算各天线阵子信号的表达形式,为: <span class="MathJax_SVG" id="MathJax-Element-2-Frame" tabindex="0" data-mathml="e&#x2212;j(&#x22C5;2&#x03C0;f&#x22C5;d/c&#x2212;k&#x03B8;)" role="presentation" style="display: inline-block; line-height: normal; font-size: 16px; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">�−�(⋅2��⋅�/�−��) ,此处d为该位置距离天线阵子的距离,c为光速, <span class="MathJax_SVG" id="MathJax-Element-1-Frame" tabindex="0" data-mathml="k&#x03B8;" role="presentation" style="display: inline-block; line-height: normal; font-size: 16px; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">�� 为该天线阵子发送信号的相位值, <span class="MathJax_SVG" id="MathJax-Element-4-Frame" tabindex="0" data-mathml="&#x03B8;" role="presentation" style="display: inline-block; line-height: normal; font-size: 16px; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;">� 取值为 <span class="MathJax_SVG" id="MathJax-Element-3-Frame" tabindex="0" data-mathml="" role="presentation" style="display: inline-block; line-height: normal; font-size: 16px; word-spacing: normal; overflow-wrap: normal; text-wrap: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; position: relative;"> ,因此可以得到每个天线阵子在该处信号的计算方式:% 取一个正方形区域,遍历其中的点,计算相位和幅度。xrange = -5:0.02:5;yrange = -5:0.02:5;for b = bias    ii=1;    for i = xrange      jj=1;      for j = yrange            target= [i,j,20]; % 为观测点位置            % 计算每个天线阵子在观测点处的信号表达式            yy1 = exp(-1i * 2 * pi * freq * norm(target-x1)/c);            yy2 = exp(-1i *( 2 * pi * freq * norm(target-x2)/c-b/180 *pi));            yy3 = exp(-1i * (2 * pi * freq * norm(target-x3)/c-2*b/180 *pi));            yy4 = exp(-1i * (2 * pi * freq * norm(target-x4)/c-3*b/180 *pi));            yy5 = exp(-1i * (2 * pi * freq * norm(target-x5)/c-4*b/180 *pi));            yy6 = exp(-1i * (2 * pi * freq * norm(target-x6)/c-5*b/180 *pi));            yy7 = exp(-1i * (2 * pi * freq * norm(target-x7)/c-6*b/180 *pi));            yy8 = exp(-1i * (2 * pi * freq * norm(target-x8)/c-7*b/180 *pi));            % 将8个天线阵子信号叠加,即为该处信号实际形式            y(ii,jj,b/45+1)= yy1 +yy2+ yy3 +yy4+ yy5 +yy6+ yy7 +yy8;            jj = jj +1;      end      ii = ii + 1;    endend
接下来把观测区域的相位及幅度画出即可:figurefor i = 1:4    subplot(4,2,2*(i-1) + 1)    mesh(xrange,yrange,abs(y(:,:,i)));% 画幅值    subplot(4,2,2*(i-1) + 2)    mesh(xrange,yrange,angle(y(:,:,i)));% 画相位end
可得到下图:https://pic1.zhimg.com/80/v2-e416cf919c4023a350e8d07d67804c84_720w.webp
页: [1]
查看完整版本: 从波束赋形到OAM(二)