当你看到运营商宣传"5G峰值速率可达10Gbps",你有没有想过这个数字是怎么算出来的?它不是一个营销人员拍脑袋编的数字,而是有一套严格的数学公式在背后支撑。理解这套计算方法,不仅能让你看穿宣传数字的水分,还能在实际网络优化中精准定位速率瓶颈。
今天这篇文章,我们从最基础的时频资源格子出发,一步步手推5G NR的峰值速率计算公式,再对比理论值和实际值的差距,搞清楚每一比特到底是花在了哪里。
把5G的无线信道想象成一间格子铺——一个巨大的货架,横向是时间,纵向是频率。每个小格子叫做一个资源粒子(RE,Resource Element),它是5G中最小的数据承载单位,能放一个调制符号。
频率 ↑
│ ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
│ │RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│ ← 1个时隙=14个OFDM符号
│ ├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤
│ │RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│RE│
│ ├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤
│ │RE│RE│RE│RE│...│ │ │ │ │ │ │ │ │ │ × 12个子载波 = 1个PRB
│ ├──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┼──┤
│ │...│ │ │ │ │ │ │ │ │ │ │ │ │ │
│ └──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┴──┘
└──────────────────────────────────────────────→ 时间
一个PRB(物理资源块)= 12个子载波 × 14个OFDM符号 = 168个RE。
但要记住:这168个RE并非全部能用来传数据。其中一些要留给参考信号(DM-RS、CSI-RS等)、控制信道(PDCCH)和同步信号(SSB)。就像格子铺里有些格子要放招牌、放监控摄像头,不能全部用来摆商品。
在正式搬出公式之前,先用大白话理解速率是怎么算出来的:
速率 = 每秒传输的RE数 × 每个RE承载的比特数
就这么简单。关键在于把这两个乘数拆开。
$$N_{RE/s} = N_{PRB} \times 12 \times N_{symb}^{data} \times N_{slot/s}$$
$$bits/RE = Q_m \times R \times \nu$$
合在一起:
$$\boxed{速率 = N_{PRB} \times 12 \times N_{symb}^{data} \times N_{slot/s} \times Q_m \times R \times \nu \times (1 - OH)}$$
其中 $OH$ 是开销因子,扣掉参考信号、控制信道等占用的RE。
带宽越大,可用的PRB越多,速率自然越高。但PRB数并非简单的"带宽 ÷ 子载波带宽",因为两侧有保护带。
| 系统带宽 | SCS=15kHz | SCS=30kHz | SCS=60kHz | SCS=120kHz |
|---|---|---|---|---|
| 5 MHz | 25 | 11 | - | - |
| 10 MHz | 52 | 24 | 11 | - |
| 20 MHz | 106 | 51 | 24 | - |
| 50 MHz | 270 | 133 | 65 | 32 |
| 100 MHz | - | 273 | 135 | 66 |
| 200 MHz | - | - | 264 | 132 |
| 400 MHz | - | - | - | 264 |
为什么100MHz+30kHz SCS是273个PRB而不是277?因为 $273 \times 12 \times 30\text{kHz} = 98.28\text{MHz}$,加上两侧保护带共约1.72MHz,总共刚好100MHz。
5G NR支持多种子载波间隔(SCS),由参数 $\mu$ 决定:
graph LR
A["μ=0<br/>SCS=15kHz<br/>1 slot/ms"] --> B["μ=1<br/>SCS=30kHz<br/>2 slot/ms"]
B --> C["μ=2<br/>SCS=60kHz<br/>4 slot/ms"]
C --> D["μ=3<br/>SCS=120kHz<br/>8 slot/ms"]
D --> E["μ=4<br/>SCS=240kHz<br/>16 slot/ms"]
style A fill:#e8f5e9
style B fill:#c8e6c9
style C fill:#a5d6a7
style D fill:#81c784
style E fill:#66bb6a
SCS越大,OFDM符号越短,每秒能传更多符号——但子载波也变宽了,相同带宽下PRB数减少。这是时间和频率之间的一个权衡。
每秒时隙数的计算:$N_{slot/s} = 2^\mu \times 1000$
| μ | SCS | 每子帧时隙数 | 每秒时隙数 |
|---|---|---|---|
| 0 | 15 kHz | 1 | 1,000 |
| 1 | 30 kHz | 2 | 2,000 |
| 2 | 60 kHz | 4 | 4,000 |
| 3 | 120 kHz | 8 | 8,000 |
调制阶数决定了每个RE能装多少比特:
graph TD
A["QPSK<br/>2 bits/符号<br/>抗干扰最强"] --> B["16QAM<br/>4 bits/符号"]
B --> C["64QAM<br/>6 bits/符号<br/>现网最常用"]
C --> D["256QAM<br/>8 bits/符号<br/>需要极好信道"]
style A fill:#ffcdd2
style B fill:#ffe0b2
style C fill:#fff9c4
style D fill:#c8e6c9
码率是信道编码后有效信息的占比。LDPC编码的输出包含信息比特和校验比特,码率 = 信息比特 / 总编码比特。最高码率 $R_{max} = 948/1024 \approx 0.9258$,但实际网络中基站会根据信道质量选择合适的MCS(调制编码方案),码率通常在0.3~0.9之间。
| MCS索引 | 调制方式 | 码率 | 频谱效率 (bits/RE) |
|---|---|---|---|
| 5 | QPSK | 0.44 | 0.88 |
| 10 | 16QAM | 0.43 | 1.73 |
| 15 | 64QAM | 0.48 | 2.87 |
| 20 | 64QAM | 0.65 | 3.90 |
| 25 | 256QAM | 0.66 | 5.27 |
| 28 | 256QAM | 0.93 | 7.41 |
MIMO是速率翻倍的关键。每一层(layer)相当于一个独立的数据流:
| MIMO配置 | 层数ν | 速率倍数 |
|---|---|---|
| SISO (1×1) | 1 | 1× |
| 2×2 MIMO | 2 | 2× |
| 4×4 MIMO | 4 | 4× |
| 8×8 MIMO | 8 | 8× |
但要注意:层数受限于基站天线数、终端天线数和无线环境。现网中4×4 MIMO下行在城市密集区较常见,8×8 MIMO主要在毫米波场景使用。
这是理论值和实际值之间最关键的一道鸿沟。5G空口有很多"非数据"信号需要占用RE:
pie title 5G下行时隙RE开销分布示例(FR1 TDD)
"PDSCH数据" : 82
"DM-RS解调参考信号" : 7
"PDCCH控制信道" : 5
"CSI-RS信道状态参考信号" : 2
"SSB同步信号块" : 1
"PT-RS相位跟踪参考信号" : 1
"保护间隔/其他" : 2
不同场景的开销参考值:
| 场景 | 典型开销OH | 说明 |
|---|---|---|
| FR1 FDD | 0.08~0.14 | 开销较低,无TDD切换 |
| FR1 TDD | 0.14~0.20 | 包含上下行切换保护时间 |
| FR2 (毫米波) | 0.18~0.30 | PT-RS开销大,波束管理开销高 |
现在来手推一个经典场景:100MHz带宽、30kHz SCS、4×4 MIMO、256QAM的下行峰值速率。
100MHz + 30kHz SCS → 273个PRB
$$N_{RE/s}^{gross} = 273 \times 12 \times 14 \times 2000 = 91,729,600 \text{ RE/s}$$
解释: - 273 PRB × 12子载波 = 3,276个子载波 - 每个时隙14个OFDM符号 - 30kHz SCS每毫秒2个时隙,每秒2,000个时隙
取FR1 TDD典型开销 $OH = 0.14$:
$$N_{RE/s}^{data} = 91,729,600 \times (1 - 0.14) = 78,887,456 \text{ RE/s}$$
$$bits/RE = Q_m \times R \times \nu = 8 \times 0.9258 \times 4 = 29.63 \text{ bits/RE}$$
$$R_{peak} = 78,887,456 \times 29.63 \approx 2,339 \text{ Mbps} \approx \textbf{2.34 Gbps}$$
这就是100MHz单载波在4×4 MIMO + 256QAM下的下行理论峰值——大约2.3Gbps。
官方公式(参考38.306):
$$R = \sum_{j=1}^{J}\left(\nu^{(j)} \cdot Q_m^{(j)} \cdot f^{(j)} \cdot R_{max} \cdot \frac{N_{PRB}^{BW(j),\mu} \times 12}{T_s^\mu}\right) \times (1 - OH^{(j)})$$
其中 $T_s^\mu = \frac{1}{14 \times 2^\mu \times 1000}$,对 $\mu=1$ 有 $T_s^1 = 1/28000$ 秒。
代入:
$$R = 4 \times 8 \times 1 \times 0.9258 \times \frac{273 \times 12}{1/28000} \times (1-0.14)$$
$$= 29.63 \times 273 \times 12 \times 28000 \times 0.86$$
$$= 29.63 \times 91,729,600 \times 0.86 \approx \textbf{2,339 Mbps}$$
结果一致。
上面算的是物理层理论峰值。实际中,数据从IP层到空口要经过一整套处理链,每一步都会影响最终速率:
flowchart TD
A["IP数据包"] --> B["PDCP层<br/>加密/头压缩"]
B --> C["RLC层<br/>分段/ARQ"]
C --> D["MAC层<br/>复用/HARQ"]
D --> E["添加TB CRC<br/>24bit"]
E --> F{"TB大小 ><br/>码块上限?"}
F -->|是| G["码块分割<br/>+每块CRC"]
F -->|否| H["单码块"]
G --> I["LDPC编码"]
H --> I
I --> J["速率匹配<br/>适配空口资源"]
J --> K["调制 → 层映射<br/>→ 预编码 → RE映射"]
K --> L["天线发射"]
style A fill:#bbdefb
style L fill:#c8e6c9
style J fill:#fff9c4
基站在每个调度周期决定给手机分配多少资源,然后计算出一个传输块大小(TBS)。核心公式:
$$N_{info} = N_{RE}^{data} \times R \times Q_m \times \nu$$
其中 $N_{RE}^{data}$ 需要逐层扣减:
$$N_{RE}^{data} = N_{RE}^{total} - N_{RE}^{DMRS} - N_{RE}^{CSI-RS} - N_{RE}^{PT-RS} - N_{RE}^{other}$$
然后 $N_{info}$ 还要经过量化对齐(因为TBS必须是某些离散值之一),得到最终的TBS。
如果TBS + CRC超过LDPC编码器的最大输入长度,就要切割成多个码块:
| 参数 | Base Graph 1 | Base Graph 2 |
|---|---|---|
| 最大码块大小 $K_{cb}$ | 8,448 bit | 3,840 bit |
| 适用场景 | 大块、高码率 | 小块、低码率 |
| 每块CRC | CRC-24B(24bit) | CRC-24B(24bit) |
举例:一个TBS = 100,000 bit的传输块,使用BG1编码: - 加上TB CRC-24A:100,024 bit - 超过 $K_{cb} = 8448$,需要分割 - 码块数 $C = \lceil 100024 / (8448-24) \rceil = \lceil 100024/8424 \rceil = 12$ 块 - 每块再加CRC-24B
所以12个码块各自独立做LDPC编码、速率匹配,最后拼接起来。这意味着如果某个码块出错,只需重传该码块,而不必重传整个传输块。
下面是几种典型配置的下行峰值速率推算结果:
| 配置 | 带宽 | SCS | MIMO | 调制 | 开销 | 峰值速率 |
|---|---|---|---|---|---|---|
| 低频段单载波 | 20 MHz | 15 kHz | 2×2 | 64QAM | 0.12 | ~380 Mbps |
| 中频段典型 | 100 MHz | 30 kHz | 4×4 | 256QAM | 0.14 | ~2.34 Gbps |
| C-Band FDD | 100 MHz | 30 kHz | 4×4 | 256QAM | 0.08 | ~2.51 Gbps |
| 毫米波单载波 | 400 MHz | 120 kHz | 4×4 | 256QAM | 0.22 | ~7.4 Gbps |
| 毫米波8层 | 400 MHz | 120 kHz | 8×8 | 256QAM | 0.22 | ~14.8 Gbps |
| 双载波聚合 | 200 MHz | 30+30 kHz | 4×4 | 256QAM | 0.14 | ~4.68 Gbps |
你可能会问:为什么我手机测速从来没达到过2.3Gbps?
graph TD
A["理论峰值<br/>~2.34 Gbps"] -->|"扣TDD上下行比<br/>DDR4:1 → -20%"| B["~1.87 Gbps"]
B -->|"扣MCS降级<br/>MCS 20→-25%"| C["~1.40 Gbps"]
C -->|"扣MIMO Rank降低<br/>Rank 4→Rank 2 = -50%"| D["~0.70 Gbps"]
D -->|"扣HARQ重传<br/>10% BLER → -10%"| E["~0.63 Gbps"]
E -->|"扣协议栈开销<br/>PDCP/RLC/MAC/TCP → -8%"| F["~0.58 Gbps"]
F -->|"扣信号衰减/干扰<br/>-10~30%"| G["实际体验<br/>~0.4~0.5 Gbps"]
style A fill:#c8e6c9
style G fill:#ffcdd2
理论值和实际值之间的差距,主要来自以下因素:
| 衰减因素 | 原因 | 典型影响 |
|---|---|---|
| TDD上下行配比 | TDD模式下上行也要占时间 | -20%~-30% |
| MCS降级 | 信道不够好,基站降低MCS | -10%~-40% |
| MIMO Rank下降 | 多径环境不理想,Rank从4降到2 | -50% |
| HARQ重传 | 10%的目标BLER意味着约10%需要重传 | -10% |
| 协议栈开销 | TCP/IP头、PDCP/RLC/MAC头 | -5%~-10% |
| 终端能力 | 基带处理能力、接收天线数限制 | 0%~-50% |
| 网络负载 | 多用户共享资源 | -10%~-90% |
工程经验法则:现网单用户实际体验速率大约是理论峰值的30%~60%。如果你的100MHz基站在Cell Center(小区中心,信号极好)测试,单用户跑到1.5Gbps属于正常水平。
上行速率计算思路完全相同,但有几个关键区别:
| 参数 | 下行 | 上行 |
|---|---|---|
| 最大MIMO层数 | 8层 | 4层 |
| 波形 | CP-OFDM | CP-OFDM或DFT-s-OFDM |
| DM-RS开销 | 类型1/2可选 | 类别1(开销通常更大) |
| 终端功率 | 基站功率大(200W+) | 手机功率小(0.2W) |
| 典型MCS | 256QAM常见 | 64QAM常见 |
上行峰值速率估算(100MHz、30kHz SCS、2层MIMO、64QAM):
$$R_{UL} = 2 \times 6 \times 0.9258 \times 273 \times 12 \times 14 \times 2000 \times (1-0.14) \approx \textbf{0.88 Gbps}$$
实际上行速率通常在200~500Mbps范围,因为手机发射功率有限、MCS通常较低、且很多终端只有2根发射天线。
当用户投诉"网速慢"时,可以按照以下思路排查:
flowchart TD
A["用户投诉网速慢"] --> B{"查基站带宽配置"}
B -->|"100MHz"| C{"查MCS"}
B -->|"仅20/40MHz"| Z["带宽不足<br/>建议扩频或CA"]
C -->|"MCS > 20"| D{"查MIMO Rank"}
C -->|"MCS < 15"| E["信号差/干扰<br/>优化覆盖或排查干扰"]
D -->|"Rank ≥ 3"| F{"查BLER"}
D -->|"Rank ≤ 2"| G["多径不足/天线问题<br/>检查天线配置"]
F -->|"BLER < 10%"| H["调度不足?<br/>查PRB利用率和用户数"]
F -->|"BLER > 15%"| I["信道质量差<br/>降低MCS或优化覆盖"]
H --> J["考虑负载均衡<br/>或扩容"]
style A fill:#ffcdd2
style Z fill:#c8e6c9
style E fill:#c8e6c9
style G fill:#c8e6c9
style I fill:#c8e6c9
style J fill:#c8e6c9
| 指标 | 理想值 | 关注阈值 | 含义 |
|---|---|---|---|
| MCS Index | 25~28 | <15 | 调制编码级别低=信道差 |
| RI (Rank Indicator) | 3~4 | ≤2 | 空间复用层数低=多径差 |
| CQI | 12~15 | <8 | 信道质量指示差 |
| BLER | <5% | >10% | 误块率高=需要重传 |
| PRB利用率 | 70~90% | <50% | 调度不充分 |
| PDSCH RB数/调度 | 接近满带宽 | 远低于满带宽 | 资源分配不足 |
不想每次都手算?推荐几个常用的在线计算器:
| 工具 | 特点 |
|---|---|
| RF Wireless World 5G NR Throughput Calculator | 基于规范公式,参数可调 |
| HiCellTek NR Throughput Calculator | 支持载波聚合配置 |
| ShareTechnote Max Throughput Estimation | 教学风格,附带详细解释 |
| Cafetele Worked Example | 手推示例,适合学习 |
Q: 为什么宣传说5G峰值10Gbps,但我只跑到500Mbps? A: "10Gbps"通常指毫米波(FR2)+ 800MHz聚合带宽 + 8层MIMO + 256QAM的极端理论值。现网Sub-6GHz单载波100MHz的下行理论峰值约2.3Gbps,考虑到TDD配比、实际MCS、MIMO Rank、网络负载等因素,单用户500Mbps在正常负载网络中是合理的。
Q: FDD和TDD对速率影响有多大? A: 影响很大。TDD模式下上下行共享同一频段,典型DDR 4:1配置下行只占80%的时间,直接砍掉20%的下行速率。而FDD上下行各有独立频段,下行可以100%时间传输。同样是100MHz,FDD下行峰值比TDD高约20%。
Q: 256QAM在什么条件下才能用到? A: 需要极好的信道条件(高SINR,通常>25dB),一般在小区中心、视距传播、低干扰场景才能达到。实测中,即使在良好覆盖下,基站也经常在64QAM和256QAM之间动态切换。
Q: 载波聚合怎么算速率? A: 载波聚合就是简单相加。如果聚合了两个100MHz载波,每个载波峰值2.3Gbps,则聚合后理论上可达4.6Gbps。但要注意终端能力限制——并非所有手机都能同时处理多个载波的最大吞吐量。
Q: 上行速率为什么总比下行低这么多? A: 三个原因叠加:①手机发射功率远低于基站(0.2W vs 200W),上行MCS通常较低;②手机天线数少,上行MIMO层数通常只有1~2层;③TDD模式下上行时隙占比通常只有20%左右。三重叠加导致上行速率通常是下行的1/3~1/5。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
