【MIMO 从入门到精通】[P7][How does Antenna Spacing affect Beamforming]

 前言:

  

  Beamforming 是MIMO 技术里面的核心技术之一,所以讲MIMO 必须对Beamforming

有所了解,本篇主要了解一下beamforming

【MIMO 从入门到精通】[P6]【What is Beamforming?】-CSDN博客

本章主要通过数学公式 讨论一下 天线距离对 beamforming 的影响大小


一  模型

【MIMO 从入门到精通】[P7][How does Antenna Spacing affect Beamforming]_第1张图片

  如上图,双接收天线场景:

   信号先到达天线2 

 1.1    预置条件

         接收天线1 和 接收天线2 之间的距离为d

          电磁波的波长为\lambda

          电磁波 周期T

          则时间延时为

            \triangle t=\frac{T* d sin\theta}{\lambda }

1.2  不同天线上面的输出

           如果不加延时器: 不同天线上权重系数为:

           w= \sum_{n=1}^{N_A}e^{j (n-1)T \frac{dsin\theta}{\lambda}}

             N_A: 天线个数

            第一根天线

              w_1=e^0=1

            第二根天线

               w_2=e^{jT\frac{dsin\theta}{\lambda}}(通过欧拉公式展开  w_2=cos\frac{T dsin\theta}{\lambda}+jsin\frac{T dsin\theta}{\lambda}

           

1.3 加法器输出     

              通过加法器得到的信号为(下面例子只取其实部)

             out =w_1sinx+w_2sinx

1.4  例子:

             假设频率为 2500MHz

             波长为 \lambda=\frac{c}{f}=\frac{3*10^8 m/s}{2.5*10^9/s}

                             =0.12m

           下面图像为不同antennas 数量,不同的间隔,不加延时电路后输出效果:

   

   【MIMO 从入门到精通】[P7][How does Antenna Spacing affect Beamforming]_第2张图片

【MIMO 从入门到精通】[P7][How does Antenna Spacing affect Beamforming]_第3张图片

  结论:

    1: \theta=0 度的时候,输出信号幅度最强

    2:增加天线距离d 的时候,除了在0度的时候,还会在其它角度会有最强的输出信号,

比如下图 d =0.24的时候,d 越大波束赋形的效果越好

   3: 天线数量越多,幅度增强效果越明显

【MIMO 从入门到精通】[P7][How does Antenna Spacing affect Beamforming]_第4张图片


二  代码实现

 

         如下:

          T=2\pi

          \lambda=0.12m

【MIMO 从入门到精通】[P7][How does Antenna Spacing affect Beamforming]_第5张图片【MIMO 从入门到精通】[P7][How does Antenna Spacing affect Beamforming]_第6张图片【MIMO 从入门到精通】[P7][How does Antenna Spacing affect Beamforming]_第7张图片

# -*- coding: utf-8 -*-
"""
Created on Wed Dec 27 12:00:35 2023

@author: chengxf2
"""

import matplotlib.pyplot as plt
import numpy as np


def draw(x,y,RxNum):
    plt.rcParams['font.sans-serif']=['SimHei']  # 用来正常显示中文标签
    plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号
    
    label = "接收天线:"+str(RxNum)
    plt.title(label)
    # 绘制的曲线属性设置
    line1, = plt.plot(x, y, color='r', marker='d', linestyle='--', markersize=6, alpha=0.5, linewidth=3)
    

    # x,y坐标轴名称设置,可以同时设置标签的字体大小颜色等
    plt.xlabel(u'发射源发射角度', fontsize=14, color='r')
    plt.ylabel(u'输出的平均功率', fontsize=14, color='b')

    # 显示曲线图像
    plt.show()

def addAntenna(RxNum,angle,d,Y):
    #d 天线之间的距离
    #angle  发射源发射的角度
    #wavelength 电磁波波长,跟其频率有关系
    # 电磁波速度 3*10^8m/s.
    #n 第几根天线,第一根天线为基准,这里是不加延时电路
    #
    #4G网络使用的是频段为700MHz至2.7GHz的波段,对应的波长范围大致为0.1至0.4米。
    #5g 特高频(UHF)300 MHz~3000 MHz,对应电磁波的波长为分米波100cm~10 cm。 
    #5G 超高频(SHF)3 GHz~30 GHz,对应电磁波的波长为厘米波10 cm~1 cm。
    #
   wavelength =0.06*2 
   out = np.zeros(len(Y))
   T = 2*np.math.pi
   
   for n in range(0,RxNum):
         
           bias_t = (n*T*d*np.sin(angle))/wavelength #相当于公式里面n-1
           #print("\n--- n ",n,"\t bias_t",bias_t)
           w = np.cos(bias_t)
           
           signal =w*Y
           
           out = out+signal
           #print(out)
   
   return out

def receiveWave():
    
    x = np.linspace(0, 2*np.math.pi,100)
    y = np.sin(x)
    
    return x,y

def main():
    angleList = np.linspace(-np.math.pi/2.0, np.math.pi/2.0,100)
    x,y = receiveWave()
    
    RxNum =4
    distance = 0.06
  
    
    powerList =[]
    for angle in angleList:
        
        outSingle = addAntenna(RxNum,angle,distance,y)
        power = np.power(outSingle,2)
        avgpower = np.sum(power)
       
        print("\n angle :%4.3f avg: %4.2f"%(angle,avgpower))
        plt.scatter(angle, avgpower)
        powerList.append(avgpower)
    
    draw(angleList, powerList,RxNum)
    #draw(x,out)
    
main()   

 

你可能感兴趣的:(5G,算法)