Code Rate

本文翻译自http://www.sharetechnote.com/

简言之,码率可以定义为分配给子帧的数据速率与理想情况下可以在子帧中分配的最大数据速率的比率。换句话说,它意味着“码率定义为传输块大小与每个子帧可用于传输该传输块的物理层比特总数之间的比率”。较低的码率意味着在信道编码过程中插入更多冗余位,较高的码率意味着插入更少冗余位。

准确计算码速率会有点棘手,而书面解释计算方法可能会更加棘手。请先参考下面的插图,然后试着阅读本页的其余部分。
image

码率有理论上的限制吗?

这个问题意味着“有没有任何理论上的最大码速率可以在最小误码率(或零误码率:误码率)的情况下实现最大吞吐量?”。
码率和误码率之间的关系是一种统计(概率)关系。很难为这个答案找到一个明确的值。说到现实,情况变得更加模糊,因为接受端的表现也发挥了作用。
然而,3GPP规范中有一条指导原则。TS36。213 7.1.7调制顺序和传输块大小的确定,其说明如下。

如果有效信道码率高于0.930,则UE可以在初始传输中跳过对传输块的解码,其中有效信道码率被定义为下行链路信息比特(包括CRC比特)的数目除以PDSCH上的物理信道比特的数目。如果UE跳过解码,则物理层向更高层指示传输块未成功解码。对于具有正常CP的特殊子帧配置0和5,或具有扩展CP的配置0和4,如TS 36.211的表4.2-1所示:“演进通用地面无线电接入(E-UTRA);物理信道和调制”,特殊子帧的DWPT中不应存在PDSCH传输。

基于此,用一个参考设备和eNB模拟器做了一些实验。试验条件和结果如下。

  1. System BW = 15 Mhz
  2. Number of RB = 75
  3. MCS = 28
  4. DUT to Equipment Connection : Conductive and Downlink Power is high (meaning SNR is very good)
  5. Downlink 256 QAM : Disabled
  6. CFI vs Code Rate (Following is for the subframe with no PBCH)

image

在CFI=1的情况下获得了没有CRC错误的最佳吞吐量。在CFI=2时也获得了相当好的吞吐量。
如果不使用PBCH减少子帧处的MCS,则会得到更高的CRC错误。可以说,3GPP中描述的结果与3GPP非常一致。

在CFI=3的情况下,参考设备仍然会尝试解码PDSCH,即使码率非常高(根据经验,所有设备都会尝试解码,不管它的码率有多高),但CRC错误太高会导致掉话。

码速率计算示例

以MCS=8,RBs=3为例。
为此,我们必须根据上面引用的协议获得这两个数字。

  1. 下行信息比特数(包括CRC比特)
  2. 物理信道比特数

1指的是“(传输块大小+CRC比特)”,它是获得信道编码的消息的大小。
2指物理层中可用位的数量。根据调制方案,每个资源元素(RE)可以携带2、4或6位。只需要计算每个子帧上为PDSCH传输保留的REs数,然后将其乘以2、4或6(根据调制方案),然后将得到PDSCH上的物理信道比特数。
回到示例条件MCS=8,RBs=3。在这种情况下,
对于第1项,可以很容易地从TS36中看出这一点。213表7.1.7.1-1

对于第2项,有

  1. 3 x 12分辨率/符号
  2. (14个符号/子帧)x(3 x 12个分辨率/符号)=504分辨率/子帧。在这504个REs中,我们必须删除分配给PDCCH的REs,因为它没有携带真实数据。假设为PDCCH分配了3个符号/子帧。在这种情况下,PHY层中可用于数据传输的REs的数量是504-(3 x(3 x 12)),即396。现在我们必须把这个数字转换成“位数”。在我们的示例中,调制方案是QPSK,它每RE携带2比特。因此,第(ii)项的值为2 x 396=792。这假设子帧不承载PBCH、PSS、SSS。如果是承载这些信号的子帧,我们也必须删除PBCH、PSS和SSS的REs。

现在我们有了1和2的值。如果你取1/2,你会得到编码率。
上面的解释听起来太复杂和混乱了。另一位这方面的专家,给了更清楚的解释如下:
码率是为传输选择的TBS、MCS和N_RB组合的结果(结果)。有效信道码率定义为下行链路信息比特数(包括CRC比特)除以PDSCH上的物理信道比特数。

以mcs=8为例;ITBS=8,TBS=808;N_PRB=6
下行链路信息比特数=808+24(CRC比特)=832。PDSCH上的物理信道比特数=6(N_PRB)12(PRB中的子载波数)7(时隙中的OFDM符号数)2(子帧中的时隙数)2(每个调制符号的比特数)=2016
有效信道编码率=832/2016=0.4127

TTCN Code for Code Rate Calculation

从LTE协议一致性TTCN(MAC_717.TTCN)中找到了一个有用的源代码片段。对于许多工程师来说,一个源代码就相当于1000个单词。
image

正如在上面的代码中看到的,码率的基本公式是
码率=(传输块大小+CRC位大小)/(REs总数x每个符号的位数)

等式本身看起来很简单,但实际计算并没有那么简单,主要是因为很难计算出“REs的总数”。这“RE(资源元素)”是可以承载PDSCH或PUSCH数据的元素。携带其他比特(例如RS、PHICH、PDCCH、SRS等)的REs不被计算在内。即使分配了相同数量的RB和MC,分配块中的REs数量也会根据不同情况而有所不同,如下所示:

  1. 是上行链路还是下行链路(UL/DL的帧结构不同)
  2. 为下行链路的控制信道(PCFICH值)分配了多少个符号?
  3. 什么是传输模式?(根据传输模式,参考信号的符号数会有所不同)
  4. 是否携带SRS(上行)?
  5. ...

如果想手工计算码率,会看到需要考虑的每一个详细的因素。

Code Rate vs MCS in LTE

以下是LTE中每个MCS的码率,假设系统带宽为20 Mhz,分配了100个RB,不支持256 QAM。准确的码率值会有一点变化,但变化幅度大约在1%以内。
image

下图显示了基于上表的MCS和码率之间的关系。
image

posted @ 2022-03-13 10:49  GeofferyH  阅读(823)  评论(0编辑  收藏  举报