刚做通信物理层那会儿,我最怕的问题不是“信道估计怎么做”,而是“一个OFDM符号到底含有多少bit数据”。听起来简单,真答起来却容易翻车。说64QAM是6个bit吧,对方问那20MHz LTE一个符号是多少bit,我开始掰着指头算子载波数、导频、控制区,最后发现答案不止一个,甚至同一个系统里不同位置的符号都不一样。
这个问题其实特别值得掰开揉碎讲一遍。它横跨调制映射、OFDM资源网格、导频开销、循环前缀和编码速率,把这些概念串起来之后,你看物理层速率、调度公式、测试账本都会顺很多。这篇文章我从最小单元开始算,一步步算到一张完整速查表,顺便把新手容易踩的坑都点一遍。
1. 先从最小口径入手:一个子载波一“口”能吃多少bit
1.1 调制阶数决定每个子载波承载的bit数
OFDM系统里,数据不是直接以“bit”为单位放到子载波上的,而是先把若干个bit映射成一个调制符号,再放到某个子载波上。这个调制符号在复平面上对应一个点,所有这些点的集合就是星座图。
星座图上有多少个点,就叫多少进制的调制。常见有这些:
| 调制方式 | 星座点数 M | 每个子载波承载bit | 典型应用 |
|---|---|---|---|
| BPSK | 2 | 1 | 极低速率兜底 |
| QPSK | 4 | 2 | 低信号质量场景 |
| 16QAM | 16 | 4 | 中间档 |
| 64QAM | 64 | 6 | LTE / WiFi高速档 |
| 256QAM | 256 | 8 | 高信噪比场景 |
| 1024QAM | 1024 | 10 | WiFi 6上限 |
为什么一算就是log2(M)?原因很简单:M个星座点要想被解调端区分,每个点必须对应一个互不相同的bit组合。64个点就要有64种组合,6个bit能产生2^6=64种组合,所以64QAM每符号承载6bit。你可以把它理解成一个码本,码本越大,每个字符携带的信息量越多,但字符之间的距离越近,越容易被噪声“认错”。
所以第一层的答案是:一个子载波上放多少个bit,取决于调制阶数,而不是这个子载波本身的频率高低。子载波只是一个传输通道,通道里能塞多少信息,由调制方式和信道质量共同决定。
1.2 一个OFDM符号周期内,每个子载波只发一个星座点
这里有个常见的理解误区:子载波频率很高,有人以为它每个振荡周期都能发一个bit。实际不是这样。
OFDM的发送过程是:把一串bit按频域排好,每个子载波位置上放一个复数星座点,然后做IFFT,得到时域波形。这个波形在一个OFDM符号周期内是完整的、并行的,每个子载波的幅度和相位在该符号周期内保持不变。真正承载信息的是这个复数点在Q路还是I路、幅度多大、相位偏了多少,而不是高频振荡本身“一周期发一bit”。
所以更准确的口径是:一个子载波在一个OFDM符号周期内,只发一个调制符号,也就是log2(M)个bit。这个“一口”的概念很重要,后面所有计算都建立在它上面。
2. 扩到整个OFDM符号:把所有子载波累加起来
2.1 总bit数公式与第一次试算
一个OFDM符号由N个并行的子载波组成,每个子载波上放一个独立的调制符号。那么一个OFDM符号的bit数就是:
总bit数 = 数据子载波数 × 每个子载波的bit数
写成更直观的形式就是:
每符号bit = N_data × log2(M)
举个例子。LTE 20MHz带宽,子载波间隔15kHz,一个资源块是12个子载波、180kHz,20MHz里一共有100个资源块,所以可用于调度的子载波数是1200个。如果用64QAM,每个子载波6bit,一个OFDM符号的数据bit就是:
1200 × 6 = 7200 bit
也就是900个字节。一个符号能装900字节,听起来不少,但LTE一毫秒内有14个符号,这14个符号能不能都满负荷,后面细说。
再看WiFi的对照。802.11ac在80MHz下,FFT大小是256,但真正用于数据传输的子载波是226个。如果跑256QAM,每个子载波8bit,一个OFDM符号的bit数是:
226 × 8 = 1808 bit
一个符号才226字节,比LTE少,但WiFi的符号时间短得多,符号速率高,所以每秒总吞吐并不低。这也是为什么看系统性能不能只看“一个符号多少bit”,必须把时间维拉进来。
2.2 为什么不能直接把FFT大小当子载波数量
刚接触协议的人最容易犯的错,是看到FFT大小是2048,就拿2048去乘调制bit。错在FFT大小只是基带处理的采样点数,不代表这些点都能用来传数据。
真实系统里,子载波要分成几类:
- 数据子载波:真正承载用户数据的。
- 导频子载波:发已知序列,用于信道估计、相位跟踪,不承载用户数据。
- 直流子载波:中心频点附近,容易受本振泄漏和直流干扰,通常不承载数据。
- 保护子载波:频谱两侧留空,用于满足发射频谱模板要求,避免干扰相邻信道。
以802.11ac的20MHz为例,FFT大小是64,但总共有52个非零子载波,其中4个导频、48个数据。FFT里剩下的12个位置是直流和保护。80MHz下FFT大小是256,数据子载波226个,导频8个,剩下的是直流和保护。换句话说,FFT大小越大,不等于能用的数据越多,中间有相当一部分是“结构性开销”。
LTE的情况略有不同,它几乎所有子载波都参与传输,但导频是在某些RE上复用的,所以一个符号里能不能放满7200bit,要看这个符号是不是含导频的符号。这一点放到后面资源网格部分展开。
3. 完整算一遍:LTE 20MHz 64QAM单流到底是多少bit
3.1 关键参数是怎么来的
LTE 20MHz的系统参数算是通信物理层的“标准练手题”,参数如下:
- 子载波间隔Δf = 15kHz,因此FFT有效符号时间T = 1/15000 ≈ 66.7us。
- 20MHz带宽内有100个资源块,每个RB有12个子载波,总共1200个可用于调度的子载波。
- 系统采样率30.72MHz,对应FFT大小2048,因为2048 × 15kHz = 30.72MHz。
- 正常循环前缀下,1ms子帧有14个OFDM符号,前一个时隙的第一个符号CP稍长,其他符号CP稍短。
这里多说一句FFT大小和带宽的关系。2048这个数字不是“20MHz带宽直接分配2048个子载波”,而是采样率除以子载波间隔的结果。这2048个频域位置里,实际承载数据的只有1200个,两侧还有保护带。这就是前面说的“FFT不等同于数据子载波数”。
3.2 分步计算:从每符号bit到毛速率
第一步,一个数据子载波用64QAM,承载6bit。
第二步,一个OFDM符号如果所有1200个数据子载波都满负荷,则:
1200 × 6 = 7200 bit
第三步,1ms内有14个OFDM符号,如果14个符号全都能放满数据,则:
7200 × 14 = 100800 bit/ms = 100.8Mbps
这就是很多人说的“LTE 20MHz 64QAM单流理论上限”的毛速率。注意“毛”字——它假设没有任何导频、没有任何控制信道、没有编码冗余,所有RE都被64QAM数据填满。真实系统永远到不了这个数,因为导频和控制必须要占地方。
第四步,如果开2×2 MIMO,两个空间流各自独立映射数据,毛速率翻倍到201.6Mbps。再扣除导频、PDCCH、同步信号、广播信道和编码率之后,通常就回到我们熟悉的150Mbps量级。这也是为什么LTE Cat4的峰值速率标称150Mbps,而不是201Mbps。
3.3 同一个系统里,不同OFDM符号的bit数不一样
这一点特别容易忽略。LTE里不是每个OFDM符号都能让1200个数据子载波满载。下行参考信号CRS在子帧的第0、4、7、11个OFDM符号上出现,这些符号里的部分RE被导频占掉,数据RE就减少了。所以“一个OFDM符号多少bit”这个问题,严格说要看这个符号是纯数据符号还是带导频符号。
带导频符号的数据bit = (1200 - 导频占用的子载波数) × 调制bit。
同一套系统、同一个调制方式下,符号位置不同,答案不同。这也是为什么我不建议背一个固定数字,而是建议掌握“数资源网格”的方法,下面会专门讲。
4. 加入时间维和编码率,才会变成吞吐率
4.1 OFDM符号的“单价时间”是1/Δf加上循环前缀
前面算的7200bit是“一次搬运的量”,但每秒能搬多少次,取决于OFDM符号周期。符号周期由两部分组成:
符号周期 = 1/Δf + 循环前缀
1/Δf是FFT的有效积分时间,循环前缀是为了抵抗多径时延扩展而在符号之间插入的保护。不同系统差别很大。
| 系统 | 子载波间隔 | 有效符号时间 | 典型GI/CP | 符号速率 |
|---|---|---|---|---|
| LTE 15kHz | 15kHz | 66.7us | 4.7us左右 | 约14k符号/s |
| WiFi 11ac 80MHz | 312.5kHz | 3.2us | 0.8us | 约250k符号/s |
| WiFi 11ax 80MHz | 78.125kHz | 12.8us | 0.8us | 约73.5k符号/s |
所以LTE一个OFDM符号虽然能装7200bit,但每秒只有14000个符号;WiFi 11ac一个符号只能装1808bit,但每秒有25万个符号。把这个乘起来:
- LTE:7200 × 14000 ≈ 100.8Mbps(毛速率,单流)
- WiFi 11ac 80MHz:1808 × 250000 ≈ 452Mbps(毛速率,单流)
看到没有,单看“一个符号多少bit”,WiFi比LTE少,但人家符号时间短,按秒算完全不落下风。这就是为什么讨论OFDM符号bit数时,必须把时间维一起带进来,否则会得出非常误导的结论。
4.2 编码率会把“有用bit”再打一个折扣
还有一个经常被漏掉的概念:装在OFDM符号里的bit,是信道编码之后的bit,不是用户原始数据bit。
为了纠正信道错误,发端会给原始数据加上校验bit。编码率3/4的意思就是,每4个编码后的bit里,只有3个是真正的用户数据,1个是冗余。LTE高速率场景的编码率可以到0.93左右,WiFi则常用5/6。所以净荷速率公式是:
用户吞吐 ≈ 每符号bit × 符号速率 × 编码率 × 空间流数 × 协议开销系数
回到LTE的例子:100.8Mbps毛速率 × 0.93编码率,再扣除导频和控制带来的约20%开销,就得到单流约75Mbps、双流约150Mbps的峰值。如果不乘编码率,你就永远理解不了为什么“明明一个符号7200bit,下载却只有几十兆”。
4.3 MIMO会让bit按空间流成倍增加
MIMO再怎么强调都不为过。OFDM符号的bit数公式,在多层空间复用下要加一个层数因子:
每符号总bit = N_data × log2(M) × N_layer
以LTE 2×2 MIMO、64QAM、满负荷纯数据符号举例:
7200 × 2 = 14400 bit
一个符号从900字节变成1800字节。当然这是理想信道条件下才能做到,一旦信道相关性高、SNR不足,系统会自适应降阶调制或减少层数。实际调度时,你会看到调制阶数和层数是一起波动的。
5. 带导频的符号怎么算:资源网格才是完整答案
5.1 在RB网格里数RE,比背公式更可靠
如果只记公式,碰到带导频的符号很容易错。我自己的习惯是画资源网格。
拿LTE正常CP来说,一个资源块在一个时隙内是12个子载波 × 7个OFDM符号,共84个RE。如果64QAM、所有RE都放数据,一个RB一个时隙最多是:
84 × 6 = 504 bit
但真实情况下,CRS要占掉一部分。以最常用的2天线端口CRS配置为例,一个RB在时隙里会被吃掉若干个RE。再加上前几个OFDM符号里还有PDCCH控制区,剩下的PDSCH数据RE才是真正能装用户数据的地方。
你在协议文档里看到的TBS(传输块大小)查表,本质上就是先数出一个调度块里可用的数据RE数,再乘以调制bit和层数,最后按编码率反推原始数据大小。所以“一个OFDM符号多少bit”看起来是个小问题,实际上是TBS计算的原型。
5.2 5G NR里,同一个符号的bit数更不固定
5G NR比LTE更灵活,解调参考信号DMRS是按需配置的,可能只在某几个符号上出现,而且不同的符号上DMRS密度还不一样。再加上PT-RS用于相位噪声补偿,也是按需放置。所以讨论5G一个OFDM符号多少bit,必须先问:这个符号上有没有参考信号?有没有控制资源集?数据子载波是否全部调度满?
以100MHz、30kHz参数集为例,调度子载波数是273个RB × 12 = 3276个。如果跑256QAM,一个纯数据符号的bit数是:
3276 × 8 = 26208 bit
如果这个符号带DMRS,数据RE减少,bit数就下降。同一套参数集、同一个符号时间,答案可以有好几种。
6. 常见系统速查:一张表看穿量级差异
6.1 标准配置下的每符号bit参考
把几种常见系统的典型配置放在一起看,量级差异一目了然。这里按单空间流、纯数据符号、不考虑导频在符号内的占用算,实际调度时要自行扣除。
| 系统 | 标称带宽 | 子载波间隔 | 数据子载波数 | 典型高阶调制 | 每符号bit(单流) |
|---|---|---|---|---|---|
| NB-IoT下行 | 180kHz | 15kHz | 12 | QPSK | 24 |
| LTE下行 | 20MHz | 15kHz | 1200 | 64QAM | 7200 |
| 5G NR下行 | 100MHz | 30kHz | 3276 | 256QAM | 26208 |
| WiFi 11ac | 80MHz | 312.5kHz | 226 | 256QAM | 1808 |
| WiFi 11ax | 80MHz | 78.125kHz | 980 | 1024QAM | 9800 |
注意NB-IoT这个极端例子:12个数据子载波、QPSK,一个符号才24bit,连3个字节都不到。但它覆盖一个窄带物联网设备的控制信令绰绰有余,因为它对速率的要求本来就低,换来的是极强的覆盖和低功耗。这正好说明“一个OFDM符号多少bit”不是一个越高越好的指标,而是系统设计权衡的结果。
6.2 从频谱效率看数字差异
把每符号bit除以“带宽 × 符号时间”,得到的是频谱效率,单位是bit/s/Hz。这个指标可以公平比较不同系统。
- LTE 20MHz、64QAM、真实有效子载波1200:毛频谱效率约100.8Mbps / 20MHz ≈ 5.04 bit/s/Hz。
- WiFi 11ax 80MHz、1024QAM、数据子载波980:毛频谱效率约720Mbps / 80MHz ≈ 9 bit/s/Hz。
差距来自两块:一是调制阶数,1024QAM每子载波10bit,比64QAM的6bit高很多;二是有效子载波占比,802.11ax在80MHz下数据子载波达到980/1024,占比超过95%,比LTE的1200/2048高出一截。这也解释了为什么WiFi 6在良好信道下的峰值速率能做到接近千兆级。
7. 新手容易踩的坑
7.1 以为FFT大小就是数据子载波数
2048点FFT不等于2048个数据子载波。LTE的20MHz真正用于PDSCH调度的只有1200个子载波,其余是保护带和参考信号。WiFi更明显,64点FFT里只有48个数据子载波。看协议时一定要分清“FFT点数”“有效子载波数”“数据子载波数”三个概念。
7.2 以为64QAM就是一个OFDM符号64bit
这是最典型的误会。64QAM指的是每个子载波上的调制符号有64个星座点,承载6bit。要算整个OFDM符号,必须乘以数据子载波数。一个只有12个子载波的窄带系统,64QAM也只有72bit;一个1200子载波的宽带系统,64QAM是7200bit。
7.3 算速率时忘了乘编码率
每符号bit算完,直接拿去除符号时间,得到的是编码前的毛速率。实际用户吞吐还要乘编码率、扣除导频和控制开销、再乘流数。很多人不理解为什么理论计算和实测对不上,多半是卡在这一步。
7.4 把所有OFDM符号都当成满载
LTE里CRS符号、PDCCH符号、空口上的同步和广播信号,都会占掉一部分RE。说“一个OFDM符号7200bit”只适用于纯数据且满调度的理想符号。真正看调度情况时,要按照资源网格逐个扣除。
8. 口算技巧:我平时怎么快速估一个OFDM符号的bit数
最后分享几个我自己常用的口算套路,算是给文章收个尾。
第一,看到系统先问四个参数:FFT大小、子载波间隔、有效数据子载波数、最高调制阶数。前两个决定符号时间,后两个决定每符号bit。
第二,口算时先算“每RB每符号的bit数”。LTE一个RB是12个子载波,64QAM时是72bit/RB/符号;100个RB就是7200bit/符号。这样算比直接记1200个子载波更不容易错,因为调度时经常以RB为单位。
第三,如果一个符号带导频,我习惯先画一列RE出来:12个子载波往下排,7个符号往右排,然后把导频、控制、数据分别标上去。标完再数“这一列里有多少数据RE”,乘调制bit,答案就出来了。这个动作看起来笨,但它能把“一个OFDM符号多少bit”变成一个永远不会错的算术题。
我自己刚入行时,总觉得背下峰值速率、背下一个符号多少bit就掌握了物理层。后来发现,数字会变,参数集会变,只有“先画网格、再数RE、再乘调制、再扣开销”这套方法不会变。把这个问题想透之后,看调度、看TBS、看吞吐测试,思路会顺畅很多。以后再有人问你一个OFDM符号多少bit,你可以反问他:你说的是哪个系统、哪个符号、带不带导频、开没开MIMO?能把条件说清楚,答案自己就算出来了。