QuaDriga模型的3GPP TR38.901 UMa NLOS 信道仿真教程

本教程介绍在MATLAB中安装QuaDriga及进行3GPP UMa NLOS信道仿真的详细步骤。包括安装软件、设置仿真参数、天线与布局,生成qd_builder和信道系数,最后对下行多用户的ZF接收信道容量进行仿真,对比不同天线间隔下的信道容量和接收信噪比。
该文章已生成可运行项目,

安装QuaDriga

要在MATLAB中安装QuaDRiGa,按照以下步骤操作:

  1. 下载QuaDRiGa:首先,您需要从GitHub的QuaDRiGa官方仓库下载QuaDRiGa软件。可以通过搜索QuaDRiGa的GitHub页面或其官方网站来找到下载链接。

  2. 解压文件:下载后,将文件解压到您希望存放的目录。

  3. 设置MATLAB路径:打开MATLAB,使用addpath函数将包含QuaDRiGa文件的目录添加到MATLAB的路径中。例如:

    addpath('C:\路径\到\QuaDRiGa文件夹');
    
  4. 运行安装脚本:在MATLAB命令窗口中,运行QuaDRiGa的安装脚本。通常这可以通过运行一个特定的.m文件来完成,比如:

    run('setup_quadriga.m');
    
  5. 验证安装:安装完成后,您可以通过调用QuaDRiGa的一些基本函数来检查它是否正确安装并能够运行。

QuaDriga仿真的基本步骤说明

要完成基本的信道模型配置,你通常需要执行以下步骤:

  1. 初始化仿真环境

在 MATLAB 中,先初始化仿真环境。确保QuaDRiGa工具包已被正确安装,并添加到MATLAB的路径中。

  1. 创建模拟场景

创建一个仿真场景,定义模拟的环境类型(如城市宏观、城市微观、室内外等)。

  1. 定义发送端和接收端

定义发送端(基站)和接收端(用户设备)的参数,包括它们的位置、天线配置、功率和其他特性。

  1. 设置频率和带宽

设置仿真的频率和带宽。这通常取决于您想要模拟的通信系统。

  1. 配置信道模型

根据场景选择合适的信道模型。QuaDRiGa提供了多种预定义的信道模型,这些模型基于实测数据或标准文档。

  1. 运行仿真

运行仿真以生成信道系数。这将创建一个信道对象,包含多径组成和信道特性。

下面将基于3GPP UMa 场景的信道,介绍具体的信道配置过程。

仿真参数(qd_simulation_parameters)

中心频率fc=3.5GHzf_c=3.5GHzfc=3.5GHz

采样频率为1.2(单移动场景的参考值,基站固定位置)

小区半径为200m

    fc = 3.5e9;
    numV = 4;
    numH = 16;
    nBSant = numV*numH;
    %分布半径
    R = 200;
    
    s = qd_simulation_parameters;
    s.center_frequency = fc;
    s.sample_density = 1.2;
    s.use_3GPP_baseline = 1;

对单小区的多用户下行场景信道容量进行仿真

天线设置(qd_arrayant)

基站使用3GPP-3D天线阵面,垂直方向4个辐射单元,水平方向16个辐射单元,总共64根发送天线,设置为双极化模式(±45°线极化),天线间距为半波长

用户侧每个用户使用全极化的单根天线作为接收天线

		%设置BS和UE的天线类型
    aBS = qd_arrayant.generate('3gpp-3d',numV,numH,fc,3,[],d);
    aUE = qd_arrayant('omni');
    aUE.center_frequency = fc;

仿真布局设置(qd_layout)

使用上述仿真参数s(qd_simulation_parameters类)来初始化仿真布局

设置发送基站数和接收用户数

    l = qd_layout(s);
    l.no_tx = 1;
    l.no_rx = nUE;

设置基站位置和发送天线(aBS)

    l.tx_position = [0;0;25];
    l.tx_array = aBS;

设置随机的用户(UE)位置和接收天线(aUE)

用户的2D位置均匀分布在方位角为[-60°,60°],半径为200m的扇形区域内

    for i = 1:nUE												
        ueRelPosition  = [R*sqrt(rand);(rand-0.5)*120;0];		%极坐标均匀分布表示
        %极坐标转化为直角坐标
        [xPos,yPos,zPos] = sph2cart(deg2rad(ueRelPosition(2)),deg2rad(ueRelPosition(3)), ...
            ueRelPosition(1));
        l.rx_position(:,i) = [xPos,yPos,zPos];
        l.rx_array(1,i) = aUE;
    end

