概述
前言
最近在做项目的时候接触到了Matlab自带的5G工具包中, 有CDL信道的函数API,可以方便地对信道进行建模。 从而使我们更专注于信道估计或者是波束成形方面的工作,而不需要投注过多精力在信道仿真上。
这篇博客是对Matlab CDL信道文档的笔记。
CDL信道的全称是 clustered delay line, 应该是指信道是由多个不同延时的簇 (cluster) 组成的。
API介绍
首先, 我们通过下面语句创建一个 CDL信道对象:
cdl = nrCDLChannel()
很容易理解, nr就是5G NR标准的意思。 这样是创建了一个默认的CDL信道对象。 也可以通过以下语法, 将默认的参数改为自定义参数:
cdl = nrCDLChannel(Name,Value)
.
默认的生成信道对象为:
- DelayProfile: 有默认的多种配置可选,代表了常见的信道延迟模型。 也可以进行自定义,从而对每一径的 延迟 , 路损, 角度 进行自定义。
- Angle Scaling: 设置为true后可以对 角度范围, 平均角度进行自定义设置。
- DelaySpread:时延扩展设置。 默认为30e-9, 即30ns.
- CarrierFrequency: 载波频率, 默认为4e9, 即4GHz.
- MaximumDopplerShift:最大多普勒频偏, 默认为5Hz. 如果设为0, 则认为信道时不变。
- UTDirectionOfTravel:终端的入射角度, 包括仰角和水平角,默认为0度和90度。
- SampleRate:采样率, 决定了采样时间间隔。 默认为30.72e6Hz, 即一个采样时间间隔约为 32.55ns。
- TransmitAntennaArray:发送天线阵列设置。 可以修改天线的组成数量(包括 m × n mtimes n m×n排列的多个UPA, 每个UPA包含了 p × q ptimes q p×q个天线, UPA的极化方式)。可以修改天线的间隔。
- ReceiveAntennaArray:同上, 为接收端的天线阵列设置。
- RandomStream:控制随机变量种子
- ChannelFiltering: 默认为true, 如果设为True, 则可以直接用
signalOut = cdl(signalIn)
这样的语法来模拟信号通过信道。 如果设为false, 则可以通过[pathGains,sampleTimes] = cdl()
得到不同采样时间的信道数据。 - TransmitAndReceiveSwapped:可以将下行改为上行。
- SampleDensity 和 NumTimeSamples: 都是用于决定总共生成几个采样点。 前者是根据半波长内有SampleDensity个点,来计算出需要的采样点数。 而当将SampleDensity设置为Inf时, 则直接可以设定NumTimeSamples,来人为确定需要几个采样点。
获取信道
我们重点讲一下如何获取Matlab自带默认产生的CDL信道矩阵。
首先,我们需要运行ChannelFiltering = false
, 从而使得下面语法得以成功运行:
[pathGains,sampleTimes] = cdl()
这里, 输出的pathGains矩阵就是我们想要的信道矩阵。
这是一个
N
C
S
×
N
P
×
N
T
×
N
R
N_{CS}times N_{P}times N_T times N_R
NCS×NP×NT×NR的矩阵。
- 第一维 N C S N_{CS} NCS 就是采样点数。这一维可以刻画信道的时变性。 笔者尝试过, 如果将多普勒平移设置为0, 即信道体现为时不变。 那么这 N C S N_{CS} NCS个 N P × N T × N R N_{P}times N_T times N_R NP×NT×NR 矩阵均相等。
- 第二维 N P N_P NP 代表的是路径数。 按默认CDL信道的话,会共有23径。 每一径的延时, 角度 都可以在参数中查看到。
- N T × N R N_Ttimes N_R NT×NR 就是我们常见的信道矩阵。
最后
以上就是漂亮未来为你收集整理的Matlab 5G NR信道仿真: CDL信道的API使用前言API介绍获取信道的全部内容,希望文章能够帮你解决Matlab 5G NR信道仿真: CDL信道的API使用前言API介绍获取信道所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复