LTE 中的 ACK/NACK/DTX

本文介绍了LTE系统中HARQ与PUCCH的工作原理。重点讲述了当未检测到有效的DL-SCH相关控制信令时,PUCCH上的传输机制及三种状态检测(ACK、NAK、DTX)。此外还解释了Turbo编码中systematic bit的重要性,并讨论了不同情况下(如ACK、NACK、DTX)的数据重传策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Introduction

If no valid DL-SCH-related control signaling is detected, then nothing is transmitted on the PUCCH (i.e. DTX). Apart from not unnecessarily occupying PUCCH resources that can be used for other purposes, this allows the eNodeB to perform three-state detection, ACK, NAK, or DTX, on the PUCCH received. Three-state detection is useful as NAK and DTX may need to be treated differently. In the case of NAK, retransmission of additional parity bits is useful for incremental redundancy, while for DTX the terminal has most likely missed the initial transmission of systematic bits and a better alternative than transmitting additional parity bits is to retransmit the systematic bits.[1]

Turbo 编码中的systematic bit 比 parity bit 更重要。
在初传中,至少包含所有systematic bit 和 部分parity bit。
在重传中,包含初传中没有的parity bit。
NACK要求重传parity bit。
DTX要求重传system bit。

HARQ功能同时跨越物理层和MAC层。
生成RV、软合并,CRC校验是由物理层负责。
HARQ是通过CRC判断数据包是否出错,检验CRC是在软合并之后。

Algorithm: PUSCHSINR-based PUSCHDTX determination

IF PUSCHSINR>a, NO DTX
ELSE IF a>PUSCHSINR>b
IF(ACK), NO DTX/ACK
ELSE IF (NACK),Tmp DTX
ELSE IF b>PUSCHSINR
IF(ACK),NO DTX/ACK
ELSE IF(NACK) DTX

FAQ

  1. This msg is sent from UE->BS or BS->UE?
    both

  2. If a UE is getting data from multiple carriers, how can it report ACK/NACK?

OptionComment
Let UE send ‘ACK’ only when is was successful to decode PDSCH from all component carriers and transmit ‘NACK’ if any of PDSCH is failed to be decoded.This is technically possible, you would clearly see whis would be very inefficient way and cause a lot of unnecessary retransmission. So the method is not considered in real implementation.
Let UE send ‘ACK/NACK’ for each carrier separatelyThis would not sound perfect way, but we can reuse the existing PUCCH format without much modification.
Let UE send ‘ACK/NACK’ for each carrier on a single PUCCHThis would sound the bets, but you can easily guess we would need a new PUCCH format since all the exsiting PUCCH format is designed to send ‘ACK/NACK’ for one carrier.

[1] 4G LTE/LTE-Advanced for Mobile Broadband,Erik Dahlman, Stefan Parkvall, and Johan Sköld

### 关于ACK/NACK位的概念及其使用场景 #### 1. **ACK/NACK 的基本概念** ACKAcknowledgment)表示确认信号,用于通知发送方接收到的数据包已被成功接收并验证无误。而 NACK(Negative Acknowledgment)则相反,它表明接收方未能正确接收到数据包或检测到错误[^2]。 #### 2. **ACK/NACK 的典型应用场景** - 在稳定的网络环境中,当丢包率较低时,优先采用 ACK 来确保数据的可靠性。这是因为 ACK 提供了一种简单有效的机制来确认消息的成功传递[^3]。 - 对于高丢包率或不可靠的网络环境,NACK 更加适用。通过仅报告未成功的传输部分,可以显著降低额外的带宽消耗。然而,这也意味着需要设计更加健壮的重传逻辑以应对潜在的 NACK 报告丢失情况。 #### 3. **ACK/NACK 的具体实现方式** 在实际应用中,比如 STM32 平台上的串口通信,可以通过软件编程实现简单的 ACK/NACK 协议: ```c #include <stdio.h> #define MAX_RETRIES 3 void send_data_with_ack(int data, int *retries) { while (*retries > 0) { printf("Sending Data: %d\n", data); char response; scanf("%c", &response); if (response == 'A') { // Assuming 'A' represents an ACK signal. printf("Data acknowledged.\n"); break; } else if (response == 'N') { // Assuming 'N' represents a NACK signal. printf("Data not acknowledged. Retrying...\n"); (*retries)--; } } if (*retries == 0){ printf("Max retries reached. Transmission failed.\n"); } } int main() { int retries = MAX_RETRIES; send_data_with_ack(42, &retries); } ``` 上述代码片段展示了一个基础版本的 ACK/NACK 数据传输流程,在此过程中尝试多次重新发送直到获得肯定应答或是达到最大重试次数为止。 #### 4. **REX 的补充说明** 除了传统的 ACKNACK 外,某些高级协议还引入了 REX(Request for retransmission),即请求特定分组的再传送功能。这种方式允许接收者精确指出哪些具体的帧需要被再次发送而不是整体重复整个序列,从而进一步优化效率和性能[^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值