下面对用户的高度进行设定,假定室外用户的高度为1.5m室内用户随机分布在楼高为4-8层(12-24m)的任意楼层中,并设置传播场景为3GPP 38.901 UMa NLOS,80%的用户在室内

    floor = randi(5,1,l.no_rx) + 3;
    for n = 1:l.no_rx
        floor( n ) =  randi(floor(n) );
    end
    
    l.rx_position(3,:) = 3*(floor-1) + 1.5;   	%室内高度,楼层高度加上人高度
    indoor_rx = l.set_scenario('3GPP_38.901_UMa',[],[],0.8);		% 设置仿真场景,80%用户在室内
    l.rx_position(3,~indoor_rx) = 1.5; 		%室外高度,人高度为1.5m

对仿真布局进行可视化操作

	l.visualize([],[],0);
	view(-45,30)

在这里插入图片描述

从2D俯视图中可以看出,用户分为两种类型,一种是3GPP_38.901_UMa_NLOS,另一种是3GPP_38.901_UMa_NLOS_O2I,分别代表室外和室内用户。

下面是仿真布局的3D图

在这里插入图片描述

生成qd_builder

使用仿真布局初始化qd_builder,并且设置路径损耗模型为WinnerPlusPathloss,生成LSF和SSF等各种参数

	cb = l.init_builder;
	cb.gen_parameters;
    %winner_nlos大尺度参数,包含室内和室外
    pathloss_para_indoor = struct('model','winner_nlos','A1',44.9,'Ah1',-6.55,'B1',53.78,'C1',1.06, ...
        'D1',1.06,'E1',0,'F1',-0.8,'A2',44.9,'Ah2',-6.55,'B2',52.32,'C2',9.77,'D2',5.83,'E2',0,'F2',-0.8, ...
        'A3',44.9,'Ah3',-6.55,'B3',55.92,'C3',-2.2,'D3',5.83,'E3',0,'F3',-0.8);
    pathloss_para_outdoor = struct('model','winner_nlos','A1',44.9,'Ah1',-6.55,'B1',16.33,'C1',26.16, ...
    'D1',5.83,'E1',0,'F1',0,'A2',44.9,'Ah2',-6.55,'B2',14.78,'C2',34.97,'D2',5.83,'E2',0,'F2',0, ...
    'A3',44.9,'Ah3',-6.55,'B3',18.38,'C3',23,'D3',5.83,'E3',0,'F3',0);

    cb(1,1).plpar = pathloss_para_indoor;
    cb(2,1).plpar = pathloss_para_outdoor;

从qd_builder生成信道系数

h = cb.get_channels;

这时得到的信道h是一个1×100的矩阵,每个元素是一个qd_channel对象,对应与100个用户的信道,每个用户的信道(qd_channel)如下图所示

h(1,1).coeff;

在这里插入图片描述
其中的coeff是该用户信道的CSI,为1×128×17的矩阵,分别表示1个接收天线、128个发送天线和17条路径。
除了得到多径的信道矩阵之外,我们还可以使用qd_channel类的fr方法,将信道变换到频域并返回频率响应,例如我们对h(1,1)进行频率变换

h(1,1).fr(bandwidth,no_carrier);

输入的参数为带宽数和子载波数目,输出得到信道的频率响应矩阵

信道容量仿真

从上述生成的信道出发,对下行多用户的ZF接收信道容量进行仿真,设置基站的发送总功率为240w,带宽为100MHz,接收端100个用户固定不变,对每个用户均匀功率分配,热噪声功率谱为**-174dBmW/Hz**,每个单用户的发送信噪比为127.8dB,

对半波长间隔天线面的基站的下行信道计算遍历信道容量,结果是558.1559bit/s/Hz;过采样后天线间隔为1/4波长,用户不变,计算遍历信道容量,结果是842.0352bit/s/Hz,信道容量的提升大约为1.51(151%)

注:此处未对信道矩阵H做归一化,存在着一定的阵列增益

计算每个用户的接受信噪比,半波长间隔时,接收信噪比范围为[-0.5dB,55dB];过采样后天线间隔为1/4波长时,接收信噪比范围为[0.59dB,63dB]

本文章已经生成可运行项目
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值