5GNR UE开机到时间同步的全过程
**博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!**
有问题欢迎评论区讨论交流,大家一起学习~
文章目录
- 概要
- 场景设定
- 1 接收下行IQ数据
- 2 检测CP确认符号边界
- 3 寻找SSB → 连续4个符号确认为SSB block
- 4 从采样位置算出 slot 和 symbol → 确定"几楼几号房"
- 4.1 UE都已经找到了SSB,为什么还不知道是属于前半帧还是后半帧
- 5 解码SSB符号1 — PSS检测 → 确定NID2
- 6 解码SSB符号3 — SSS检测 → 确定NID1
- 7 解码SSB符号2+4 — PBCH/MIB → 确定"哪栋楼、A座还是B座"
- 8 UE开始接入小区
- 9 总结对照表
概要
本文用生动形象的例子说明下行同步的过程。
假如:
- 你在一栋楼里醒来,什么都不知道。
- 这栋楼有A座和B座,结构完全相同
- 你需要搞清楚:我在哪栋楼(SFN)?A座还是B座(半帧)?几楼(slot)?哪个房间(symbol)?
场景设定
基站配置:
- 30kHz SCS (numerology 1)
- PCI = 148 (NID1=49, NID2=1)
- SSB在SFN=83帧的后半帧发送
- SSB#2 (起始在半帧内符号16)
1 接收下行IQ数据
比喻: 你刚醒来,先确认眼睛能看到东西(有光/有信号)
UE开始接收下行IQ采样流:
…0000000000[有信号有信号有信号有信号有信号]00000…
检查: 整个IQ数据里面是否有数据(长度是否非零)?
2 检测CP确认符号边界
比喻:
你开始用手摸墙壁,找到了重复的花纹(CP是符号尾部的拷贝)
原理:
CP是OFDM符号尾部拷贝到开头的一段,找到重复就是符号边界
IQ流中某段:
[CP][数据尾部]
↑ ↑
这两段相同!
方法:
取一段采样,和距离FFT size后的采样做对比
- 相似度高 → 这里是CP开始的位置 → 符号边界!
- 相似度低 → 不是边界,继续滑动
位置100: 对比相似度 = 0.1 (低, 不是)
位置200: 对比相似度 = 0.2 (低, 不是)
…
位置4416: 对比相似度 = 0.95 (高!) → 找到一个CP!
位置6608: 对比相似度 = 0.93 (高!) → 又找到一个CP!
位置8800: 对比相似度 = 0.94 (高!) → 又一个!
位置10992: 对比相似度 = 0.92 (高!) → 又一个!
结果:找到了多个CP位置 → 哪个对比度高就当作CP位置,从而知道了符号边界在哪,但还不知道: 哪些符号是SSB?
3 寻找SSB → 连续4个符号确认为SSB block
比喻: 你发现走廊里有4扇连续的特殊门(和普通门不一样),这就是"公告栏区域"(SSB)
SSB的4个symbol是连续的,所以从找到的多个CP匹配结果中去寻找找是否有连续的4个符号,
找到的CP位置:
…| sym | sym | sym | sym | sym | sym | sym | sym |…
↑ ↑ ↑ ↑
CP✓ CP✓ CP✓ CP✓
连续4个!→ 这很可能是SSB!
4 从采样位置算出 slot 和 symbol → 确定"几楼几号房"
SSB的位置一旦确定后,就可以知道了采样点smaples的绝对位置。
- 1个slot是14symbol
- 14个symbols 包含长短symbol
- 所以1个slot samples长度 = 长symbol fftSize +CP + 13*(短symbols fftSize +CP) samples
例子:假如有如下设定:
- 找到的SSB的位置是: 35136 samples
- 1个slot = 30720 samples
- 长symbol长度(含CP) = 2224 samples
- 短symbol长度(含CP) = 2192 samples
计算slot位置= 35136/20720 =1
计算symbol位置= 35135%20720 = 4416samples =symbol2
- slot内:
- sym0: 0~2223 → 不是
- sym1: 2224~4415 → 不是
- sym2: 4416~6607 → 在这里! → symbol 2
确定SSB所在 半帧内符号编号 需要查表:不同numerology下SSB的候选起始符号位置
这里是slot=1, sym=2, 所以 = 1x14 + 2 = 16 → 查表 → SSB#2
结果:
✓ 半帧内 slot 1, symbol 2, SSB#2
✗ 但不知道是前半帧还是后半帧(A座还是B座?)
4.1 UE都已经找到了SSB,为什么还不知道是属于前半帧还是后半帧
38.213 ch4.1 给出了SSB的候选位置是5ms为周期定义。
For a half frame with SS/PBCH blocks, the first symbol indexes for candidate SS/PBCH blocks are determined according to the SCS of SS/PBCH blocks as follows, where index 0 corresponds to the first symbol of the first slot in a half-frame.
所以上一个章节中的SSB sample inde位置只是“半帧内的相对位置”,不是”帧内的相对位置“,即UE不知道这个5ms窗口是帧的哪个5ms:这同一个slot和symbol来自前半帧或者后半帧都有可能。
帧(10ms):|─────── 5ms ────────|─────── 5ms ────────|前半帧(slot0~9)后半帧(slot10~19)情况A: SSB在前半帧的slot1, sym2 → 帧内slot1 情况B: SSB在后半帧的slot1, sym2 → 帧内slot11Note:
- 只有解码MIB才能确认前/后半帧
- 前后半帧原始是哪里得到的: 是GNB告诉UE是前还是后半帧,GNB在发送SSB时把halfRadioFrame这个bit编码在PBCH里, UE解码后读到
5 解码SSB符号1 — PSS检测 → 确定NID2
比喻: 走进SSB区域的第1扇门,墙上写着"子小区编号=1"
方法: 对SSB第1个符号做相关检测
接收信号 x PSS_0 → corr = 0.3 (小)
接收信号 x PSS_1 → corr = 7.8 (大!超门限) ← 匹配!
接收信号 x PSS_2 → corr = 0.1 (小)
结果:
✓ NID2 = 1
6 解码SSB符号3 — SSS检测 → 确定NID1
比喻: 走进第3扇门,墙上写着"小区组=49"
方法: 利用已知NID2=1,遍历336个候选SSS序列做相关
NID1=48: corr = +1.2 (小)
NID1=49: corr = +7.6 (大!超门限) ← 匹配!
NID1=50: corr = -0.3 (小)
结果:
✓ NID1 = 49
✓ PCI = 49x3 + 1 = 148
7 解码SSB符号2+4 — PBCH/MIB → 确定"哪栋楼、A座还是B座"
比喻:
你在一栋楼里醒来,发现自己在"3楼左边第二个房间"。
但这栋楼有A座和B座,结构完全相同。
你不知道自己在A座还是B座。
然后你看到门上贴着标签:“第83栋B座”。 ← 这就是MIB!
方法:
用PCI=148解调PBCH → 极化码解码 → CRC校验 → 提取字段 → 信道估计 → 均衡 → QPSK解调 → 解扰 → 解码 → CRC通过!
MIB内容:
┌─────────────────────────────────────────────────┐
│ mibSfnMsb = 5 → SFN高6位 │
│ sfnLsb = 3 → SFN低4位 │
│ halfRadioFrame = 1 → 后半帧 (B座!) │
│ ssbBlockIndex = 2 → SSB#2 │
│ pdcchConfigSIB1 = 0x4A → 去哪找SIB1 │
│ cellBarred = 0 → 允许接入 │
└─────────────────────────────────────────────────┘
计算SFN:
SFN = (5 << 4) | 3 = 83
结果:
✓ SFN = 83 → “第83栋楼”
✓ 后半帧 → “B座”
✓ SSB#2 → beam编号
✓ 知道去哪找SIB1
最终结果: 时间同步完成!
UE现在完全知道
┌─────────────────────────┐
│ 小区身份: PCI = 148 │
│ 帧号: SFN = 83 │
│ 半帧: 后半帧 (5~10ms) │
│ 位置: slot 11, symbol 2 (帧内) │
│ beam: SSB#2 │
└─────────────────────── ─┘
对应到帧结构:SFN=83:
┌──────────────────────────────────────┬
│ 前半帧(A座) │ 后半帧(B座) │
│ slot 0 ~ 9 │ slot 10~19 │
│ │ ╔═════╗ │
│ │ slot11 ║SSB #2║ ← 你在这! │
│ │ sym2 ╚═════╝ │
└──────────────────────────────────────┴
8 UE开始接入小区
完成下行同步后,后续过程如下,章节会持续更新。。。
时间同步完成
↓
监听PDCCH (pdcchConfigSIB1告诉了位置)
↓
接收SIB1 (获取完整小区配置)
↓
随机接入 (上报SSB#2给基站,告诉基站用beam#2和我通信)
↓
连接建立 ✓ 可以打电话/上网了
9 总结对照表
| 步骤 | 技术结果 | 比喻 |
|---|---|---|
| 检测数据 | 确认有信号 | 确认眼睛能看到东西 |
| 检测CP | 符号边界 | 摸到墙上重复的花纹 |
| 找SSB | 定位4个连续特殊符号 | 找到4扇连续的特殊门 |
| 算偏移 | slot+symbol | 数台阶→3楼2号房 |
| PSS检测 | N I D ( 2 ) = 1 N_{\mathrm{ID}}^{(2)}=1NID(2)=1 | 第1扇门写着子编号 |
| SSS检测 | N I D ( 1 ) = 49 ⇒ P C I = 148 N_{\mathrm{ID}}^{(1)}=49 \Rightarrow \mathrm{PCI}=148NID(1)=49⇒PCI=148 | 第3扇门写着组号 |
| MIB解码 | S F N = 83 \mathrm{SFN}=83SFN=83,后半帧 | 门上标签:“第83栋B座” |
