5G NR建模与接收处理:MATLAB实现
1. 5G NR多普勒频率与信道建模
在5G NR建模中,多普勒频率分量由以下公式给出:
[
v_{r,v_{n,m},tx_{n,m},T} = \hat{l_0}
]
其中,(v)是UT速度向量,速度为(v),行进方位角为(\varphi_v),仰角为(\theta_v),其表达式为:
[
v = v\begin{bmatrix}
\sin\theta_v\cos\varphi_v \
\sin\theta_v\sin\varphi_v \
\cos\theta_v
\end{bmatrix}^T
]
1.1 CDL信道建模
在MATLAB中,可以使用5G Toolbox中的
nrCDLChannel
对象来模拟输入信号通过CDL信道的传输。需要指定以下对象属性:
| 属性 | 描述 |
| ---- | ---- |
| DelayProfile | CDL延迟配置文件(’CDL - A’,’CDL - B’,’CDL - C’,’CDL - D’或’CDL - E’) |
| DelaySpread | 所需的均方根延迟扩展(秒) |
| TransmitAntennaArray | 发射天线阵列特性 |
| SampleRate | 输入信号的采样率(Hz) |
可以通过以下形式调用系统对象来获得信道受损信号:
[rxWaveform, pathgains, sampletimes] = channel (txWaveform)
其中,
channel
是所有属性都已正确定义的
nrCDLChannel
系统对象,
txWaveform
是输入信号。该函数返回信道受损信号
rxWaveform
、底层衰落过程的MIMO信道路径增益
pathgains
以及路径增益的信道快照的采样时间
sampletimes
。
1.2 TDL信道建模
TDL模型用于非MIMO评估,具有可扩展的延迟扩展。为非视距(NLOS)场景定义了三种TDL模型(TDL - A、TDL - B和TDL - C),为视距(LOS)场景定义了两种TDL模型(TDL - D和TDL - E)。TDL模型是通过空间滤波从CDL模型生成的,具体步骤如下:
1.
选择空间滤波器
:选择在局部坐标系(LCS)中定义的空间滤波器(A_{tx}’)和(A_{rx}’)。例如,LCS中各向同性模式的滤波器由以下公式给出:
[
A_{tx,rx}’(\theta,\varphi) = 1
]
2.
坐标转换
:将空间滤波器转换到全局坐标系(GCS),以获得指向方向((\theta_p,\varphi_p))位于滤波器中心的(A_{tx})和(A_{rx})。
3.
确定TDL簇功率值
:使用以下公式确定TDL簇功率值:
[
P_{n,TDL} = P_{n,CDL}A_{rx}(\theta_{n,ZOA},\varphi_{n,AOA})A_{tx}(\theta_{n,ZOD},\varphi_{n,AOD})
]
在MATLAB中,可以使用5G Toolbox中的
nrTDLChannel
对象来模拟输入信号通过TDL信道的传输。需要指定以下对象属性:
| 属性 | 描述 |
| ---- | ---- |
| DelayProfile | CDL延迟配置文件(’TDL - A’,’TDL - B’,’TDL - C’,’TDL - D’或’TDL - E’) |
| DelaySpread | 所需的均方根延迟扩展(秒) |
| NumTransmitAntennas | 发射天线数量 |
| NumReceiveAntennas | 接收天线数量 |
| SampleRate | 输入信号的采样率(Hz) |
同样,可以通过以下形式调用系统对象来获得信道受损信号:
[rxWaveform, pathgains, sampletimes] = channel (txWaveform)
其中,
channel
是所有属性都已正确定义的
nrTDLChannel
系统对象,
txWaveform
是输入信号。
以下是TDL信道生成的流程图:
graph LR
A[选择LCS空间滤波器] --> B[转换到GCS]
B --> C[确定TDL簇功率值]
C --> D[创建nrTDLChannel对象]
D --> E[输入信号通过信道]
E --> F[输出信道受损信号]
2. 5G物理层PDSCH处理接收模型
UE使用接收到的SSBs与gNodeB进行同步,然后通过CP - OFDM解调恢复资源网格上的符号,并进行信道估计。接收数据块经过一系列处理,包括层解映射、解调、解扰、DLSCH解码等,最终得到解码后的输出。
2.1 同步
在5G NR网络中,UE解码SSBs以获取与gNodeB同步所需的必要定时信息。可以使用MATLAB 5G Toolbox中的
nrPerfectTimingEstimate
函数进行完美定时估计,其语法如下:
[offset, mag] = nrPerfectTimingEstimate (pathGains, pathFilters)
输入参数:
-
pathGains
:衰落过程的信道路径增益。
-
pathFilters
:路径滤波器的脉冲响应。
该函数返回样本的定时偏移
offset
和信道脉冲响应的幅度
mag
。
2.2 CP - OFDM解调
使用快速傅里叶变换对接收信号进行CP - OFDM解调,以恢复从资源网格接收的符号。可以使用MATLAB示例文件夹中生成的
hOFDMDemodulate
函数进行CP - OFDM解调,其语法如下:
rxGrid = hOFDMDemodulate(gnb, rxWaveform)
输入参数:
-
gnb
:一个结构数组,包含以下字段:
-
NRB
:下行/上行资源块数量
-
CyclicPrefix
:循环前缀长度(’Normal’(默认)或’Extended’)
-
SubcarrierSpacing
:子载波间隔(kHz)(默认值为15)
-
NSymbol
:子帧内第一个符号的索引(默认值为0)
-
UseDCSubcarrier
:定义是否在直流子载波上传输数据(’On’(默认)或’Off’)
-
WaveformType
:波形OFDM类型(’CP - OFDM’(默认),’F - OFDM’,’W - OFDM’)
-
Windowing
:对OFDM符号进行加窗和重叠的时域样本数量
-
rxWaveform
:要解调的接收波形。
该函数输出包含CP - OFDM解调复符号的资源元素数组
rxGrid
。
2.3 信道估计
在5G无线传输中,gNodeB发送信道状态信息参考信号(CSI - RS),允许UE进行信道估计。CSI - RS包含伪随机序列,并映射到资源网格上的特定资源元素。可以使用以下公式估计每个子载波的信道响应:
[
H_{k,f} = \frac{Y_{k,f}}{X_{k,f}}
]
其中,(X_{k,f})是频域中的发射信号,(Y_{k,f})是频域中的接收信号,(f_k)是子载波间隔的整数倍。
为了进行仿真,可以使用MATLAB 5G Toolbox中的
nrPerfectChannelEstimate
函数进行完美信道估计,其语法如下:
estChannelGrid = nrPerfectChannelEstimate(pathGains, pathFilters, nrb, scs, initialSlot, toffset, sampleTimes, cpl)
输入参数:
-
pathGains
:衰落过程的信道路径增益。
-
pathFilters
:路径滤波器的脉冲响应。
-
nrb
:资源块数量。
-
scs
:子载波间隔。
-
initialSlot
:初始时隙号。
-
toffset
:样本中的定时偏移。
-
sampleTimes
:信道快照的采样时间。
-
cpl
:循环前缀长度。
该函数返回完美信道脉冲响应估计
estChannelGrid
。
以下是接收处理的流程图:
graph LR
A[接收信号] --> B[同步]
B --> C[CP - OFDM解调]
C --> D[信道估计]
D --> E[PDSCH解码]
E --> F[输出解码数据]
2.4 PDSCH解码
PDSCH解码包括层解映射、解调和解扰等子过程。
-
层解映射
:将接收到的
NLayers层组合成NCW个PDSCH码字。可以使用MATLAB 5G Toolbox中的nrLayerDemap函数进行层解映射,其语法如下:
Symbols = nrLayerDemap(sym)
该函数将包含分层符号的输入
sym
转换为输出数组
Symbols
,该数组根据层数包含一个或两个码字。
例如,将五个层解映射到两个PDSCH码字的数值示例:
输入层:
j0 = [-0.46 - 0.16j, -0.46 + 1.09j, -0.47 + 1.05j];
j1 = [0.45 + 1.08j, -1.07 - 1.05j, -1.10 - 1.11j];
j2 = [0.41 - 0.13j, 1.02 + 1.06j];
j3 = [1.04 + 1.08j, -0.44 + 1.03j];
j4 = [-0.46 - 1.05j, -0.43 - 1.06j];
解映射后:
H1 = [-0.46 - 0.16j, 0.45 + 1.08j, -0.46 + 1.09j, -1.07 - 1.05j, -0.47 + 1.05j, -1.10 - 1.11j];
H2 = [0.41 - 0.13j, 1.04 + 1.08j, -0.46 - 1.05j, 1.02 + 1.06j, -0.44 + 1.03j, -0.43 - 1.06j];
-
解调
:使用软判决将每个PDSCH码字中的复符号解调为软比特。软判决通过计算对数似然比(LLR)来实现,公式如下:
[
LLR = \ln\frac{P(g’ = 1)}{P(g’ = 0)}
]
可以使用MATLAB 5G Toolbox中的nrSymbolDemodulate函数进行解调,其语法如下:
Demodulated = nrSymbolDemodulate(symbols, mod, nVar)
输入参数:
-
symbols
:要解调的码字。
-
mod
:调制方案。
-
nVar
:噪声方差。
该函数以数组形式返回解调输出比特
Demodulated
。
例如,对一个64 - QAM接收符号进行解调的数值示例:
接收符号:
h1_0 = -0.46 - 1.08j;
噪声方差缩放因子:
sigma2 = 0.0661;
经过计算得到解调后的码字。
-
解扰
:使用与加扰数据相同的黄金序列对解调器输出的软比特序列
Ga'进行解扰。黄金序列在应用于软比特之前需要进行符号化,即所有1替换为“ - 1”,所有0替换为“1”。解扰通过Ga'和c数组的逐元素乘法实现。
可以使用MATLAB 5G Toolbox中的
nrPDSCHPRBS
函数生成加扰序列进行解扰。
例如,对一个软比特流进行解扰的数值示例:
软比特流:
G1_prime = [-21, -11, 32, 15, 20, -40, 13, -12, 33, -9];
符号化黄金序列:
c = [1, 1, 1, -1, 1, 1, -1, -1, -1, 1];
解扰后:
G1 = G1_prime .* c;
通过以上步骤,可以在MATLAB中实现5G NR的信道建模和接收处理,从而更好地理解和验证5G系统的性能。
5G NR建模与接收处理:MATLAB实现
3. 各步骤详细操作总结
为了更清晰地展示5G NR建模与接收处理的整个流程,下面对各个步骤进行详细总结。
| 步骤 | 操作内容 | MATLAB函数 | 输入参数 | 输出结果 |
|---|---|---|---|---|
| 多普勒频率计算 | 根据公式 (v_{r,v_{n,m},tx_{n,m},T} = \hat{l_0}) 计算多普勒频率分量 | 无 | (v)(UT速度向量)等 | 多普勒频率分量 |
| CDL信道建模 | 模拟输入信号通过CDL信道的传输 |
nrCDLChannel
|
DelayProfile
、
DelaySpread
、
TransmitAntennaArray
、
SampleRate
、
txWaveform
|
rxWaveform
、
pathgains
、
sampletimes
|
| TDL信道建模 | 模拟输入信号通过TDL信道的传输 |
nrTDLChannel
|
DelayProfile
、
DelaySpread
、
NumTransmitAntennas
、
NumReceiveAntennas
、
SampleRate
、
txWaveform
|
rxWaveform
、
pathgains
、
sampletimes
|
| 同步 | 获取与gNodeB同步所需的定时信息 |
nrPerfectTimingEstimate
|
pathGains
、
pathFilters
|
offset
、
mag
|
| CP - OFDM解调 | 恢复从资源网格接收的符号 |
hOFDMDemodulate
|
gnb
(包含
NRB
、
CyclicPrefix
等字段)、
rxWaveform
|
rxGrid
|
| 信道估计 | 估计每个子载波的信道响应 |
nrPerfectChannelEstimate
|
pathGains
、
pathFilters
、
nrb
、
scs
、
initialSlot
、
toffset
、
sampleTimes
、
cpl
|
estChannelGrid
|
| PDSCH解码 - 层解映射 | 将接收到的层组合成PDSCH码字 |
nrLayerDemap
|
sym
|
Symbols
|
| PDSCH解码 - 解调 | 将复符号解调为软比特 |
nrSymbolDemodulate
|
symbols
、
mod
、
nVar
|
Demodulated
|
| PDSCH解码 - 解扰 | 对软比特序列进行解扰 |
nrPDSCHPRBS
生成序列,元素相乘解扰
|
Ga'
、
c
| 解扰后的软比特序列 |
4. 实际应用中的注意事项
在实际应用5G NR建模与接收处理时,有以下几点需要注意:
-
参数设置
:不同的场景和需求可能需要不同的参数设置。例如,在CDL和TDL信道建模中,
DelayProfile和DelaySpread的选择会影响信道的特性;在CP - OFDM解调中,gnb结构数组中的各个字段需要根据实际情况进行准确设置。 -
噪声处理
:在解调过程中,噪声方差
nVar的设置会影响解调的准确性。需要根据实际的噪声环境进行合理的估计和设置。 - 资源管理 :在进行大规模的5G系统仿真时,需要注意资源的管理,避免内存溢出等问题。例如,在处理大量的符号和码字时,要合理分配内存和优化算法。
5. 总结
通过本文的介绍,我们详细了解了5G NR建模与接收处理在MATLAB中的实现方法。从多普勒频率的计算,到CDL和TDL信道的建模,再到接收处理中的同步、CP - OFDM解调、信道估计和PDSCH解码等各个步骤,都有相应的MATLAB函数和具体的操作方法。
以下是整个5G NR建模与接收处理的流程图:
graph LR
A[多普勒频率计算] --> B[信道建模]
B --> C[CDL信道]
B --> D[TDL信道]
E[接收信号] --> F[同步]
F --> G[CP - OFDM解调]
G --> H[信道估计]
H --> I[PDSCH解码]
I --> J[层解映射]
I --> K[解调]
I --> L[解扰]
C --> M[信号传输]
D --> M
M --> E
J --> K
K --> L
L --> N[输出解码数据]
掌握这些方法和技术,能够帮助我们更好地理解和验证5G系统的性能,为5G技术的研究和应用提供有力的支持。在实际应用中,我们需要根据具体的场景和需求,合理选择参数和方法,确保系统的准确性和可靠性。同时,不断优化算法和资源管理,提高仿真和处理的效率。
超级会员免费看
89

被折叠的 条评论
为什么被折叠?



