Table of Contents
Os códigos de verificação de paridade de baixa densidade (LDPC) tornaram-se uma pedra angular dos sistemas de comunicação digital modernos, permitindo uma transmissão de dados confiável perto do limite de Shannon. Primeiramente introduzido por Robert Gallager em sua tese de doutorado de 1963 e posteriormente redescoberto na década de 1990, esses códigos são agora integrais a padrões como DVB-S2, Wi-Fi (IEEE 802.11n/ac/ax), 5G NR e comunicações de espaço profundo. A capacidade de ajustar a taxa de código – isto é, a proporção de bits de informação para bits transmitidos totais – é essencial para adaptar-se às diferentes condições de canal e requisitos de qualidade de serviço. Duas técnicas primárias para ajuste de taxa de código sem redesenhar toda a estrutura de código estão pontuando e encurtando. Ambos os métodos alteram a taxa de código eficaz enquanto alavancam a mesma matriz de LDPC subjacente, oferecendo flexibilidade para sistemas compatíveis com taxas. Este artigo examina os princípios, detalhes de implementação e trocas práticas de pontuação e encurtamento no contexto dos códigos LDPC.
Fundamentos dos códigos LDPC
Um código LDPC é um código de bloco linear definido por uma matriz de verificação de paridade esparsa ]H de tamanho m × n. A esparsidade de H[[n[] significa que contém muito poucos, o que permite algoritmos de decodificação iterativa eficientes, tipicamente propagação de crenças (também conhecido como algoritmo de produto somatório) realizado em uma representação de grafos Tanner. No gráfico de Tanner, nós variáveis correspondem aos nn[] bits de uma palavra de código de de de de decodificação eficiente, e os nós de verificação correspondem ao ]m]m[F] todas as equações de verificação de paridade[FFLT[:18T][F.
A taxa de código R] é dada por [n[ – m[] / n[] para uma matriz de classificação completa, representando a fração de uma palavra de código que carrega informação original. Uma taxa de código mais alta significa menos redundância (mais rendimento), enquanto uma taxa de código mais baixa proporciona correção de erro mais forte (mais confiabilidade). No entanto, uma matriz fixa LDPC produz uma taxa fixa; para variar a taxa eficientemente sem armazenar múltiplas matrizes, perfurar e encurtar são empregados.
Por que ajustar as taxas de código?
Os canais de comunicação variam ao longo do tempo devido ao desvanecimento, interferência e ruído. Uma taxa de código único não pode servir optimamente todas as condições: em boas condições, uma taxa elevada maximiza a taxa de rendimento de dados; em más condições, uma taxa baixa garante uma recepção confiável. Os sistemas de codificação e modulação adaptativa (ACM) necessitam, portanto, de códigos compatíveis com a taxa. A perfuração e o encurtamento permitem que o mesmo codificador e decodificador suportem múltiplas taxas, reduzindo a complexidade do hardware e os requisitos de memória.
A Técnica de Pontuação
A pontuação é um método para [[FLT: 0]] aumentar[[FLT: 1]] a taxa de código eficaz removendo seletivamente (não transmitindo) alguns bits de uma palavra de código após a codificação. Tipicamente, um código mãe de alta taxa é gerado primeiramente usando uma matriz LDPC; então um subconjunto dos bits de paridade (ou ocasionalmente bits sistemáticos) é descartado antes da transmissão. O receptor, ciente do padrão de punção, trata os bits ausentes como apagamentos e tenta recuperar a palavra de código original usando os bits restantes e a matriz de verificação de paridade completa.
Matematicamente, se o código-mãe tem comprimento n e k bits de informação (taxa k/n, pontuação p bits resulta em uma palavra-código transmitida de comprimento n – p, dando uma taxa efetiva de ]k / (n – p)], que é superior à taxa de código-mãe. O decodificador, no entanto, ainda opera na incerteza máxima n]-bit set--set-os nós variáveis perfurados são inicializados com zero rácios de log-likeity (LLRs), indicando a máxima incerteza (i.e., uma rasura). Durante a sua decodificação, os nós de variável perfurados podem ser iniciados com as informações não corretas que permitem o sucesso.
Padrões de Pontuação e Considerações de Design
O desempenho de um código LDPC perfurado depende fortemente de quais bits são puncionados. A punção aleatória pode degradar o desempenho porque pode quebrar a estrutura do código, especialmente para comprimentos de bloco curtos.
- Punção regular: Remova bits de acordo com um padrão periódico fixo. Isto é simples, mas pode não ser o ideal.
- Puntura baseada em peso de coluna: Priorizar a punção de nós variáveis com peso de coluna inferior (menos conexões para verificar nós) porque contribuem menos para a decodificação.Puntura de nós de peso maior tende a causar perda de desempenho mais grave.
- Punção consciente de recuperação:Desenhe o padrão para que os nós perfurados possam ser recuperados rapidamente – tipicamente garantindo que cada nó perfurado esteja conectado a pelo menos um nó de verificação cujos outros vizinhos são todos transmitidos (ou seja, um “nodo de verificação de recuperação”).
Um conceito importante é a árvore de recuperação : após um certo número de iterações de decodificação, o LLR de um nó variável perfurado pode tornar-se não- zero devido à informação extrínseca dos nós de verificação. Quanto mais profunda a árvore de recuperação, mais iterações são necessárias. Para famílias compatíveis com a taxa, "níveis de punção" são frequentemente pré-computados para atingir uma gama de taxas alvo com degradação mínima do desempenho. Por exemplo, o padrão DVB-S2 define um conjunto de padrões de punção para seus códigos LDPC para produzir múltiplas taxas de código a partir de um único código mãe.
Impacto na complexidade da decodificação
A punção não aumenta a complexidade de decodificação por iteração, pois o mesmo número de nós variáveis e de verificação está presente no gráfico de Tanner. No entanto, o número de iterações necessárias para a convergência pode aumentar devido às rasuras iniciais. Além disso, o decodificador deve conhecer o padrão de punção para inicializar adequadamente as LLRs. No geral, a punção é um método de baixa complexidade para atingir taxas mais elevadas, tornando-o popular em sistemas adaptativos.
A Técnica de Encurtamento
O encurtamento é usado para [[FLT: 0]] diminuir[[[ FLT: 1]] a taxa de código eficaz, tornando o código mais robusto. Em encurtamento, alguns bits de informação são definidos para um valor conhecido (normalmente zero) antes da codificação, e esses bits não são transmitidos. Apenas os bits de informação restantes e todos os bits de paridade são enviados. O receptor, sabendo quais posições foram encurtados, trata os bits conhecidos como informação lateral adicional durante a decodificação.
Considere um código-mãe com k bits de informação e n bits totais (taxa k/n). Se encurtarmos bits bits de paridade, a palavra-código transmitida real consiste em k – s bits de informação e ] n – k bits de paridade, para um total de n – s[ bits transmitidos. A taxa efetiva torna-se [[] – s[ / (]] n – s[[ – s[[]] [(FLT:13]]]]] [S] [S]] [S] [S] [(S]] [
Implementação e Desempenho
O encurtamento é simples na prática: o codificador simplesmente define as posições de bits de informação escolhidas para zero (ou qualquer valor conhecido) e depois codifica como de costume. No decodificador, as LLRs para esses nós variáveis são configuradas para + . (para um zero conhecido em chaveamento binário de mudança de fase) ou a magnitude equivalente. Como estes bits são conhecidos com certeza, servem como pontos de âncora que ajudam o decodificador iterativo a resolver incertezas em outros bits.
Uma vantagem chave do encurtamento é que ele não requer qualquer modificação da matriz de verificação de paridade ou do algoritmo de decodificação. A estrutura do código permanece intacta, mas a taxa de código é efetivamente reduzida. Ao contrário da punção, que introduz rasuras que devem ser resolvidas, encurtamento adiciona informações perfeitas. Como resultado, as melhorias de desempenho são geralmente mais suaves do que aquelas alcançadas diminuindo a taxa através de outros métodos (como usar um código mãe de menor taxa diretamente).
Trocas e Interações com a Punção
O encurtamento e a punção são frequentemente combinados para alcançar a adaptabilidade da taxa de grão fino. Por exemplo, um sistema pode usar um código- mãe com taxa 1/2, então aplicar a punção para aumentar a taxa para 2/3 ou 3/4, e simultaneamente aplicar o encurtamento para reduzir a taxa para 1/3 ou 1/4. Esta abordagem dupla permite que um único decodificador cubra uma ampla gama de taxas. No entanto, a combinação deve ser desenhada cuidadosamente: se muitos bits forem encurtados e perfurados (o que seria redundante), o desempenho pode sofrer. Normalmente, os sistemas reduzem os bits de informação para reduzir a taxa ou os bits de paridade de punção para aumentar a taxa, mas não ambos nos mesmos bits.
Um cenário comum onde ambas as técnicas são usadas é em requisição automática de repetição híbrida de redundância incremental (IR) (HARQ). Inicialmente, uma palavra de código perfurada de alta taxa é enviada. Se a decodificação falhar, bits de paridade adicionais (que foram previamente perfurados) são transmitidos em retransmissões subsequentes - isto é essencialmente um esquema de IR baseado em punção. O encurtamento pode ser empregado para reduzir a taxa efetiva se o código mãe original for muito alto para o canal.
Comparação de Ponturas e Encurtamento
| Aspect | Puncturing | Shortening |
|---|---|---|
| Effect on code rate | Increases rate (less redundancy) | Decreases rate (more redundancy) |
| Bits removed/not transmitted | Parity (or systematic) bits are omitted | Information bits are set to known value and omitted |
| State at decoder | Punctured bits are erasures (LLR=0) | Shortened bits have perfect LLR (large magnitude) |
| Performance trade-off | Higher rate → less error correction; may need more iterations | Lower rate → stronger error correction; increased overhead |
| Complexity | Same decoder graph; increased iterations possible | Same decoder graph; no extra iterations needed |
| Design challenge | Puncturing pattern must be optimized to avoid error floor | Minimal design effort; works well for small shortening amounts |
| Common use | Adaptive rate increase, ARQ, rate-compatible families | Fine rate reduction, code shortening for specific block sizes |
Aplicações em Normas Modernas
Tanto a punção quanto o encurtamento são implementados em padrões de comunicação importantes. Em DVB-S2] e sua extensão DVB-S2X, são suportados códigos LDPC de taxa 1/4 a 9/10. Estes são derivados de um conjunto comum de códigos mãe usando pontuação e encurtamento. O padrão define padrões específicos para atingir cada taxa alvo, garantindo desempenho quase-ótima. Da mesma forma, 5G NR[] usa códigos LDPC para o canal de dados, com gráficos de base (BG1 e BG2) desenhados para suportar a taxa de compatibilidade. A punção é usada para alcançar as taxas mais altas, enquanto que a redução (combinada com repetição) ajuda a alcançar as taxas mais baixas. O padrão 5G também emprega um “bloco CRC” e HARQ que depende de redundância incremental usando bits de paridade perfurados.
Em Wi-Fi 802.11n/ac/ax, os códigos LDPC são opcionais, mas amplamente implementados. A norma define um conjunto de taxas de código (1/2, 2/3, 3/4, 5/6) para cada comprimento de bloco. Essas taxas são alcançadas partindo de um código mãe taxa-1/2 e pontuando para obter taxas mais elevadas, ou encurtando para obter taxas mais baixas (embora o encurtamento seja menos comum neste contexto).O grupo de trabalho IEEE 802.11 publicou avaliações de desempenho que validam o uso de códigos LDPC perfurados para cenários de alto rendimento.
Missões de espaço profundo, como as da NASA usando o padrão CCSDS, também dependem de códigos LDPC com punção e encurtamento para ligações de telemetria e comando. A capacidade de ajustar a taxa de código sem alterar o decodificador de hardware é inestimável para missões de longa duração onde as condições de canal são imprevisíveis.
Métricas de desempenho e otimização
Ao desenhar um sistema compatível com a taxa usando punções e encurtamentos, os engenheiros avaliam a taxa de erro de bits (BER) e a taxa de erro de quadros (FER) como funções da relação sinal-ruído (SNR). O objetivo é aproximar o limite de Shannon para cada taxa efetiva. A pontuação normalmente introduz uma pequena penalidade em comparação com um código mãe dedicado da mesma taxa, mas a penalidade pode ser minimizada através de um design de padrões cuidadoso. A redução, porque adiciona bits conhecidos, muitas vezes executa muito perto de um código de baixa taxa natural da mesma dimensão.
Outra métrica importante é o piso de erros—a região em alto SNR onde a taxa de erro achata devido a conjuntos de armadilhas ou pequenos ciclos no gráfico de Tanner. A punção pode elevar o piso de erros se mal projetado, especialmente para códigos LDPC com comprimentos de bloco moderados. Encurtar, por outro lado, raramente introduz novos conjuntos de armadilhas porque reduz apenas o número de bits de informação sem alterar a topologia do gráfico.
Pesquisadores propuseram muitos algoritmos para otimizar conjuntamente padrões de punção, incluindo a evolução da densidade, gráficos de transferência de informação extrínseca (EXIT) e algoritmos genéticos. Por exemplo, o trabalho de Ha, Kim e McLaughlin (]"Punturação de Razão-Compatível de Baixa Densidade-Verificação de Códigos de Paridade com Comprimentos de Blocos Curtos", IEEE Transactions on Information Theory, 2004) fornece uma estrutura fundamental para projetar bons padrões de punção. Da mesma forma, para encurtar, o efeito sobre as mensagens extrínsecas do decodificador pode ser analisado usando a evolução da densidade para garantir nenhuma degradação.
Conclusão
A perfuração e o encurtamento são ferramentas essenciais para ajustar a taxa de código dos códigos LDPC sem exigir múltiplas implementações distintas de codificadores e decodificadores. A perfuração aumenta a taxa efetiva omitindo bits, transformando-os em rasuras no decodificador, enquanto o encurtamento diminui a taxa fixando bits de informação para valores conhecidos e não transmitindo- os. Ambos os métodos preservam a estrutura central da matriz LDPC, permitindo compatibilidade flexível de taxa para sistemas de comunicação adaptativos. Os padrões modernos, como DVB-S2, 5G NR e Wi-Fi, dependem dessas técnicas para proporcionar desempenho robusto em uma ampla gama de condições de canal. Com avanços contínuos na otimização de padrões e no design decodificadores, os códigos LDPC perfurados e encurtados permanecem uma área vibrante de pesquisa e uma pedra angular prática de comunicações digitais.