ES2988688T3 - Construcción de matrices de comprobación de paridad con ortogonalidad de filas para códigos QC-LDPC compatible con la velocidad - Google Patents
Construcción de matrices de comprobación de paridad con ortogonalidad de filas para códigos QC-LDPC compatible con la velocidad Download PDFInfo
- Publication number
- ES2988688T3 ES2988688T3 ES18732965T ES18732965T ES2988688T3 ES 2988688 T3 ES2988688 T3 ES 2988688T3 ES 18732965 T ES18732965 T ES 18732965T ES 18732965 T ES18732965 T ES 18732965T ES 2988688 T3 ES2988688 T3 ES 2988688T3
- Authority
- ES
- Spain
- Prior art keywords
- row
- ldpc
- parity check
- rows
- check matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/1137—Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/618—Shortening and extension of codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6306—Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
- H03M13/6368—Error control coding in combination with rate matching by puncturing using rate compatible puncturing or complementary puncturing
- H03M13/6393—Rate compatible low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0067—Rate matching
- H04L1/0068—Rate matching by puncturing
- H04L1/0069—Puncturing patterns
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1812—Hybrid protocols; Hybrid automatic repeat request [HARQ]
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Ciertos aspectos de la presente divulgación se refieren en general a métodos y aparatos para decodificar códigos compatibles con la tasa de verificación de paridad de baja densidad cuasicíclica (QC-LDPC), por ejemplo, utilizando una matriz de verificación de paridad que comprende primeras capas de acuerdo con un gráfico de núcleo de alta tasa y segundas capas para transmisión HARQ, donde la matriz de verificación de paridad tiene cuasi ortogonalidad de fila u ortogonalidad de fila completa dentro de las segundas capas. Un método ejemplar para realizar la decodificación de verificación de paridad de baja densidad (LDPC) incluye recibir bits suaves asociados a una palabra de código LDPC y realizar la decodificación LDPC de los bits suaves utilizando una matriz de verificación de paridad, donde cada fila de la matriz de verificación de paridad corresponde a una verificación de paridad elevada de un código LDPC elevado, al menos dos columnas de la matriz de verificación de paridad corresponden a nodos de variables perforados del código LDPC elevado, y la matriz de verificación de paridad tiene ortogonalidad de fila entre cada par de filas consecutivas que están por debajo de una fila a la que están conectados ambos los al menos dos nodos de variables perforados. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Construcción de matrices de comprobación de paridad con ortogonalidad de filas para códigos QC-LDPC compatible con la velocidad
Referencia cruzada a aplicaciones relacionadas
Campo técnico
Ciertos aspectos de la presente divulgación se refieren en general a procedimientos y aparatos para comunicaciones inalámbricas, y más particularmente a la ortogonalidad de filas en un diseño compatible con la velocidad de comprobación de paridad de baja densidad (LDPC).
Introducción
Los sistemas de comunicación inalámbrica se despliegan ampliamente para proporcionar diversos tipos de contenidos de comunicación tales como voz, datos, y así sucesivamente. Estos sistemas pueden ser sistemas de acceso múltiple capaces de admitir la comunicación de múltiples usuarios al compartir los recursos del sistema disponibles (por ejemplo, ancho de banda y potencia de transmisión). Algunos ejemplos de estos sistemas de acceso múltiple incluyen los sistemas de Evolución a Largo Plazo (LTE), los sistemas de Acceso Múltiple por División de Código (CDMA), los sistemas de Acceso Múltiple por División de Tiempo (TDMA), los sistemas de Acceso Múltiple por División de Frecuencia (FDMA), los sistemas del Proyecto de Asociación de 3ra Generación (3GPP) de Evolución a Largo Plazo (LTE), los sistemas avanzados de Evolución a Largo Plazo (LTE-A) y los sistemas de Acceso Múltiple por División Ortogonal de la Frecuencia (OFDMA).
Generalmente, un sistema de comunicación inalámbrico de acceso múltiple puede soportar simultáneamente la comunicación de múltiples nodos inalámbricos. Cada nodo se comunica con una o más estaciones base a través de transmisiones en enlaces directos e inversos. El enlace directo (o enlace descendente) se refiere a un enlace de comunicación de las estaciones base a los nodos, y el enlace inverso (o enlace ascendente) se refiere a un enlace de comunicación de los nodos a las estaciones base. Los enlaces de comunicación pueden establecerse a través de un sistema de entrada única salida única, de entrada múltiple salida única o una entrada múltiple con salida múltiple (MIMO).
En la era de la información moderna, se usan valores binarios (por ejemplo, unos y ceros) para representar y comunicar diversos tipos de información, tal como vídeo, audio, información estadística, etc. Desafortunadamente, durante el almacenamiento, la transmisión y/o el procesamiento de datos binarios, se pueden introducir errores involuntariamente; por ejemplo, un uno puede cambiar a un cero o viceversa.
Generalmente, en el caso de transmisión de datos, un receptor observa cada bit recibido en presencia de ruido o distorsión y sólo se obtiene una indicación del valor del bit. En estas circunstancias, los valores observados se interpretan como una fuente de bits "blandos". Un bit suave indica una estimación preferida del valor del bit (por ejemplo, un uno o un cero) junto con alguna indicación de la confiabilidad de esa estimación. Si bien el número de errores puede ser relativamente bajo, incluso un pequeño número de errores o un pequeño nivel de distorsión pueden provocar que los datos queden inutilizables o, en el caso de errores de transmisión, pueden hacer necesaria la retransmisión de los datos.
Con el fin de proporcionar un mecanismo para verificar errores y, en algunos casos, corregirlos, los datos binarios se pueden codificar para introducir una redundancia cuidadosamente diseñada. La codificación de una unidad de datos produce lo que comúnmente se denomina palabra código. Debido a su redundancia, una palabra de código a menudo incluirá más bits que la unidad de entrada de datos a partir de la cual se produjo la palabra de código. Un codificador agrega bits redundantes al flujo de bits transmitido para crear una palabra de código. Cuando se reciben o procesan señales que surgen de palabras de código transmitidas, la información redundante incluida en la palabra de código tal como se observa en la señal se puede usar para identificar y/o corregir errores o eliminar distorsiones de la señal recibida con el fin de recuperar la unidad de datos original. Tal comprobación y/o corrección de errores se puede implementar como parte de un proceso de decodificación. En ausencia de errores, o en caso de errores corregibles o distorsión, la decodificación puede usarse para recuperar, a partir de los datos fuente que se están procesando, la unidad de datos original que se codificó. En el caso de errores irrecuperables, el proceso de decodificación puede producir alguna indicación de que los datos originales no se pueden recuperar completamente. Tales indicaciones de fallo de decodificación pueden usarse para iniciar la retransmisión de los datos.
Con el aumento del uso de líneas de fibra óptica para la comunicación de datos y el aumento de la velocidad a la que se pueden leer y almacenar datos en dispositivos de almacenamiento de datos (por ejemplo, unidades de disco, cintas, etc.), existe una necesidad creciente no solo de un uso eficiente de la capacidad de almacenamiento y transmisión de datos, sino también de la capacidad de codificar y decodificar datos a altas velocidades.
Si bien la eficiencia de codificación y las altas velocidades de datos son importantes, para que un sistema de codificación y/o decodificación sea práctico para su uso en una amplia gama de dispositivos (por ejemplo, dispositivos de consumo), es importante que los codificadores y/o decodificadores puedan implementarse a un costo razonable.
Los sistemas de comunicación a menudo necesitan funcionar a distintas velocidades. Una forma de mantener la implementación lo más simple posible y permitir la codificación y decodificación a diferentes velocidades es usar códigos de comprobación de paridad de baja densidad (LDPC) ajustables. En particular, se pueden generar códigos LDPC de mayor velocidad perforando códigos de menor velocidad.
Estas tecnologías de acceso múltiple se han adoptado en diversos estándares de telecomunicaciones para proporcionar un protocolo común que permite que diferentes dispositivos inalámbricos se comuniquen a un nivel municipal, nacional, regional, e incluso global. Un ejemplo de norma de telecomunicaciones emergente es la Nueva Radio (NR). La NR es un conjunto de mejoras del estándar móvil LTE (por ejemplo, el acceso por radio 5G) promulgado por el Proyecto de Asociación de Tercera Generación (3GPP). La NR se diseñó para soportar el acceso móvil de banda ancha a Internet al mejorar la eficiencia espectral, la reducción de costes, la mejora de los servicios, el uso de nuevo espectro y una mejor integración con otras normas abiertas mediante el uso de OFDMA con un prefijo cíclico (CP) en el enlace descendente (DL) y en el enlace ascendente (UL), así como también el apoyo a la formación de haces, la tecnología de antena de entrada múltiple con salida múltiple (MIMO) y la agregación de portadoras.
Como la demanda de acceso móvil de banda ancha sigue aumentando, es necesario seguir mejorando la tecnología NR. Preferentemente, estas mejoras deberán aplicarse a otras tecnologías de acceso múltiple y a los estándares de telecomunicaciones que emplean estas tecnologías. Un área de mejoras es el área de codificación/decodificación, aplicable a NR. Por ejemplo, son deseables técnicas para códigos LDPC de alto rendimiento para NR.
La solicitud de patente EP 2091 171 A2 se refiere a la transmisión de una señal en un sistema de comunicación mediante el uso de un esquema de Petición de Respuesta Automática Híbrida (HARQ). La publicación "LDPC design for eMBB data" de Huawei, HiSilicon, 3GPP TSG RAN WG1 Meeting #88bis, Spokane, EE.UU., 3 al 7 de abril de 2017, R1-1704250, se refiere a una familia anidada de códigos QC LDPC irregulares obtenidos a partir de una matriz base de alta velocidad, y una estructura cuasi fila ortogonal para realizar un compromiso entre rendimiento y complejidad.
La publicación "LDPC design for eMBB data" por Nokia, Alcatel-Lucent Shanghai Bell, reunión ad hoc 3GPP TSG-RAN WB1 #NR, R1-1701028, Spokane, EE.Uu ., 16 al 20 de enero de 2017 se relaciona con el esquema de codificación eMBB y los detalles del diseño LDPC y, en particular, con una comparación de los códigos LDPC y QC LDPC. Se propone un diseño LDPC para un escenario eMBB y se proporcionan resultados de simulación.
Breve resumen
Los aspectos de la presente invención se exponen en las reivindicaciones adjuntas.
Breve descripción de las figuras
De modo que la manera en la cual las características arriba citadas de la presente divulgación puedan ser comprendidas en detalle, una descripción más particular, brevemente resumida arriba, puede tenerse por referencia a aspectos, algunos de los cuales son ilustrados en las figuras adjuntas.
Las figuras adjuntas ilustran solamente ciertos aspectos típicos de esta divulgación, sin embargo, y por lo tanto, no se deben considerar limitantes de su ámbito, ya que la descripción puede admitir otros aspectos igualmente efectivos.
La Figura 1 ilustra un ejemplo de sistema de comunicación inalámbrica de acceso múltiple, de acuerdo con ciertos aspectos de la presente divulgación.
La Figura 2 ilustra un diagrama de bloques de una estación base y un nodo inalámbrico, de acuerdo con ciertos aspectos de la presente divulgación.
La Figura 3 ilustra diversos componentes que pueden utilizarse en un dispositivo inalámbrico, de acuerdo con ciertos aspectos de la presente divulgación.
Las Figuras 4A-4B muestran representaciones gráficas y matriciales de un código de comprobación de paridad de baja densidad (LDPC) ilustrativo, de acuerdo con ciertos aspectos de la presente divulgación.
La Figura 5 ilustra gráficamente el levantamiento del código LDPC de la Figura 4A, de acuerdo con ciertos aspectos de la presente divulgación.
La Figura 6 es una representación entera de una matriz para un código LDPC IEEE 802.11 cuasi-cíclico.
La Figura 7 es un diagrama de bloques simplificado que ilustra un codificador, de acuerdo con ciertos aspectos de la presente divulgación.
La Figura 8 es un diagrama de bloques simplificado que ilustra un decodificador, de acuerdo con ciertos aspectos de la presente divulgación.
La Figura 9 ilustra un diagrama de bloques de alto nivel de un decodificador LDPC en capas genérico, de acuerdo con ciertos aspectos de la presente divulgación.
La Figura 10 ilustra un ejemplo de este proceso para calcular/actualizar LLR de bits y LLR a posteriori en una matriz de comprobación de paridad, de acuerdo con ciertos aspectos de la presente divulgación.
Las Figuras 11Ay 11B ilustran un ejemplo de línea de tiempo de procesamiento de canalización de decodificador por capas, de acuerdo con ciertos aspectos de la presente divulgación.
Las Figuras 12 y 12A a 12H ilustran una matriz de comprobación de paridad con cuasi ortogonalidad de filas, de acuerdo con ciertos aspectos de la presente divulgación.
Las Figuras 13 y 13A a 13H ilustran una matriz de comprobación de paridad con ortogonalidad de fila completa, de acuerdo con ciertos aspectos de la presente divulgación.
La Figura 14 es un diagrama de flujo que ilustra operaciones de ejemplo para decodificar códigos de comprobación de paridad de baja densidad (LDPC), de acuerdo con ciertos aspectos de la presente divulgación. La Figura 15 es un diagrama de flujo que ilustra operaciones de ejemplo para realizar codificación de comprobación de paridad de baja densidad (LDPC), de acuerdo con ciertos aspectos de la presente divulgación. La invención reivindicada se representa principalmente con las Figuras 13 y 13Aa 13H, mientras que las Figuras 12A a 12H no corresponden a la invención reivindicada.
Para facilitar la comprensión, se han usado numerales de referencia idénticos, cuando es posible, para designar elementos idénticos que son comunes a las figuras. Se contempla que los elementos divulgados en una realización se puedan utilizar de manera beneficiosa en otras realizaciones sin descripción específica.
Descripción detallada
Los aspectos de la presente divulgación proporcionan aparatos, métodos, sistemas de procesamiento y productos de programas informáticos para codificación para nueva radio (NR) (tecnología de acceso de nueva radio). La nueva radio (NR) puede referirse a radios configuradas para operar de acuerdo con una nueva interfaz aérea o una capa de transporte fija. La NR puede incluir técnicas de banda ancha móvil mejorada (eMBB) dirigidas a sistemas de comunicaciones de ancho de banda amplio (por ejemplo, 80 MHz y más), técnicas de ondas milimétricas (mmW) dirigidas a sistemas de comunicaciones de alta frecuencia portadora (por ejemplo, 27 GHz y más alta), técnicas de comunicaciones masivas de tipo máquina (mMTC) dirigidas a sistemas de comunicaciones de tipo máquina (MTC) no compatibles con versiones anteriores y técnicas de misión crítica dirigidas a comunicaciones de latencia ultra baja y confiables (URLLC). Para estos temas generales, se consideran diferentes técnicas, tales como técnicas de codificación, que incluyen codificación de comprobación de paridad de baja densidad (LDPC) y polar. Una celda NR puede referirse a una celda que opera de acuerdo con la nueva interfaz aérea o una capa de transporte fija. Un Nodo B NR (por ejemplo, el Nodo B 5G) puede corresponder a uno o múltiples puntos de transmisión y recepción (TRP).
Ciertos aspectos de la presente divulgación se relacionan en general con procedimientos y aparatos para decodificar transmisiones codificadas con comprobación de paridad de baja densidad (LDPC), y más particularmente con la decodificación de transmisiones codificadas con LDPC mediante el uso de una matriz de comprobación de paridad con un gran número de filas completamente ortogonales entre pares.
Diversos aspectos de la presente divulgación se describen de aquí en lo sucesivo en su totalidad con referencia a las figuras adjuntas. Sin embargo, esta divulgación puede llevarse a la práctica de muchas formas diferentes y no debe interpretarse como limitativa a ninguna estructura o función específica presentada durante esta divulgación. Más bien, estos aspectos se proporcionan para que esta divulgación se logre y complete, y transmita totalmente el ámbito de la divulgación para los expertos en la técnica. En base a las enseñanzas en la presente memoria un experto en la técnica debería apreciar que el ámbito de la divulgación pretende cubrir cualquier aspecto de la divulgación divulgada en la presente memoria, ya sea implementado independientemente o combinado con cualquier otro aspecto de la divulgación. Por ejemplo, puede implementarse un aparato o puede practicarse un procedimiento mediante el uso de cualquier número de los aspectos expuestos en la presente memoria. Además, el ámbito de la divulgación pretende abarcar dicho aparato o procedimiento, que se practica mediante el uso de otra estructura, funcionalidad, o estructura y funcionalidad además de o diferente de los diversos aspectos de la divulgación establecidos en la presente memoria. Debe entenderse que cualquier aspecto de la divulgación divulgada en la presente memoria pueden llevarse a la práctica en uno o más elementos de una reivindicación. La palabra "ilustrativo" se usa en la presente memoria para significar "que sirve como un ejemplo, caso o ilustración". Cualquier aspecto descrito en la presente memoria como "ilustrativo" no se debe interpretar necesariamente como preferente o ventajoso con respecto a otros aspectos.
Aunque en la presente memoria se describen aspectos particulares, muchas variaciones y permutaciones de estos aspectos caen dentro del ámbito de la divulgación. Aunque se mencionan algunos beneficios y ventajas de los aspectos preferentes, el ámbito de la divulgación no pretende limitarse a beneficios, usos, u objetivos particulares. Más bien, se pretende que los aspectos de la divulgación sean ampliamente aplicables a diferentes tecnologías inalámbricas, configuraciones de sistemas, redes, y protocolos de transmisión, algunos de los cuales se ilustran a modo de ejemplo en las figuras y en la siguiente descripción de los aspectos preferentes. La descripción detallada y las figuras son meramente ilustrativas de la divulgación en lugar de limitativas, el ámbito de la divulgación se define mediante las reivindicaciones adjuntas y sus equivalentes.
Las técnicas descritas en la presente memoria pueden usarse para diversas redes de comunicaciones inalámbricas, tal como las redes de Evolución a Largo Plazo (LTE), las redes de Acceso Múltiple por División del Código (CDMA), las redes de Acceso Múltiple por División en el Tiempo (TDMA), las redes de Acceso Múltiple por División de Frecuencia (FDMA), las redes FDMA Ortogonales(OfDmA),las redes FDMA de una sola portadora (SC-FDMA), etc. Los términos "redes" y "sistemas" se usan a menudo indistintamente. Una red CDMA puede implementar una tecnología de radio tal como el Acceso Radioeléctrico Terrenal Universal (UTRA), CDMA2000, etcétera. UTRA incluye CDMA de banda ancha (W-CDMA) y Baja velocidad de chip (LCR). CDMA2000 cubre los estándares IS-2000, IS-95 e IS-856. Una red de TDMA puede implementar una tecnología de radio tal como el Sistema Mundial para Comunicaciones Móviles (GSM). Una red OFDMA puede implementar una tecnología de radio tal como NR (por ejemplo, 5G RA), UTRA Evolucionada (E-UTRA), IEEE 802.11, IEEE 802.16, IEEE 802.20, Flash-OFDM®, etc. El UTRA, el E-UTRA, y el GSM son parte del Sistema de Telecomunicación Móvil Universal (UMTS). La Evolución a Largo Plazo(LTE) es una versión de UMTS que usa E-UTRA. El UTRA, el E-UTRA, el GSM, el UMTS y la LTE se describen en los documentos a partir de una organización llamada "Proyecto de Asociación de 3ra Generación" (3GPP). El CDMA2000 se describe en los documentos a partir de una organización nombrada "Proyecto de Asociación de 3ra Generación 2" (3GPP2). NR es una tecnología de comunicaciones inalámbricas emergente en desarrollo junto con el Foro de Tecnología 5G (5GTF). Estas redes de comunicaciones se enumeran simplemente como ejemplos de redes en las que se pueden aplicar las técnicas descritas en esta divulgación; sin embargo, esta divulgación no se limita a la red de comunicaciones descrita anteriormente.
El acceso múltiple por división de frecuencia de portadora única (SC-FDMA) es una técnica de transmisión que utiliza modulación de portadora única en el lado del transmisor y ecualización del dominio de frecuencia en el lado del receptor. El SC-FDMA tiene un rendimiento similar y esencialmente la misma complejidad general que los del sistema OFDMA. Sin embargo, la señal de SC-FDMA tiene una relación de pico a potencia media (PAPR) más bajo debido a su estructura de portadora única inherente. El SC-FDMA ha atraído una gran atención, especialmente en las comunicaciones de enlace ascendente (UL), donde una PAPR más baja beneficia enormemente al nodo inalámbrico en términos de eficiencia de potencia de transmisión.
Un Punto de Acceso ("AP") puede comprender, implementarse o conocerse como NodoB, Controlador de Red de Radio ("RNC"), eNodeB (eNB), Nodo B (por ejemplo, Nodo B 5G), punto de transmisión y recepción (TRP), Controlador de Estación Base ("BSC"), Estación Transceptora Base ("BTS"), Estación Base ("BS"), Función Transceptora ("TF"), Enrutador de Radio, Transceptor de Radio, Conjunto de Servicios Básicos ("BSS"), Conjunto de Servicios Extendidos ("ESS"), Estación Base de Radio ("RBS"), o cualquier otra terminología.
Un Terminal de Acceso ("AT") puede comprender, implementarse o ser conocido como terminal de acceso, estación de abonado, unidad de abonado, estación móvil, estación remota, terminal remoto, terminal de usuario, agente de usuario, dispositivo de usuario, equipo de usuario (UE), estación de usuario, nodo inalámbrico o alguna otra terminología. En algunas implementaciones, un terminal de acceso puede ser un teléfono móvil, un teléfono inteligente, un teléfono inalámbrico, un teléfono con protocolo de inicio de sesión ("SIP"), una estación de bucle local inalámbrico ("WLL"), un asistente digital personal ("PDA"), una tableta, un netbook, un smartbook, un ultrabook, un dispositivo portátil con capacidad de conexión inalámbrica, una estación ("STA") o cualquier otro dispositivo de procesamiento adecuado conectado a un módem inalámbrico. En consecuencia, uno o más aspectos enseñados en la presente memoria pueden incorporarse a un teléfono (por ejemplo, un teléfono móvil, un teléfono inteligente), un ordenador (por ejemplo, un ordenador de sobremesa), un dispositivo de comunicación portátil, un dispositivo informático portátil (por ejemplo, un ordenador portátil, un asistente personal de datos, una tableta, un netbook, un smartbook, un ultrabook), dispositivos o equipos médicos, sensores/dispositivos biométricos, un dispositivo de entretenimiento (por ejemplo, un dispositivo de música o vídeo, o una radio por satélite), un componente o sensor de vehículo, contadores/sensores inteligentes, equipos de fabricación industrial, un dispositivo de sistema de posicionamiento global, o cualquier otro dispositivo adecuado que se configure para comunicarse a través de un medio inalámbrico o por cable. En algunos aspectos, el nodo es un nodo inalámbrico. Un nodo inalámbrico puede proporcionar, por ejemplo, conectividad para o hacia una red (por ejemplo, una red de área amplia tal como Internet o una red celular) a través de un enlace de comunicación por cable o inalámbrico.
Si bien los aspectos pueden describirse en la presente memoria mediante el uso de terminología comúnmente asociada a las tecnologías inalámbricas 3G y/o 4G, los aspectos de la presente divulgación pueden aplicarse en sistemas de comunicación basados en otras generaciones, tal como 5G y posteriores, incluidas las tecnologías NR.
Un ejemplo de sistema de comunicación inalámbrica
La Figura 1 ilustra un ejemplo de red de comunicaciones 100 en la que pueden llevarse a cabo aspectos de la presente divulgación. Como se ilustra, un Nodo B 102 (por ejemplo, un Nodo B TRP o 5G) puede incluir múltiples grupos de antenas, un grupo que incluye las antenas 104 y 106, otro grupo que incluye las antenas 108 y 110, y un grupo adicional que incluye las antenas 112 y 114. En la Figura 1, sólo se muestran dos antenas para cada grupo de antenas, sin embargo, pueden utilizarse más o menos antenas para cada grupo de antenas. El nodo inalámbrico 116 puede estar en comunicación con las antenas 112 y 114, donde las antenas 112 y 114 transmiten información al nodo inalámbrico 116 a través del enlace directo 120 y reciben información del nodo inalámbrico 116 a través del enlace inverso 118. El nodo inalámbrico 122 puede estar en comunicación con las antenas 106 y 108, donde las antenas 106 y 108 transmiten información al nodo inalámbrico 122 a través del enlace directo 126 y reciben información del nodo inalámbrico 122 a través del enlace inverso 124. El Nodo B 102 también puede estar en comunicación con otros nodos inalámbricos, que pueden ser, por ejemplo, dispositivos Internet de las Cosas (IoT). El dispositivo IoT 136 puede estar en comunicación con otra u otras antenas del Nodo B 102, donde las antenas transmiten información al dispositivo IoT 136 a través del enlace directo 140 y reciben información del dispositivo IoT 136 a través del enlace inverso 138. El dispositivo IoT 142 puede estar en comunicación con una o más de otras antenas del Nodo B 102, donde las antenas transmiten información al dispositivo IoT 142 a través del enlace directo 146 y reciben información del dispositivo IoT 142 a través del enlace inverso 144. En un sistema Dúplex por División de Frecuencia (FDD), los enlaces de comunicación 118, 120, 124, 126, 138, 140, 144 y 146 pueden usar frecuencias diferentes para la comunicación. Por ejemplo, el enlace directo 120 puede usar una frecuencia diferente a la que se usa por el enlace inverso 118, y el enlace directo 140 puede usar una frecuencia diferente a la que se usa por el enlace inverso 138.
Cada grupo de antenas y/o el área en la que se diseñan para comunicarse se denomina a menudo un sector del Nodo B. En un aspecto de la presente divulgación, cada grupo de antenas puede estar diseñado para comunicarse con nodos inalámbricos en un sector de las áreas cubiertas por el Nodo B 102.
El nodo inalámbrico 130 puede estar en comunicación con el Nodo B 102, donde las antenas del Nodo B 102 transmiten información al nodo inalámbrico 130 a través del enlace directo 132 y reciben información del nodo inalámbrico 130 a través del enlace inverso 134.
En la comunicación a través de los enlaces directos 120 y 126, las antenas transmisoras de la BS 102 pueden utilizar la formación de haces con el fin de mejorar la relación señal/ruido de los enlaces directos para los diferentes nodos inalámbricos 116, 122, 136 y 142. Además, un Nodo B que usa la formación de haces para transmitir a nodos inalámbricos dispersos aleatoriamente por su cobertura provoca menos interferencias a los nodos inalámbricos de las celdas vecinas que un Nodo B que transmite a través de una única antena a todos sus nodos inalámbricos.
Si bien los aspectos de los ejemplos descritos en la presente memoria se pueden asociar con tecnologías LTE, los aspectos de la presente divulgación se pueden aplicar a otros sistemas de comunicaciones inalámbricas, tales como la NR. La NR puede utilizar multiplexación por división ortogonal de frecuencias (OFDM) con un CP en el enlace ascendente y enlace descendente e incluir soporte para funcionamiento semidúplex mediante el uso de Dúplex por División en el Tiempo (TDD). Se puede soportar un ancho de banda de portadora de un solo componente de 100 MHZ. Los bloques de recursos NR pueden abarcar 12 subportadoras con un ancho de banda de subportadora de 75 kHz en una duración de 0,1 ms. Cada trama de radio puede consistir en 2 medias tramas, y cada media trama que consiste en 5 subtramas, con una longitud de 10 ms. En consecuencia, cada subtrama puede tener una duración de 1 ms. Cada subtrama puede indicar una dirección de enlace (es decir, enlace descendente (DL) o enlace ascendente (UL)) para la transmisión de datos y la dirección de enlace para cada subtrama puede cambiarse dinámicamente. Cada subtrama puede incluir datos DL/UL así como también datos de control DL/UL. Se puede admitir la conformación de haces y la dirección de haz puede configurarse dinámicamente. También pueden admitirse transmisiones MIMO con precodificación. Las configuraciones MIMO en el DL pueden admitir hasta 8 antenas transmisoras con transmisiones DL multicapa con hasta 8 flujos. Se puede admitir las transmisiones multicapa hasta 2 flujos por UE. La agregación de múltiples células puede admitirse con hasta 8 células de servicio. Alternativamente, la NR puede soportar una interfaz aérea diferente, que no sea una interfaz aérea basada en OFDM. Las redes NR pueden incluir entidades tales como unidades centrales o unidades distribuidas.
La Figura 2 ilustra un diagrama de bloques de un aspecto de un sistema transmisor 210 (por ejemplo, también conocido como la estación base) y un sistema receptor 250 (por ejemplo, también conocido como el nodo inalámbrico) en un sistema de entrada múltiple con salida múltiple (MIMO) 200, en el que pueden llevarse a la práctica los aspectos de la presente divulgación. Cada uno de los sistemas 210 y 250 tiene capacidades tanto para transmitir como para recibir. Si el sistema 210 o el sistema 250 está transmitiendo, recibiendo o transmitiendo y recibiendo simultáneamente depende de la aplicación. En el sistema transmisor 210, los datos de tráfico para un número de flujos de datos se proporcionan a partir de una fuente de datos 212 a un procesador de datos de transmisión (TX) 214.
En un aspecto de la presente divulgación, cada flujo de datos puede transmitirse a través de una antena de transmisión respectiva. El procesador de datos TX 214 formatea, codifica e intercala los datos de tráfico para cada flujo de datos en base a un esquema de codificación particular (por ejemplo, comprobación de paridad de baja densidad (LDPC)) seleccionado para ese flujo de datos para proporcionar datos codificados.
Los datos codificados para cada flujo de datos pueden multiplexarse con datos piloto mediante el uso de técnicas OFDM. Los datos piloto típicamente son un patrón de datos conocido que se procesan de una manera conocida y pueden usarse en el sistema receptor para estimar la respuesta del canal. El piloto multiplexado y los datos codificados para cada flujo de datos son luego modulados (por ejemplo, mapeado de símbolos) en base a un esquema de modulación particular (por ejemplo, BPSK, QSPK, M-PSK, o M-QAM) seleccionado para ese flujo de datos para proporcionar símbolos de modulación. La velocidad de datos, la codificación y la modulación para cada flujo de datos pueden determinarse mediante las instrucciones realizadas mediante el procesador 230. La memoria 232 puede almacenar datos y software/microprograma para el sistema transmisor 210.
Los símbolos de modulación para todos los flujos de datos, luego se proporcionan a un procesador TX MIMO 220, que puede procesar además los símbolos de modulación (por ejemplo, para OFDM). El procesador de TX MIMO 220 proporciona luego Nt (por ejemplo, donde Nt es un número entero positivo) flujos de símbolos de modulación a Nt transmisores (TMTR) 222a a 222t. En ciertos aspectos de la presente divulgación, el procesador TX MIMO 220 aplica pesos de la formación de haces a los símbolos de los flujos de datos y a la antena a partir de la que se transmite el símbolo.
Cada transmisor 222 recibe y procesa un flujo de símbolos respectivo para proporcionar una o más señales analógicas, y condiciona además (por ejemplo, amplifica, filtra, y convierte hacia arriba) las señales analógicas para proporcionar una señal modulada adecuada para la transmisión a través del canal MIMO. A continuación, las señales moduladas Nt desde los transmisores 222a a 222t se transmiten desde las antenas Nt 224a a 224t, respectivamente.
En el sistema receptor 250, las señales moduladas que se transmiten pueden ser recibidas por Nr (por ejemplo, donde N<r>es un número entero positivo) antenas 252a a 252r y la señal recibida de cada antena 252 puede proporcionarse a un receptor respectivo (RCVR) 254a a 254r. Cada receptor 254 puede acondicionar (por ejemplo, filtra, amplifica y reduce) una señal recibida respectiva, digitaliza la señal acondicionada para proporcionar muestras y procesa las muestras para proporcionar un flujo de símbolos "recibidos" correspondiente.
Luego, un procesador de datos de recepción (RX) 260 recibe y procesa los flujos de símbolos recibidos N<r>de los receptores N<r>254 en base a una técnica particular de procesamiento de receptores para proporcionar N<t>flujos de símbolos "detectados". El procesador de datos RX 260 luego demodula, desintercala, y decodifica cada flujo de símbolos detectado para recuperar los datos de tráfico para el flujo de datos. El procesamiento mediante el procesador de datos RX 260 puede complementarse al realizarse mediante el procesador TX MIMO 220 y el procesador de datos TX 214 en el sistema transmisor 210.
Un procesador 270 determina periódicamente qué matriz de codificación previa usar. El procesador 270 formula un mensaje de enlace inverso que comprende una porción del índice de la matriz y una porción del valor del rango. La memoria 272 puede almacenar los datos y el software/microprograma para el sistema receptor 250. El mensaje de enlace inverso puede comprender diversos tipos de información respecto al enlace de comunicación y/o el flujo de datos recibido. Luego, el mensaje de enlace inverso es procesado por un procesador de datos TX 238, que también recibe datos de tráfico para un número de flujos de datos de una fuente de datos 236, modulados por un modulador 280, acondicionados por los transmisores (TMTR) 254a a 254r, y transmitidos de vuelta al sistema transmisor 210. En el sistema transmisor 210, las señales moduladas a partir del sistema receptor 250 se reciben mediante las antenas 224, se condicionan mediante los receptores (RCVR) 222, se demodulan mediante un demodulador 240, y se procesan mediante un procesador de datos RX 242 para extraer el mensaje de enlace inverso transmitido mediante el sistema receptor 250. El procesador 230 luego determina qué matriz de codificación previa usar para determinar los pesos de la formación de haces, y luego procesa el mensaje extraído.
Cualquiera de los procesadores 270, procesador de datos RX 260, otros procesadores/elementos, o una combinación de los mismos del sistema receptor 250 y/o cualquiera de los procesadores 230, procesador de datos RX 242, otros procesadores/elementos, o una combinación de los mismos del sistema transmisor 210 puede configurarse para realizar los procedimientos para decodificación de comprobación de paridad de baja densidad (LDPC) de acuerdo con ciertos aspectos de la presente divulgación discutidos más abajo con referencia a la Figura 14. En un aspecto, al menos uno del procesador 270 y del procesador de datos RX 260 puede configurarse para ejecutar algoritmos almacenados en la memoria 272 para realizar la decodificación LDPC descrita en la presente memoria. En otro aspecto, al menos uno del procesador 230 y el procesador de datos RX 242 puede estar configurado para ejecutar algoritmos almacenados en la memoria 232 para realizar la decodificación LDPC descrita en la presente memoria.
Cualquiera del procesador 270, el procesador de datos TX 238, otros procesadores/elementos, o una combinación de los mismos del sistema receptor 250 y/o cualquiera del procesador 230, el procesador TX MIMO 220, el procesador de datos TX 214, otros procesadores/elementos, o una combinación de los mismos del sistema transmisor 210 pueden configurarse para realizar los procedimientos para la codificación de comprobación de paridad de baja densidad (LDPC) de acuerdo con ciertos aspectos de la presente divulgación que se discuten más abajo con referencia a la Figura 15. En un aspecto, al menos uno de los procesadores 270 y el procesador de datos TX 238 puede estar configurado para ejecutar algoritmos almacenados en la memoria 272 para realizar la codificación LDPC descrita en la presente memoria. En otro aspecto, al menos uno del procesador 230, el procesador TX MIMO 220 y el procesador de datos TX 214 puede estar configurado para ejecutar algoritmos almacenados en la memoria 232 para realizar la codificación LDPC descrita en la presente memoria.
La Figura 3 ilustra diversos componentes que pueden utilizarse en un dispositivo inalámbrico 302 que puede emplearse dentro del sistema de comunicación inalámbrica 100 ilustrado en la Figura 1. El dispositivo inalámbrico 302 es un ejemplo de un dispositivo que puede configurarse para implementar los diversos procedimientos descritos en la presente memoria. El dispositivo inalámbrico 302 puede ser un Nodo B 102 (por ejemplo, un TRP) o cualquiera de los nodos inalámbricos (por ejemplo, los nodos inalámbricos 116, 122, 130 o el dispositivo IoT 136 o 142). Por ejemplo, el dispositivo inalámbrico 302 puede configurarse para realizar las operaciones 1400 y 1500 descritas en las Figuras 14 y 15, así como también otras operaciones descritas en la presente memoria.
El dispositivo inalámbrico 302 puede incluir un procesador 304 que controla el funcionamiento del dispositivo inalámbrico 302. El procesador 304 también puede denominarse unidad central de procesamiento (CPU). La memoria 306, que puede incluir tanto memoria de sólo lectura (ROM) como memoria de acceso aleatorio (RAM), proporciona las instrucciones y datos al procesador 304. Una parte de la memoria 306 también puede incluir una memoria de acceso aleatorio no volátil (NVRAM). El procesador 304 típicamente realiza operaciones lógicas y aritméticas en base a las instrucciones de programa almacenadas dentro de la memoria 306. Las instrucciones en la memoria 306 pueden ser ejecutables para implementar los procedimientos descritas en la presente memoria, por ejemplo, para permitir que un UE realice decodificación LDPC y/o codificación LDPC. Algunos ejemplos no limitativos del procesador 304 pueden incluir un procesador Snapdragon, circuitos integrados de aplicación específica (ASIC), lógica programable, etc.
El dispositivo inalámbrico 302 también puede incluir una carcasa 308 que puede incluir un transmisor 310 y un receptor 312 para permitir la transmisión y recepción de datos entre el dispositivo inalámbrico 302 y una ubicación remota. El transmisor 310 y el receptor 312 pueden combinarse en un transceptor 314. Una sola o una pluralidad de antenas transmisoras 316 pueden unirse a la carcasa 308 y acoplarse eléctricamente al transceptor 314. El dispositivo inalámbrico 302 también puede incluir (no se muestra) múltiples transmisores, múltiples receptores, y múltiples transceptores. El dispositivo inalámbrico 302 también puede incluir un equipo inalámbrico de carga de batería.
El dispositivo inalámbrico 302 también puede incluir un detector de señales 318 que puede usarse en un esfuerzo por detectar y cuantificar el nivel de señales recibidas por el transceptor 314. El detector de señales 318 puede detectar señales tales como energía total, energía por subportadora por símbolo, densidad espectral de potencia y otras señales. El dispositivo inalámbrico 302 también puede incluir un procesador de señales digitales (DSP) 320 para su uso en el procesamiento de señales.
Adicionalmente, el dispositivo inalámbrico también puede incluir un codificador 322 para su uso en la codificación de señales para transmisión y un decodificador 324 para su uso en la decodificación de señales recibidas. De acuerdo con ciertos aspectos, el codificador 322 puede realizar la codificación de acuerdo con ciertos aspectos presentados en la presente memoria (por ejemplo, implementando las operaciones 1500 ilustradas en la Figura 15). De acuerdo con ciertos aspectos, el decodificador 324 puede realizar la decodificación de acuerdo con ciertos aspectos presentados en la presente memoria (por ejemplo, implementando las operaciones 1400 ilustradas en la Figura 14). Los diversos componentes del dispositivo inalámbrico 302 pueden acoplarse entre sí mediante un sistema de bus 326, que puede incluir un bus de alimentación, un bus de señales de control y un bus de señales de estado, además de un bus de datos. El procesador 304 puede estar configurado para acceder a instrucciones almacenadas en la memoria 306 para realizar decodificación LDPC y/o codificación LDPC, de acuerdo con aspectos de la presente divulgación discutidos más abajo.
Ejemplo de codificación de corrección de errores
Muchos sistemas de comunicaciones usan códigos de corrección de errores. En concreto, los códigos de corrección de errores compensan la falta de fiabilidad intrínseca de la transferencia de información en estos sistemas introduciendo redundancia en el flujo de datos. Los códigos de comprobación de paridad de baja densidad (LDPC) son un tipo particular de códigos de corrección de errores que usan un sistema de codificación iterativo. En particular, los códigos Gallager son un ejemplo temprano de códigos LDPC regulares. Los códigos LDPC son códigos de bloque lineales en los que la mayoría de los elementos de su matriz de comprobación de paridad H se establecen en '0'.
Los códigos LDPC se pueden representar mediante grafos bipartitos (a menudo denominados "grafos de Tanner"), en el que un conjunto de nodos variables corresponde a bits de una palabra de código (por ejemplo, bits de información o bits sistemáticos) y un conjunto de nodos de comprobación corresponde a un conjunto de restricciones de comprobación de paridad que definen el código. Los bordes del gráfico conectan los nodos variables con los nodos de comprobación. Por lo tanto, los nodos del gráfico se separan en dos conjuntos distintivos, nodos variables y nodos de comprobación, con bordes que conectan los dos tipos diferentes de nodos.
Un gráfico elevado se crea copiando un gráfico base bipartito (G), que también puede conocerse como protograma, un número de veces, Z. Un nodo variable y un nodo de comprobación pueden considerarse "vecinos" si están conectados por un "borde" (es decir, la línea que conecta el nodo variable y el nodo de comprobación) en el grafo. Además, para cada borde (e) del gráfico base bipartito (G), se aplica una permutación a las Z copias del borde (e) para interconectar las Z copias de G. Una secuencia de bits que tiene una asociación uno a uno con la secuencia de nodos variables es una palabra de código válida si, y solo si, para cada nodo de comprobación, los bits asociados con todos los nodos variables vecinos suman cero módulo dos (es decir, incluyen un número par de 1). El código LDPC resultante puede ser cuasi-cíclico (QC) si las permutaciones usadas son cíclicas.
Las Figuras 4A-4B muestran representaciones gráficas y matriciales de un código LDPC ilustrativo, de acuerdo con ciertos aspectos de la presente divulgación. Por ejemplo, la Figura 4A muestra un gráfico bipartito 400 que representa un código LDPC ilustrativo. El gráfico bipartito 400 incluye un conjunto de 5 nodos variables 410 (representados por círculos) conectados a 4 nodos de comprobación 420 (representados por cuadrados). Los bordes 430 en el gráfico 400 conectan los nodos variables 410 a los nodos de comprobación 420 (representados por las líneas que conectan los nodos variables 410 a los nodos de comprobación 420). Este gráfico consta de |V| = 5 nodos variables y |C| = 4 nodos de comprobación, conectados por |E| = 12 bordes.
El gráfico bipartito puede representarse mediante una matriz de adyacencia simplificada, que también puede conocerse como matriz de comprobación de paridad. La Figura 4B muestra una representación matricial 450 del gráfico bipartito 400. La representación matricial 450 incluye una matriz de comprobación de paridad H y un vector de palabra de código x, donde x1-x5 representan bits de la palabra de código x. La matriz de paridad H se usa para determinar si una señal recibida se decodificó normalmente. La matriz de comprobación de paridad H tiene C filas correspondientes a j nodos de comprobación y V columnas correspondientes a i nodos variables (es decir, un símbolo demodulado), donde las filas representan las ecuaciones y las columnas representan los bits de la palabra código. En la Figura 4B, la matriz H tiene 4 filas y 5 columnas correspondientes a 4 nodos de comprobación y 5 nodos variables respectivamente. Si un nodo de comprobación j-ésimo se conecta a un nodo variable i-ésimo mediante una borde, es decir, los dos nodos son vecinos, entonces existe un 1 en el elemento en la columna i-ésima y la fila j-ésima de la matriz de comprobación de paridad H. Es decir, la intersección de una fila i-ésima y una columna j-ésima contiene un "1" donde una borde une los vértices correspondientes y un "0" donde no hay ninguna borde que une los vértices correspondientes. El vector de palabras de código x representa una palabra de código válida si, y solo si,Hx=0 (por ejemplo, si, para cada nodo de restricción, los bits vecinos a la restricción (a través de su asociación con nodos variables) suman cero módulo dos, es decir, comprenden un número par de unos). Por lo tanto, si la palabra clave se recibe correctamente, entoncesHx = 0(módulo 2). Cuando el producto de una señal recibida que se codifica y la matriz de comprobación de paridad H se vuelve '0', esto significa que no se ha producido ningún error. La matriz de comprobación de paridad es una matriz binaria de C filas por V columnas. Las filas representan las ecuaciones y las columnas representan los dígitos de la palabra código.
El número de símbolos demodulados o nodos variables es la longitud del código LDPC. El número de elementos distintos de cero en una fila se define como el peso de la fila dc. El número de elementos distintos de cero en una columna se define como el peso de columna dv.
El grado de un nodo se refiere al número de bordes conectados a ese nodo. Esta característica se ilustra en la matrizHque se muestra en la Figura 4B, donde el número de bordes incidentes en un nodo variable 410 es igual al número de 1 en la columna correspondiente y se denomina grado del nodo variable d(v). De manera similar, el número de bordes conectados con un nodo de comprobación 420 es igual al número de unos en una fila correspondiente y se denomina grado de nodo de comprobación d(c).
Un gráfico o código regular es aquel en el que todos los nodos variables tienen el mismo grado, j, y todos los nodos de restricción tienen el mismo grado, k. En este caso, el código puede hacer referencia a un código regular (j,k). Por otro lado, un código irregular tiene nodos de restricción y/o nodos variables de diferentes grados. Por ejemplo, algunos nodos variables pueden ser de grado 4, otros de grado 3 y otros de grado 2.
"Elevación" permite implementar códigos LDPC mediante el uso de implementaciones de codificación y/o decodificación paralelas y, al mismo tiempo, reduce la complejidad típicamente asociada con los códigos LDPC grandes. La elevación ayuda a permitir una paralelización eficiente de los decodificadores LDPC y al mismo tiempo mantiene una descripción relativamente compacta. Más específicamente, la elevación es una técnica para generar un código LDPC relativamente grande a partir de múltiples copias de un código base más pequeño. Por ejemplo, se puede generar un código LDPC elevado produciendo un número Z de copias paralelas de un gráfico base (por ejemplo, un protograma) y luego interconectando las copias paralelas a través de permutaciones de haces de bordes de cada copia del gráfico base. El gráfico base define la estructura (macro) del código y consta de un número (K) de columnas de bits de información y un número (N) de columnas de bits de código. Elevar el gráfico base un número (Z) de resultados en un bloque de información final de longitud KZ. Algunos bits de información se pueden acortar (establecer en 0) para lograr longitudes de bloques de información menores que KZ.
Por lo tanto, se puede obtener un gráfico más grande mediante una operación de "copiar y permutar", en la que se realizan múltiples copias del gráfico base y se conectan para formar un único gráfico elevado. Porque las copias múltiples, como los bordes que son un conjunto de copias de un único borde base, se permutan y se conectan para formar un gráfico conexo Z veces más grande que el gráfico base.
La Figura 5 ilustra gráficamente el efecto de producción de tres copias del gráfico de la Figura 4A. Se pueden interconectar tres copias permutando los bordes iguales entre las copias. Si las permutaciones se restringen a permutaciones cíclicas, entonces el gráfico resultante corresponde a un LDPC cuasi-cíclico con elevación Z = 3. El gráfico original del que se hicieron tres copias se denomina en la presente memoria como el gráfico base. Para obtener grafos derivados de diferentes tamaños, se puede aplicar la operación "copiar y permutar" a un gráfico base.
Se puede construir una matriz de comprobación de paridad correspondiente del gráfico elevado a partir de la matriz de comprobación de paridad del gráfico base, reemplazando cada entrada en la matriz de comprobación de paridad base con una matriz ZxZ. Las entradas 0 (aquellas que no tienen bordes base) se reemplazan con la matriz 0 y las entradas 1 (que indican una borde base) se reemplazan con una matriz de permutación ZxZ. En el caso de elevaciones cíclicas las permutaciones son permutaciones cíclicas.
Un código LDPC elevado cíclicamente también puede interpretarse como un código sobre el anillo de polinomios binarios módulo xZ 1. En esta interpretación, un polinomio binario, (x) = bü b1 x b2 x2 ... bZ-1 xZ-1 puede asociarse a cada nodo variable en el gráfico base. El vector binario (bo, bi, b2 , ..., bZ-i) corresponde a los bits asociados a Z nodos variables correspondientes en el gráfico levantado, es decir, Z copias de un único nodo variable base. Una permutación cíclica por k del vector binario se consigue multiplicando el polinomio binario correspondiente por xk, donde la multiplicación se toma módulo xZ 1. Una comprobación de paridad de grado d en el gráfico base puede interpretarse como una restricción lineal sobre los polinomios binarios vecinos Bi(x), ..., Bd(x) escrita como xk1 Bi(x) xk2 B2(x) ... xkd Bd(x) = 0 donde los valores, ki, ..., kd son los valores de elevación cíclicos asociados a los bordes correspondientes.
Esta ecuación resultante es equivalente a las comprobaciones de paridad Z en el gráfico de Tanner elevado cíclicamente correspondientes a la única comprobación de paridad asociada en el gráfico base. Por lo tanto, la matriz de comprobación de paridad para el gráfico elevado se puede expresar mediante el uso de la matriz para el gráfico base en el que las entradas 1 se reemplazan con monomios de la forma xk y las entradas 0 se elevan como 0, pero ahora el 0 se interpreta como el polinomio binario 0 módulo xZ 1. Tal matriz puede escribirse dando el valor k en lugar de xk. En este caso, el polinomio 0 a veces se representa como -1 y a veces como otro carácter con el fin de distinguirlo de x0.
Típicamente, una submatriz cuadrada de la matriz de comprobación de paridad representa los bits de paridad del código. Las columnas complementarias corresponden a bits de información que, en el momento de la codificación, se establecen como iguales a los bits de información a codificar. La codificación se puede lograr resolviendo las variables en la submatriz cuadrada mencionada anteriormente con el fin de satisfacer las ecuaciones de comprobación de paridad. La matriz de comprobación de paridad H se puede dividir en dos partes M y N, donde M es la parte cuadrada. Por lo tanto, la codificación se reduce a resolver Me = s = Nd donde c y d comprenden x. En el caso de códigos cuasi-cíclicos, o códigos cíclicamente elevados, el álgebra anterior puede interpretarse como sobre el anillo de polinomios binarios módulo xZ 1. En el caso de los códigos LDPC IEEE 802.11, que son cuasi-cíclicos, la submatriz de codificación M tiene una representación entera como se muestra en la Figura 6.
Una palabra de código LDPC recibida se puede decodificar para producir una versión reconstruida de la palabra de código original. En ausencia de errores, o en caso de errores corregibles, se puede usar la decodificación para recuperar la unidad de datos original que se codificó. Los decodificadores pueden usar bits redundantes para detectar y corregir errores de bits. Los decodificadores LDPC generalmente funcionan realizando iterativamente cálculos locales y pasando esos resultados intercambiando mensajes dentro del gráfico bipartito 400, a lo largo de los bordes, y actualizando estos mensajes realizando cálculos en los nodos en base a los mensajes entrantes. Estas etapas típicamente pueden repetirse varias veces y pueden denominarse etapas de paso de mensajes. Por ejemplo, cada nodo variable 410 en el gráfico 400 puede proporcionarse inicialmente de un "bit suave" (por ejemplo, que representa el bit recibido de la palabra de código) que indica una estimación del valor del bit asociado según lo determinado por las observaciones del canal de comunicaciones. Mediante el uso de estos bits suaves, los decodificadores LDPC pueden actualizar mensajes leyéndolos iterativamente, o una porción de ellos, desde la memoria y escribiendo un mensaje actualizado, o una porción de él, nuevamente en la memoria. Las operaciones de actualización típicamente son en base a las restricciones de comprobación de paridad del código LDPC correspondiente. En las implementaciones de códigos LDPC elevados, los mensajes en bordes similares a menudo se procesan en paralelo.
Los códigos LDPC diseñados para aplicaciones de alta velocidad a menudo usan construcciones cuasi-cíclicas con grandes factores de elevación y grafos base relativamente pequeños para soportar un alto paralelismo en las operaciones de codificación y decodificación. Los códigos LDPC con velocidades de codificación más altas (por ejemplo, la relación entre la longitud del mensaje y la longitud de la palabra de código) tienden a tener relativamente menos comprobaciones de paridad. Si el número de comprobaciones de paridad base es más pequeño que el grado de un nodo variable (por ejemplo, el número de bordes conectados a un nodo variable), entonces, en el gráfico base, ese nodo variable se conecta a al menos una de las comprobaciones de paridad base mediante dos o más bordes (por ejemplo, el nodo variable puede tener una "borde doble"). O si el número de comprobaciones de paridad base es más pequeño que el grado de un nodo variable (por ejemplo, el número de bordes conectados a un nodo variable), entonces, en el gráfico base, ese nodo variable se conecta a al menos una de las comprobaciones de paridad base por dos o más bordes. Tener un nodo de variable base y un nodo de comprobación base conectados por dos o más bordes generalmente no es deseable para propósitos de implementación de hardware paralelo. Por ejemplo, estos dobles bordes pueden dar lugar a múltiples operaciones de lectura y escritura simultáneas en las mismas ubicaciones de memoria, lo que a su vez puede crear problemas de coherencia de datos. Un doble borde en un código LDPC base puede desencadenar la lectura paralela de la misma ubicación de memoria de valor de bit suave dos veces durante una única actualización de comprobación de paridad paralela. Por lo tanto, típicamente se necesitan circuitos adicionales para combinar los valores de bits suaves que se escriben de nuevo en la memoria, de modo que se incorporen correctamente ambas actualizaciones. Sin embargo, eliminar los dobles bordes en el código LDPC ayuda a evitar esta complejidad adicional
En la definición de conjuntos de códigos LDPC irregulares estándar (distribuciones de grados), todos los bordes en la representación del gráfico de Tanner pueden ser estadísticamente intercambiables. En otras palabras, existe una única clase de equivalencia estadística de bordes. Se puede encontrar una discusión más detallada de los códigos LDPC eliminados, por ejemplo, en el libro titulado "Modern Coding Theory,", publicado el 17 de marzo de 2008 por Tom Richardson y Ruediger Urbanke. Para códigos LDPC de múltiples bordes, pueden ser posibles múltiples clases de equivalencia de bordes. Mientras que en la definición del conjunto LDPC irregular estándar, los nodos en el gráfico (tanto variables como de restricción) se especifican por su grado, es decir, el número de bordes a las que se conectan, en la configuración de tipo de bordes múltiples un grado de borde es un vector; especifica el número de bordes conectados al nodo desde cada clase de equivalencia de borde (tipo) de forma independiente. Un conjunto de tipos de bordes múltiples se compone de un número finito de tipos de bordes. El tipo de grado de un nodo de restricción es un vector de números enteros (no negativos); la entrada i-ésima de este vector registra el número de sockets del tipo i-ésimo conectados a dicho nodo. Este vector puede denominarse grado de borde. El tipo de grado de un nodo variable tiene dos partes, aunque el tipo de grado puede verse como un vector de números enteros (no negativos). La primera parte se relaciona con la distribución recibida y se denominará grado recibido y la segunda parte especifica el grado del borde. El grado del borde juega el mismo papel que para los nodos de restricción. Los bordes se tipifican a medida que emparejan conectores del mismo tipo. Esta restricción de que los sockets deben emparejarse con sockets del mismo tipo caracteriza el concepto de tipo de múltiples bordes. En una descripción de tipo de múltiples bordes, diferentes tipos de nodos pueden tener diferentes distribuciones recibidas (por ejemplo, los bits asociados pueden pasar por diferentes canales).
La Figura 7 ilustra una porción 704 de un módem de radiofrecuencia (RF) 700 que puede configurarse para proporcionar un mensaje codificado para transmisión inalámbrica. En un ejemplo, un codificador 706 en una estación base (por ejemplo, el Nodo B 102 y/o el sistema transmisor 210) (o un nodo inalámbrico en la trayectoria inversa) recibe bits de información de un mensaje 702 para su transmisión. El mensaje 702 puede contener datos y/o voz codificada u otro contenido dirigido al dispositivo de recepción. El codificador 706 codifica el mensaje mediante el uso de un esquema de modulación y codificación (MCS) adecuado, típicamente seleccionado en base a una configuración definida por la estación base u otra entidad de red. En algunos casos, el codificador 706 puede codificar el mensaje, por ejemplo, de acuerdo con aspectos de la presente divulgación (por ejemplo, implementando las operaciones 1500 ilustradas en la Figura 15). Un flujo de bits codificado 708 producido por el codificador 706 puede luego proporcionarse a un mapeador 710 que genera una secuencia de símbolos Tx 712 que son modulados, amplificados y procesados de otra manera por la cadena Tx 714 para producir una señal RF 716 para transmisión a través de la antena 718.
La Figura 8 ilustra una porción 814 de un módem RF 800 que puede configurarse para recibir y decodificar una señal transmitida de forma inalámbrica que incluye un mensaje codificado (por ejemplo, un mensaje codificado mediante el uso de un código LDPC como se describió anteriormente). En diversos ejemplos, el módem 814 que recibe la señal puede residir en el nodo inalámbrico (por ejemplo, nodo inalámbrico 116, sistema receptor 250), en la estación base (por ejemplo, Nodo B 102, sistema transmisor 210), o en cualquier otro aparato o medio adecuado para llevar a cabo las funciones descritas (por ejemplo, dispositivo inalámbrico 302). Una antena 802 recibe una señal de RF 816 (por ejemplo, la señal de RF 716, producida en la Figura 7, alterada por el canal efectivo entre la cadena de RF 700 y la cadena de RF 800) para un nodo inalámbrico (por ejemplo, el nodo inalámbrico 116, 122 y/o el sistema receptor 250). Una cadena de RF 804 procesa y demodula la señal de RF 816 y puede proporcionar una secuencia de símbolos demodulados 806 a un desmapeador 808, que produce un flujo de bits (por ejemplo, una serie de valores recibidos r_j, que pueden denominarse bits suaves o bits suaves escalados y pueden representarse mediante relaciones de verosimilitud logarítmica) 810 representativo del mensaje codificado.
Luego se puede usar un decodificador 812 para decodificar cadenas de información de m bits de un flujo de bits que se ha codificado mediante el uso de un esquema de codificación (por ejemplo, un código LDPC). El decodificador 812 puede comprender un decodificador LDPC en capas con una arquitectura totalmente paralela, paralela a filas o paralela a bloques. Los decodificadores LDPC generalmente funcionan realizando iterativamente cálculos locales y pasando esos resultados intercambiando mensajes dentro del gráfico bipartito 400, a lo largo de los bordes, y actualizando estos mensajes realizando cálculos en los nodos en base a los mensajes entrantes. Estas etapas típicamente pueden repetirse varias veces y pueden denominarse etapas de paso de mensajes. Por ejemplo, cada nodo variable 410 en el gráfico 400 puede estar provisto inicialmente de un "bit suave" (por ejemplo, que representa el bit recibido, r_j, de la palabra de código) que indica una estimación del valor del bit asociado determinado por observaciones del canal de comunicaciones. El "bit suave" puede representarse mediante una relación de verosimilitud logarítmica (LLR) que en algunos aspectos puede definirse como el logaritmo ((probabilidad de que el bit sea 0)/(probabilidad de que el bit sea 1)). Mediante el uso de estas LLR, los decodificadores LDPC pueden actualizar mensajes leyéndolos iterativamente, o una porción de ellos, desde la memoria y escribiendo un mensaje actualizado, o una porción de él, nuevamente en la memoria. Las operaciones de actualización típicamente son en base a las restricciones de comprobación de paridad del código LDPC correspondiente. En las implementaciones de códigos LDPC elevados, los mensajes en bordes similares a menudo se procesan en paralelo. De acuerdo con aspectos de la presente divulgación, siguiendo estas técnicas de decodificación, el decodificador 812 puede decodificar el flujo de bits 810 en base a las LLR para determinar el mensaje 702 que contiene datos, voz codificada y/u otro contenido transmitido desde la estación base (por ejemplo, el Nodo B 102 y/o el sistema transmisor 210). El decodificador puede decodificar el flujo de bits 810 de acuerdo con aspectos de la presente divulgación presentados más abajo (por ejemplo, implementando las operaciones 1400 ilustradas en la Figura 14).
Ejemplo de arquitectura de decodificador LDPC
La codificación de comprobación de paridad de baja densidad (LDPC) es una potente tecnología de codificación de corrección de errores que se usa en diversas aplicaciones, tal como las comunicaciones inalámbricas, el almacenamiento y Ethernet. El LDPC es en base al diseño de códigos en grafos bipartitos, por ejemplo, como se describió anteriormente y se ilustra en la Figura 4A. La decodificación LDPC típicamente se implementa mediante el uso de técnicas de propagación de creencias, descritas anteriormente, donde los mensajes se transmiten a lo largo de los bordes del gráfico y los nodos del gráfico calculan sus distribuciones marginales a partir de las cuales se pueden tomar decisiones sobre los símbolos de origen. Los códigos Cuasi-Cíclicos (QC) son una clase popular de códigos LDPC estructurados donde se "eleva" una matriz de comprobación de paridad (PCM) LDPC base. Por ejemplo, "elevar" implica reemplazar cada entrada PCM base con una submatriz ZxZ. La submatriz ZxZ puede ser una matriz de todos ceros para entradas PCM base '0' o una matriz identidad rotada cíclicamente para entradas PCM base '1'. Los códigos LDPC de control de calidad permiten el procesamiento paralelo en hardware al permitir que los decodificadores, tal como el decodificador ilustrado en la Figura 8, repliquen el procesamiento Z veces con redes de conmutación para intercambiar mensajes.
Los decodificadores LDPC implementan algoritmos de paso de mensajes que a menudo son aproximaciones cercanas del algoritmo de propagación de creencias (BP). El algoritmo log BP para la decodificación LDPC se puede escribir como:
donde L(c) es una relación de verosimilitud logarítmica (LLR) asociada a la variable binaria c definida comoj /■ \iProbabilidadC=0
Probabilidad C—1 donde la probabilidad se condiciona a cierta información implícita en el algoritmo de paso de mensajes que se expande a medida que avanza el algoritmo. La función se da por — logcoth(|-1) índice m generalmente denota un nodo de comprobación de paridad binario o índice de fila PCM binario, j y n generalmente denotan es el nodo de bits o índice de columna PCMqdenota el valor de bit asociado al nodo variable j, equivalentemente a la j-ésima columna PCM binaria, yqmndenota el valor binario asociado al borde que conecta el nodo variable n al nodo de comprobación m.,N(m)es el conjunto de todos los índices de bits para los bits conectados al nodo de comprobación de paridad m,M(j)es el conjunto de todos los índices de nodos de comprobación de paridad para todos los nodos de comprobación de paridad conectados al bitj,yRjes la LLR para el bit j asociado a la observación de transmisión del bit j. Por ejemplo, en una transmisión BPSK estándar sobre un
canal AWGN tenemosRJ<= —>o-2<2>donder¡es el valor recibido, y a2 es la varianza del ruido aditivo del canal. El algoritmo puede inicializarse estableciendoL(qm j)igual aRjy procede mediante la evaluación repetida de las ecuaciones dadas. De acuerdo con aspectos de la presente divulgación, la Ecuación 1 calcula una métrica de comprobación de paridadAmjpara el bitjque suma las LLR de bits entrantesL(qmn)para todos los bits conectados al nodo de comprobación de paridadm(diferente de la LLR para el bitj)mediante una transformación ^ . Esta operación, junto con la ecuación 3, calcula una LLR a posteriori,Rm j,para el bitjen base a las observaciones de los demás bits pertenecientes a la comprobación de paridad m. La ecuación 2 calcula el signo,smj,de la LLR a posteriori,Rm j,en base a los signos de las LLR de bits entrantesL(qmn).La ecuación 4 calcula las LLR de bit actualizados,L(qj ),combinando todos las LLR a posterioriRmj(es decir,<l>L<r>extrínsecos) del decodificador para el bitjcon la LLR a prioriRjdel canal (es decir,<l>L<r>intrínsecos). La ecuación 5 resta la LLR extrínsecoRmjpara el nodo de comprobación de paridadmde la suma LLR de bitsL(qj )antes de que la suma LLR de bitsL(qm j)se devuelva al nodo de comprobación de paridadmpara el cálculo de una LLR actualizado a posteriori y/o extrínsecoRmjen la siguiente iteración. Para una iteración del decodificador LDPC de "inundación", se realizan las etapas 1 a 3 (es decir, el cálculo de las Ecuaciones 1-3) para todos los nodos de comprobación de paridad, después de lo cual todos los nodos de bit (variable) realizan la etapa 4 (es decir, calculan la Ecuación 4) para actualizar las LLR de bit.L(q).
Los decodificadores LDPC en capas realizan etapas similares a las Ecuaciones 1-5 anteriores, pero con algunas ligeras modificaciones. Por ejemplo, el algoritmo BP de registro en capas puede escribirse como:
En las etapas de decodificación por capas anteriores (es decir, Ecuaciones 6-10), las LLR de bitsL(qj )se inicializan con las LLR de bits de canalRj .De acuerdo con ciertos aspectos de la presente divulgación, una diferencia clave entre la decodificación por capas (Ecuaciones 6-10) y la decodificación por inundación (Ecuaciones 1-5) es que en una iteración de decodificación por capas, cuando la LLR a posteriori,Rm j, se calcula para un nodo de comprobación de paridad concreto (fila PCM) en la Ecuación 9, las LLR de bits L(q) se actualizan inmediatamente con los nuevos LLR a posteriori,Rm j,en la Ecuación 10 antes de calcular las LLR a posterioriRm jde la fila siguiente en las Ecuaciones 6-9. Esto contrasta con el decodificador de inundación, donde todos las LLR a posteriori,Rm j, correspondientes a las filas PCM se calculan (las Ecuaciones 1-3 recorren todos los bucles)myj)antes de todos las LLR de bitsL(qj )se actualizan con las LLR a posteriori,Rm j,en la Ecuación 4. Como resultado, la decodificación por capas permite que la información, en forma de las LLR a posteriori actualizados,Rmj,se propague a través del paso de mensajes de propagación de creencias más rápidamente que un decodificador por inundación, lo que se traduce en una convergencia más rápida del decodificador.
La Figura 9 ilustra un diagrama de bloques de alto nivel de un decodificador LDPC en capas genérico 900, que puede ser un ejemplo del decodificador 812 ilustrado en la Figura 8. Como se ilustra, el decodificador LDPC en capas incluye una memoria de almacenamiento LLR 902 para almacenar LLR de bits (por ejemplo,L(qj))(es decir, una LLR de bit por bit de la palabra de código), que se inicializa mediante las LLR de bits de canal (por ejemplo,~2ri
<r2 ), que, a su vez, se actualizan mediante LLR a posteriori (por ejemplo,Rmj).Los LLR de bits de canal o LLR recibidos también se conocen como bits suaves o bits suaves escalados, y el valor recibido r_j es un bit suave. El decodificador LDPC en capas 900 también incluye procesadores de trayectoria de datos 904 que operan en paralelo para calcular las LLR a posteriori y actualizar las LLR de bits almacenados en la memoria de almacenamiento LLR 902. El decodificador LDPC de capas 900 incluye adicionalmente una memoria de almacenamiento de métricas 906 para almacenar LLR a posteriori calculados por los procesadores de trayectoria de datos 904 y una red de permutación 908 para encaminar LLR (por ejemplo, las LLR de bits y las LLR a posteriori) entre las memorias 902, 906 y los procesadores de trayectoria de datos 904.
Como se discutió anteriormente, la decodificación en capas recorre las columnas PCM (las LLR de bits) a lo largo de una fila en el PCM para calcular las LLR a posteriori para esa fila. Después de calcular las LLR a posteriori para la fila, las LLR de bit se actualizan inmediatamente con su LLR a posteriori correspondiente a medida que se introducen en el cálculo de las LLR a posteriori para la siguiente fila. Si el índice de columna de la LLR de bits actualizado se conecta a la siguiente fila, entonces la LLR de bits actualizado se pasa al cálculo LLR a posteriori para esa siguiente fila. Si no existe conexión, entonces la LLR de bits actualizado se puede almacenar en la memoria de almacenamiento LLR 902.
La Figura 10 ilustra un ejemplo de este proceso para calcular/actualizar las LLR de bits y las LLR a posteriori en una matriz de comprobación de paridad (PCM) 1000 como se describió anteriormente. En particular, cada celda del PCM ilustra una LLR calculado a posteriori. Por ejemplo, para el PCM ilustrado en la Figura 10, una vez que se calculan las LLR a posteriori para la fila 3, etiquetada 1002, la LLR de bits para la columna 5, etiquetada 1010, se puede actualizar (por ejemplo, mediante el uso de la Ecuación 10 de arriba) y usar en el cálculo de la LLR a posteriori para la fila 4, etiquetada 1006 (por ejemplo, mediante el uso de las Ecuaciones 6-9 de arriba), ya que la columna 5 se conecta a las filas 3 y 4 (por ejemplo, las entradas PCM (3, 5), etiquetadas 1020, y (4, 5), etiquetadas 1022, no son cero). Sin embargo, cuando la LLR de bits para la columna 6, etiquetado 1012, se actualiza con una LLR a posteriori calculado a partir de la fila 3 (etiquetado 1002), la LLR de bits actualizado se almacena en la memoria (por ejemplo, la memoria de almacenamiento LLR 902) porque el cálculo LLR a posteriori para la fila 4 no incluye la columna 6 dado que (4, 6), etiquetado 1024, está vacío. Cuando se calculan las LLR a posteriori para la fila 5, etiquetados como 1008, la LLR de bits para la columna 6 se lee desde la memoria (por ejemplo, la memoria de almacenamiento LLR 902) en lugar de pasarse desde el cálculo de actualización anterior. También debe tenerse en cuenta que son posibles conflictos de escritura y lectura, ya que las ecuaciones 6 y 10 pueden leer y escribir en la memoria de almacenamiento LLR 902. Tales conflictos pueden crear retrasos en una canalización de procesamiento, si la memoria de almacenamiento LLR 902 tiene un solo puerto de lectura y un solo puerto de escritura.
También pueden introducirse retrasos debido al procesamiento recursivo donde las actualizaciones de LLR de bits para una fila (capa) se pasan al procesamiento de LLR a posteriori para la siguiente capa para la cual las LLR a posteriori calculados se usan para actualizar las LLR de bits nuevamente. Por ejemplo, dada una profundidad de canalización de procesamiento distinta de cero, puede haber una brecha entre las fases de actualización de LLR de bits para que se puedan completar los cálculos de LLR a posteriori.
Por ejemplo, la Figura 11A ilustra un ejemplo de canalización de procesamiento 1100 que muestra este procesamiento fila por fila para calcular las lLr a posteriori y actualizar las LLR de bits en base a las LLR a posteriori. Como se ilustra en la Figura 11A, los retrasos en la canalización (por ejemplo, brechas en el procesamiento) 1102, 1104, 1106 y 1108 están presentes debido al procesamiento recursivo con una interdependencia entre el cálculo a posteriori (por ejemplo, Ecuaciones 6-9) y las etapas de actualización de LLR de bits (por ejemplo, Ecuación 10). Los retrasos de la canalización crecen con el aumento de la profundidad de la tubería, así como también los conflictos de memoria, por ejemplo, como se ilustra en el ejemplo de tubería de procesamiento 1150, que se muestra la Figura 11B, donde se puede ver que un aumento en la profundidad de la canalización a 3 ciclos junto con los conflictos de memoria aumenta el número de ciclos de procesamiento desperdiciados debido a los retrasos de la tubería 1152, 1154, 1156 y 1158. Por lo tanto, aspectos de la presente divulgación presentan técnicas para mitigar retrasos en la canalización en la decodificación LDPC, por ejemplo, mediante el uso de una matriz de comprobación de paridad con ortogonalidad de filas completa o cuasi-ortogonal, como se describe más abajo con mayor detalle.
Ortogonalidad de filas en el diseño compatible con la velocidad LDPC
Los decodificadores LDPC en capas a menudo tienen retrasos en los procesos de actualización, por ejemplo, como se describió anteriormente. Por ejemplo, en un decodificador de capas de comprobación, las actualizaciones de las sumas de nodos variables (por ejemplo, el cálculo a posteriori descrito anteriormente, por ejemplo, mediante el uso de las Ecuaciones 6-9) ocurren después de la finalización de una actualización de la capa de comprobación (por ejemplo, las etapas de actualización de LLR de bits descritos anteriormente, por ejemplo, mediante el uso de la ecuación 10) y la incorporación de estas actualizaciones podría retrasarse aún más por pasos de procesamiento adicionales y accesos a la memoria. Si la conectividad del borde del código LDPC base es de manera que los nodos variables se conectan a dos capas consecutivas, entonces existe el potencial de un impacto negativo en el rendimiento del decodificador. Cuando se procesa la segunda capa de este tipo, es posible que la suma de nodos variables actualizada aún no esté disponible, por lo que la ganancia potencial del procesamiento de la capa anterior no está disponible y no beneficia el rendimiento de esa capa. En algunos casos, esta falta de sumas de nodos variables actualizadas se puede evitar al introducir un retraso adicional. Sin embargo, este retraso adicional puede provocar una ralentización del decodificador y potencialmente degradar el rendimiento a través de una reducción en el total de iteraciones disponibles.
En algunos casos, las capas subsiguientes de un código LDPC se pueden restringir para que sean "ortogonales", lo que significa que las capas subsiguientes no tienen nodos de variables base en común. Sin embargo, tal restricción puede degradar el rendimiento a través de la restricción implícita en la estructura del gráfico base, que limita la conectividad del grafo.
Los diseños LDPC para 5G NR típicamente son compatibles con la velocidad y tienen un gráfico central de alta velocidad que consiste en las primeras capas (por ejemplo, aproximadamente 6 capas o filas) de la construcción seguidas de capas de bits de solicitud de repetición automática híbrida (HARQ) que se usan para reducir la velocidad del código, por ejemplo, como se ilustra en las Figuras 12 y 12A a 12H. Téngase en cuenta que las Figuras 12A a 12H representan una matriz de comprobación de paridad cuando se organizan como se ilustra en la Figura 12. Es decir, las Figuras 12A a 12D muestran las filas 1-23 de una matriz de comprobación de paridad, y las Figuras 12E a 12H muestran las filas 24-50 de la misma matriz de comprobación de paridad.
En algunos casos, puede que no sea factible garantizar la ortogonalidad en el gráfico central. En diseños LDPC recientes para 5G NR, los grafos base a menudo han incluido dos nodos variables perforados de grado relativamente alto (por ejemplo, columnas 1 y 2) que se perforan, como se ilustra en las columnas 1210 y 1212 en la matriz 1200 en las Figuras 12A y 12E. La optimización de la conectividad del gráfico generalmente da como resultado una alta conectividad (muchos bordes) para aquellos nodos, especialmente, en las primeras capas de paridad HARQ que se diseñan para su uso en transmisiones de velocidad relativamente alta. Esto ha llevado a la noción de "cuasi-ortogonalidad", lo que significa que las capas subsiguientes (por ejemplo, subsiguientes a las capas del gráfico base central) son ortogonales excepto en los nodos perforados de alto grado (y posiblemente el bit de paridad central formado a partir de estos dos nodos), que pueden conectarse repetidamente a través de capas subsiguientes. La mayoría de las implementaciones de decodificadores absorberán entonces la degradación debido a las actualizaciones retrasadas para los nodos variables perforados de alto grado.
De acuerdo con aspectos de la presente divulgación, las Figuras 12A-12H ilustran un ejemplo de una matriz de comprobación de paridad elevada 1200 que es cuasi ortogonal a las filas. Por ejemplo, cada fila puede representar una capa, excepto las primeras tres filas demarcadas 1202, 1204 y 1206 (véanse las Figuras 12A a 12D), que representan etiquetas. La primera fila (superior) 1202 contiene etiquetas que enumeran las columnas de la matriz. La segunda fila 1204 contiene etiquetas que son indicadores de codificación, donde un 1 indica una columna sistemática (información) y un 0 indica una columna de paridad. La tercera fila 1206 contiene etiquetas que son indicadores de transmisión, donde un 0 indica perforación (es decir, no hay transmisión) y un 1 indica transmisión.
De acuerdo con aspectos de la presente divulgación, las dos primeras columnas 1210 y 1212 (véanse las Figuras 12A y 12E) de la matriz de comprobación de paridad ilustrada en las Figuras 12A-12H representan nodos variables perforados de alto grado, y la columna 23, etiquetada como 1214 (véanse las Figuras 12B y 12F), representa un bit de paridad especial formado a partir de las dos columnas perforadas. La porción central del gráfico consta de las primeras 6 filas (capas) y las filas HARQ comienzan desde la séptima fila, etiquetada 1220 (ver Figuras 12A-12D), hacia abajo. Tenga en cuenta que desde la séptima fila hacia abajo, ninguna columna tiene una entrada que no esté vacía en dos filas consecutivas excepto las columnas 1, 2 y 23, denominadas 1210, 1212 y 1214. Por lo tanto, la matriz de comprobación de paridad ilustrada en las Figuras 12 y 12A-12H es cuasi-ortogonal a las filas.
A medida que se agregan capas HARQ y disminuye la velocidad de transmisión correspondiente, se puede relajar la conectividad de estos nodos. A menudo, más allá de cierto punto, a medida que las capas aumentan y la velocidad de código objetivo disminuye, la densidad de la conectividad de los nodos perforados disminuye. En particular, como máximo uno de los nodos perforados típicamente se conectará a cada capa. Si, además, el diseño tiene una conectividad casi equilibrada de los dos nodos perforados, lo que significa que cada uno se conecta aproximadamente al mismo número de capas, entonces es posible lograr una ortogonalidad completa para esas capas, por ejemplo, como se ilustra en las Figuras 13 y 13A a 13H.
Como se señaló anteriormente, las Figuras 13A-13H ilustran, cuando se disponen como se muestra en la Figura 13, una matriz de comprobación de paridad 1300 similar a la matriz de comprobación de paridad 1200 ilustrada en las Figuras 12A-12H, excepto que la matriz de comprobación de paridad 1300 es completamente ortogonal por pares después de la 14.a fila/capa 1322 (vea las Figuras 13A-13D). Por ejemplo, como se ilustra, la fila/capa 14 es la última capa donde ambos nodos variables perforados (columnas 1 y 2, etiquetadas 1310 y 1312) se conectan. Todas las filas (capas) subsiguientes son completamente ortogonales entre sí. Por ejemplo, como se ilustra, no hay dos filas consecutivas después de la fila 14, etiquetada 1322, que tengan una entrada en la matriz en la misma columna, lo que hace que las filas después de la fila 14 sean completamente ortogonales entre sí. Tenga en cuenta que los nodos variables perforados de alto grado se conectan de manera alternada, por lo tanto permite que las filas sean completamente ortogonales.
De acuerdo con aspectos de la presente divulgación, el uso de la matriz de comprobación de paridad ilustrada en las Figuras 13A-13H aumenta el rendimiento del decodificador, por ejemplo, al permitir que se usen las sumas de comprobación de variables más actualizadas en el proceso de decodificación de una fila de la matriz de comprobación de paridad. Por ejemplo, dado que no hay nodos variables conectados a dos capas consecutivas, el decodificador tiene tiempo de calcular las sumas de comprobación de variables actualizadas antes de que estas sean necesarias para procesar otra fila.
Por lo tanto, los aspectos de la presente divulgación proponen técnicas para aumentar la disponibilidad de las sumas de nodos variables actualizadas que se usan durante la decodificación sin la degradación del rendimiento asociada con la adición de retrasos adicionales durante el proceso de decodificación (discutido anteriormente), por ejemplo, al mantener la ortogonalidad de capa completa para todas las capas por debajo de la última capa en la que los dos nodos variables base perforados se conectan a la misma capa. Tal restricción (por ejemplo, ortogonalidad de fila completa) da como resultado una estructura alternada donde los dos nodos perforados alternan la conectividad con capas posteriores, por ejemplo, como se ilustra en las Figuras 13 y 13A-13H (nota, las Figuras 13A-13H ilustran una matriz de comprobación de paridad 1300, con las Figuras 13A-13D ilustrando las filas 1-21 de la matriz de comprobación de paridad 1300 y las Figuras 13E-13H ilustrando las filas 22-50 de la matriz de comprobación de paridad 1300), y puede dar como resultado una ortogonalidad de aproximadamente 2/3 (por ejemplo, más de ^ ) de todas las capas.
La Figura 14 ilustra operaciones de ejemplo 1400 para comunicaciones inalámbricas, por ejemplo, para reducir retrasos de procesamiento al decodificar bits codificados LDPC. De acuerdo con ciertos aspectos, las operaciones 1400 pueden ser realizadas por un dispositivo de comunicaciones inalámbricas (por ejemplo, por un receptor y un decodificador (por ejemplo, el decodificador 812) en el dispositivo de comunicaciones inalámbricas), tal como una estación base (por ejemplo, el Nodo B 110 y/o la estación base 210), un equipo de usuario (por ejemplo, la UE 116 y/o la UE 250), y/o un dispositivo inalámbrico 302.
Las operaciones 1400 comienzan en el bloque 1402 cuando el dispositivo de comunicaciones inalámbricas recibe bits suaves asociados a una palabra de código LDPC. Por ejemplo, la UE 116 (por ejemplo, un receptor de la UE 116) recibe bits suaves asociados a una palabra de código LDPC desde la estación base 102.
En 1404, el dispositivo de comunicaciones inalámbricas realiza la decodificación LDPC de los bits suaves mediante el uso de una matriz de comprobación de paridad, en la que: cada fila de la matriz de comprobación de paridad corresponde a una comprobación de paridad elevada de un código LDPC elevado, al menos dos columnas de la matriz de comprobación de paridad corresponden a nodos variables perforados del código LDPC elevado, y la matriz de comprobación de paridad tiene ortogonalidad de filas entre cada par de filas consecutivas que están por debajo de una fila a la que se conectan los al menos dos nodos variables perforados. Continuando con el ejemplo anterior, el UE 116 (por ejemplo, un decodificador de la UE 116) realiza una decodificación LDPC de los bits suaves (es decir, los bits suaves recibidos en el bloque 1402) mediante el uso de una matriz de comprobación de paridad (por ejemplo, la matriz de comprobación de paridad 1300 ilustrada en las Figuras 13 y 13A-13H), en la que cada fila de la matriz de comprobación de paridad corresponde a una comprobación de paridad elevada de un código LDPC elevado, al menos dos columnas de la matriz de comprobación de paridad corresponden a nodos de variables perforados del código LDPC elevado, y la matriz de comprobación de paridad tiene ortogonalidad de filas entre cada par de filas consecutivas que están debajo de una fila a la que se conectan los al menos dos nodos variables perforados.
La Figura 15 ilustra operaciones de ejemplo 1400 para comunicaciones inalámbricas, por ejemplo, para realizar codificación LDPC. De acuerdo con ciertos aspectos, las operaciones 1500 pueden ser realizadas por un dispositivo de comunicaciones inalámbricas (por ejemplo, por un transmisor y un codificador (por ejemplo, codificador 706) en el dispositivo de comunicaciones inalámbricas), tal como una estación base (por ejemplo, Nodo B 110 y/o estación base 210), un equipo de usuario (por ejemplo, UE 116 y/o UE 250), y/o el dispositivo inalámbrico 302.
Las operaciones 1500 comienzan en el bloque 1502 cuando el dispositivo de comunicaciones inalámbricas obtiene bits de información de una palabra de código. Por ejemplo, la UE 116 (por ejemplo, un codificador del UE 116) obtiene bits de información de una palabra de código (por ejemplo, de una aplicación que se ejecuta en el UE). En 1504, el dispositivo de comunicaciones inalámbricas realiza la codificación de los bits de información para calcular los bits de paridad de una palabra de código LDPC de acuerdo con una matriz de comprobación de paridad, en la que: cada fila de la matriz de comprobación de paridad corresponde a una comprobación de paridad elevada de un código LDPC elevado, al menos dos columnas de la matriz de comprobación de paridad corresponden a nodos de variables perforados del código LDPC elevado, y la matriz de comprobación de paridad tiene ortogonalidad de filas entre cada par de filas consecutivas que están debajo de una fila a la que se conectan los al menos dos nodos variables perforados. Continuando con el ejemplo anterior, el UE 116 (por ejemplo, un codificador del UE 116) realiza la codificación de los bits de información (es decir, los bits de información obtenidos en el bloque 1502) de acuerdo con una matriz de comprobación de paridad (por ejemplo, la matriz de comprobación de paridad 1300 ilustrada en las Figuras 13 y 13A-13H), en la que cada fila de la matriz de comprobación de paridad corresponde a una comprobación de paridad elevada de un código LDPC elevado, al menos dos columnas de la matriz de comprobación de paridad corresponden a nodos de variables perforados del código LDPC levantado, y la matriz de comprobación de paridad tiene ortogonalidad de filas entre cada par de filas consecutivas que están debajo de una fila a la que se conectan los al menos dos nodos variables perforados.
Los procedimientos divulgados en la presente memoria comprenden una o más etapas o acciones para lograr el procedimiento descrito. Las etapas y/o acciones del procedimiento se pueden intercambiar entre sí sin apartarse del ámbito de las reivindicaciones. En otras palabras, a menos que se especifique un orden específico de las etapas o acciones, el orden y/o uso de las etapas y/o acciones específicas se puede modificar sin apartarse del ámbito de las reivindicaciones.
Como se usa en la presente memoria, el término "determinar" abarca una amplia variedad de acciones. Por ejemplo, "determinar" puede incluir calcular, computar, procesar, derivar, investigar, buscar (por ejemplo, buscaren una tabla, una base de datos u otra estructura de datos), determinar y similares. Además, "determinar" puede incluir recibir (por ejemplo, recibir información), acceder (por ejemplo, acceder a datos en una memoria) y similares. Además, "determinar" puede incluir resolver, seleccionar, elegir, establecer y similares.
En algunos casos, en lugar de transmitir realmente una trama, un dispositivo puede tener una interfaz para emitir una trama para su transmisión. Por ejemplo, un procesador puede enviar una trama, a través de una interfaz de bus, a un extremo frontal de RF para su transmisión. De manera similar, en lugar de recibir realmente una trama, un dispositivo puede tener una interfaz para obtener una trama recibida de otro dispositivo. Por ejemplo, un procesador puede obtener (o recibir) una trama, a través de una interfaz de bus, desde un extremo frontal de RF para su transmisión.
Las varias operaciones de los procedimientos descritos anteriormente se pueden realizar mediante cualquier medio adecuado capaz de realizar las funciones correspondientes. Los medios pueden incluir diversos componentes y/o módulos de hardware y/o software, incluidos, entre otros, un circuito, un circuito integrado de aplicación específica (ASIC), o un procesador. Generalmente, cuando hay operaciones ilustradas en las figuras, esas operaciones pueden tener componentes correspondientes de medios más función de contraparte con numeración similar.
Por ejemplo, los medios para calcular, los medios para determinar, los medios para utilizar, los medios para actualizar, los medios para leer, los medios para ejecutar y/o los medios para seleccionar pueden comprender un sistema de procesamiento que incluye uno o más procesadores, tales como el procesador 230 y/o el Procesador de Datos RX 242 de la estación base 210 y/o el procesador 270 y/o el Procesador de Datos RX 260 del terminal de usuario 250. Adicionalmente, los medios de almacenamiento pueden comprender una memoria, tal como la memoria 232 de la estación base 210 y/o la memoria 272 del terminal de usuario 250. Además, los medios para recibir pueden comprender un receptor y/o una antena, tal como el receptor 222 y/o la antena 224 de la estación base 210 y/o el receptor 254 y/o la antena 252 del terminal de usuario 250.
Los diversos bloques lógicos, módulos y circuitos ilustrativos que se describen en relación con la presente divulgación pueden implementarse o se pueden realizar con un procesador de propósito general, un procesador de señal digital (DSP), un circuito integrado de aplicación específica (ASIC), una matriz de puertas programable en campo (FPGA) u otro dispositivo lógico programable (PLD), lógica de puertas o transistores discretos, componentes de hardware discretos, o cualquier combinación de los mismos diseñados para realizar las funciones descritas en la presente memoria. Un procesador de propósito general puede ser un microprocesador, pero como alternativa, el procesador puede ser cualquier procesador, controlador, microcontrolador, o máquina de estado disponible comercialmente. Un procesador se puede implementar también como una combinación de dispositivos informáticos, por ejemplo, una combinación de un DSP y un microprocesador, una pluralidad de microprocesadores, uno o más microprocesadores junto con un núcleo de DSP, o cualquier otra de tal configuración.
Si se implementa en hardware, una configuración de hardware de ejemplo puede comprender un sistema de procesamiento en un nodo inalámbrico. El sistema de procesamiento puede implementarse con una arquitectura de bus. El bus puede incluir cualquier número de buses y puentes interconectados en función de la aplicación específica del sistema de procesamiento y las restricciones de diseño generales. El bus puede enlazar diversos circuitos, incluido un procesador, medios legibles por ordenador y una interfaz de bus. La interfaz de bus se puede usar para conectar un adaptador de red, entre otras cosas, al sistema de procesamiento a través del bus. El adaptador de red se puede usar para implementar las funciones de procesamiento de señales de la capa PHY. En el caso de un nodo inalámbrico (véase la Figura 1), también puede conectarse al bus una interfaz de usuario (por ejemplo, teclado, pantalla, ratón, joystick, etc.). El bus también puede enlazar diversos otros circuitos tales como fuentes de temporización, periféricos, reguladores de tensión, circuitos de administración de energía y similares, que se conocen bien en la técnica y, por lo tanto, no se describirán más. El procesador puede implementarse con uno o más procesadores de propósito general y/o de propósito especial. Los ejemplos incluyen microprocesadores, microcontroladores, procesadores DSP, y otros circuitos que pueden ejecutar software. Los expertos en la técnica reconocerán la mejor manera de implementar la funcionalidad descrita para el sistema de procesamiento en función de la aplicación particular y las restricciones de diseño generales impuestas al sistema general.
Si se implementan en software, las funciones se pueden almacenar o transmitir como una o más instrucciones o código en un medio legible por ordenador. El software se interpretará en sentido amplio como instrucciones, datos o cualquier combinación de los mismos, ya sea que se denomine como software, microprograma, software intermedio, microcódigo, lenguaje de descripción de hardware, o de cualquier otra manera. Los medios legibles por ordenador incluyen tanto los medios de almacenamiento del ordenador como los medios de comunicación, incluido cualquier medio que facilite la transferencia de un programa de ordenador de un lugar a otro. El procesador puede ser responsable de administrar el bus y el procesamiento general, incluida la ejecución de los módulos de software almacenados en los medios de almacenamiento legibles por ordenador. Un medio de almacenamiento legible por ordenador se puede acoplar a un procesador de manera que el procesador pueda leer información del medio de almacenamiento, y escribir información en él. Como alternativa, el medio de almacenamiento puede integrarse al procesador. A manera de ejemplo, los medios legibles por ordenador pueden incluir una línea de transmisión, una onda portadora modulada por datos y/o un medio de almacenamiento legible por ordenador con instrucciones almacenadas en el mismo por separado del nodo inalámbrico, todos los cuales se pueden acceder por el procesador a través de la interfaz de bus. Alternativamente, o además, los medios legibles por ordenador, o cualquier porción de los mismos, se pueden integrar en el procesador, tal como el caso puede ser con caché y/o archivos de registro general. Ejemplos de medios de almacenamiento legibles por ordenador pueden incluir, a modo de ejemplo, RAM (Memoria de Acceso Aleatorio), memoria flash, ROM (Memoria de Solo Lectura), PROM (Memoria de Solo Lectura Programable), EPROM (Memoria de Solo Lectura Programable y Borrable), EEPROM (Memoria de Solo Lectura Programable y Borrable Eléctricamente), registros, discos magnéticos, discos ópticos, discos duros, o cualquier otro medio de almacenamiento adecuado, o cualquier combinación de los mismos. Los medios legibles por ordenador se pueden llevar a la práctica en un producto de programa de ordenador.
Un módulo de software puede comprender una única instrucción, o muchas instrucciones, y se puede distribuir en diversos segmentos de código diferentes, entre diferentes programas, y en múltiples medios de almacenamiento. Los medios legibles por ordenador pueden comprender un número de módulos de software. Los módulos de software incluyen instrucciones que, cuando se ejecutan por un aparato como un procesador, hacen que el sistema de procesamiento realice varias funciones. Los módulos de software pueden incluir un módulo de transmisión y un módulo de recepción. Cada módulo de software puede residir en un único dispositivo de almacenamiento o se puede distribuir entre múltiples dispositivos de almacenamiento. A modo de ejemplo, un módulo de software se puede cargar en la RAM desde un disco duro cuando se produce un evento desencadenante. Durante la ejecución del módulo de software, el procesador puede cargar algunas de las instrucciones en la caché para aumentar la velocidad de acceso. Una o más líneas de caché se pueden entonces cargar en un archivo de registro general para que las ejecute el procesador. Cuando se hace referencia a la funcionalidad de un módulo de software a continuación, se entenderá que tal funcionalidad se implementa por el procesador al ejecutar instrucciones desde ese módulo de software.
Además, cualquier conexión se denomina correctamente un medio legible por ordenador. Por ejemplo, si el software se transmite desde un sitio web, servidor u otra fuente remota mediante el uso de un cable coaxial, cable de fibra óptica, par trenzado, línea de suscriptor digital (DSL) o tecnologías inalámbricas como infrarrojos (IR), radio y microondas, luego el cable coaxial, cable de fibra óptica, par trenzado, DSL o tecnologías inalámbricas como infrarrojos, radio, y microondas se incluyen en la definición de medio. El disquete y disco, tal como se usan en la presente memoria, incluyen disco compacto (CD), disco láser, disco óptico, disco versátil digital (DVD), disquete y disco Blu-ray® donde los discos generalmente reproducen los datos magnéticamente, mientras que los discos reproducen los datos ópticamente con láser. Por lo tanto, en algunos aspectos los medios legibles por ordenador pueden comprender medios legibles por ordenador no transitorios (por ejemplo, medios tangibles). Además, en otros aspectos, los medios legibles por ordenador pueden comprender medios legibles por ordenador transitorios (por ejemplo, una señal). Las combinaciones de los medios anteriores también pueden incluirse dentro del ámbito de los medios legibles por ordenador.
Por lo tanto, ciertos aspectos pueden comprender un producto de programa de ordenador para realizar las operaciones que se presentan en la presente memoria. Por ejemplo, tal producto de programa de ordenador puede comprender un medio legible por ordenador que tiene instrucciones almacenadas (y/o codificadas) en el mismo, las instrucciones que son ejecutables por uno o más procesadores para realizar las operaciones descritas en la presente memoria.
Además, debe apreciarse que los módulos y/u otros medios apropiados para realizar los procedimientos y técnicas descritos en la presente memoria pueden descargarse y/u obtenerse de otra manera por un nodo inalámbrico y/o estación base según corresponda. Por ejemplo, dicho dispositivo puede acoplarse a un servidor para facilitar la transferencia de los medios para la ejecución de los procedimientos descritos en la presente memoria. Alternativamente, los diversos métodos descritos en la presente memoria pueden proporcionarse a través de medios de almacenamiento (por ejemplo, RAM, ROM, un medio de almacenamiento físico tal como un disco compacto (CD) o disquete, etc.), de manera que un nodo inalámbrico y/o estación base puede obtener los diversos métodos al acoplar o proporcionar los medios de almacenamiento al dispositivo. Además, se puede utilizar cualquier otra técnica adecuada para proporcionar los procedimientos y técnicas descritos en la presente memoria a un dispositivo.
Debe entenderse que las reivindicaciones no se limitan a la configuración precisa y a los componentes ilustrados anteriormente. Pueden realizarse diversas modificaciones, cambios y variaciones en el arreglo, operación y detalles de los procedimientos y aparatos descritos anteriormente sin apartarse del ámbito de las reivindicaciones.
Claims (12)
1. Un procedimiento para realizar una decodificación de comprobación de paridad de baja densidad cuasi-cíclica, QC-LDPC, para transmisión de solicitud de repetición automática híbrida, HARQ, mediante el uso de un diseño compatible con la velocidad QC-LDPC, el procedimiento que comprende:
recibir bits suaves asociados a una palabra de código QC-LDPC (1402) de un código QC-LDPC del diseño compatible con la velocidad QC-LDPC; y
realizar la decodificación QC-LDPC de los bits suaves mediante el uso de una matriz de comprobación de paridad (1300) del código QC-LDPC obtenido al elevar un gráfico base LDPC,
en el que la matriz de comprobación de paridad comprende:
una primera pluralidad de filas que representan una porción central (1320) correspondiente a un código QC-LDPC de alta velocidad y una segunda pluralidad de filas HARQ después de la primera pluralidad de filas usadas para reducir la velocidad del código QC-LDPC de alta velocidad;
cada fila de la primera y segunda pluralidad de filas de la matriz de comprobación de paridad comprende entradas no vacías, cada una con un valor entero que representa una matriz de identidad rotada cíclica ZxZ o entradas vacías, cada una que representa una submatriz ZxZ de todo cero;
al menos dos columnas en las que dos columnas (1310, 1312) corresponden a dos nodos variables perforados de alto grado del gráfico base LDPC;
al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC y al menos dos filas por debajo de una fila más baja (1322) de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC; y
en el que la matriz de comprobación de paridad tiene ortogonalidad de filas entre cada par de filas consecutivas que están por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC (1404) en el sentido de que ninguna columna tiene una entrada no vacía en cada par de filas consecutivas que están por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC; y caracterizado porque
los dos nodos variables perforados de alto grado del gráfico base LDPC alternan, de fila en fila, su respectiva conectividad de fila para todas las filas de la matriz de comprobación de paridad, por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC.
2. El procedimiento de la reivindicación 1, en el que al menos 1/2 de todos los pares de filas consecutivas de la matriz de comprobación de paridad tienen ortogonalidad de filas.
3. El procedimiento de la reivindicación 2, en el que al menos 1/2 de todos los pares de filas consecutivas comprende la última 1/2 de todas las filas de la matriz de comprobación de paridad, y en el que la última 1/2 de todas las filas de la matriz de comprobación de paridad corresponde a filas HARQ.
4. Un aparato para realizar una decodificación de comprobación de paridad de baja densidad cuasi cíclica, QC-LDPC, para transmisión de solicitud de repetición automática híbrida, HARQ, mediante el uso de un diseño compatible con la velocidad QC-LDPC, que comprende:
uno o más procesadores configurados para:
hacer que el aparato reciba bits suaves asociados a una palabra de código QC-LDPC de un código QC-LDPC del diseño compatible con la velocidad QC-LDPC; y
realizar una decodificación QC-LDPC (812) de los bits suaves mediante el uso de una matriz de comprobación de paridad (1300) del código QC-LDPC obtenido mediante la elevación de un gráfico base LDPC, en el que la matriz de comprobación de paridad comprende:
una primera pluralidad de filas que representan una porción central (1320) correspondiente a un código QC-LDPC de alta velocidad y una segunda pluralidad de filas HARQ después de la primera pluralidad de filas usadas para reducir la velocidad del código QC-LDPC de alta velocidad;
cada fila de la primera y segunda pluralidad de filas de la matriz de comprobación de paridad comprende entradas no vacías, cada una con un valor entero que representa una matriz de identidad rotada cíclica ZxZ o entradas vacías, cada una que representa una submatriz ZxZ de todo cero;
al menos dos columnas en las que dos columnas (1310, 1312) corresponden a dos nodos variables perforados de alto grado del gráfico base del código LDPC;
al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC y al menos dos filas por debajo de una fila más baja (1322) de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC; y
en el que la matriz de comprobación de paridad tiene ortogonalidad de filas entre cada par de filas consecutivas que están por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC, en el sentido de que ninguna columna tiene una entrada no vacía en cada par de filas consecutivas que están por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC, y caracterizado porque
los dos nodos variables perforados de alto grado del grafico base LDPC alternan, de fila en fila, su respectiva conectividad de fila para todas las filas de la matriz de comprobación de paridad, por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC, y
una o más memorias acopladas a uno o más procesadores.
5. El aparato de la reivindicación 4, en el que al menos 1/2 de todos los pares de filas consecutivas de la matriz de comprobación de paridad tienen ortogonalidad de fila.
6. El aparato de la reivindicación 5, en el que al menos 1/2 de todos los pares de filas consecutivas comprende la última 1/2 de todas las filas de la matriz de comprobación de paridad, y en el que la última 1/2 de todas las filas de la matriz de comprobación de paridad corresponde a HARQ.
7. Un procedimiento para realizar una codificación de comprobación de paridad de baja densidad cuasi-cíclica, QC-LDPC, para transmisión de solicitud de repetición automática híbrida, HARQ, mediante el uso de un diseño compatible con la velocidad QC-LDPC, el procedimiento que comprende:
obtener bits de información de una palabra de código QC-LDPC (1502) de un código QC-LDPC del diseño compatible con la velocidad QC-LDPC; y
realizar la codificación de los bits de información para calcular los bits de paridad de la palabra de código QC-LDPC de acuerdo con una matriz de comprobación de paridad (1300) del código QC-LDPC obtenido mediante la elevación de un gráfico base LDPC,
en el que la matriz de comprobación de paridad comprende:
una primera pluralidad de filas que representan una porción central (1320) correspondiente a un código QC-LDPC de alta velocidad y una segunda pluralidad de filas HARQ después de la primera pluralidad de filas usadas para reducir la velocidad del código QC-LDPC de alta velocidad;
cada fila de la primera y segunda pluralidad de filas de la matriz de comprobación de paridad comprende entradas no vacías, cada una con un valor entero que representa una matriz de identidad rotada cíclica ZxZ o entradas vacías, cada una que representa una submatriz ZxZ de todo cero;
al menos dos columnas en las que dos columnas (1310, 1312) corresponden a dos nodos variables perforados de alto grado del gráfico base LDPC;
al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC y al menos dos filas por debajo de una fila más baja (1322) de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC; y
en el que la matriz de comprobación de paridad tiene ortogonalidad de filas entre cada par de filas consecutivas que están por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC (1404) en el sentido de que ninguna columna tiene una entrada no vacía en cada par de filas consecutivas que están por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC; y caracterizado porque
los dos nodos variables perforados de alto grado del gráfico base LDPC alternan, de fila en fila, su respectiva conectividad de fila para todas las filas de la matriz de comprobación de paridad, por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC.
8. El procedimiento de la reivindicación 7, en el que al menos 1/2 de todos los pares de filas consecutivas de la matriz de comprobación de paridad tienen ortogonalidad de filas.
9. El procedimiento de la reivindicación 8, en el que al menos 1/2 de todos los pares de filas consecutivas comprende la última 1/2 de todas las filas de la matriz de comprobación de paridad, y en el que la última 1/2 de todas las filas de la matriz de comprobación de paridad corresponde a filas HARQ.
10. Un aparato para realizar una codificación de comprobación de paridad de baja densidad cuasi-cíclica, QC-LDPC, para la transmisión de solicitud de repetición automática híbrida, HARQ mediante el uso de un diseño compatible con la velocidad QC-LDPC, que comprende:
uno o más procesadores configurados para:
obtener bits de información de una palabra de código QC-LDPC de un código QC-LDPC del diseño compatible con la velocidad QC-LDPC; y
realizar la codificación (706) de los bits de información para calcular los bits de paridad de la palabra de código QC-LDPC de acuerdo con una matriz de comprobación de paridad (1300) del código QC-LDPC obtenido al elevar un gráfico base LDPC,
en el que la matriz de comprobación de paridad comprende:
una primera pluralidad de filas que representan una porción de núcleo (1320) correspondiente a un código QC-LDPC de alta velocidad y una segunda pluralidad de filas HARQ después de la primera pluralidad de filas usadas para reducir la velocidad del código QC-LDPC de alta velocidad
cada fila de la primera y segunda pluralidad de filas de la matriz de comprobación de paridad comprende entradas no vacías cada una con un valor entero que representa una matriz de identidad rotada cíclica ZxZ o entradas vacías cada una que representa una submatriz ZxZ de todo cero,
al menos dos columnas en las que dos columnas (1310, 1312) corresponden a dos nodos variables perforados de alto grado del gráfico base LDPC;
al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC y al menos dos filas por debajo de una fila más baja (1322) de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC; y
en el que la matriz de comprobación de paridad tiene ortogonalidad de filas entre cada par de filas consecutivas que están por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC, de manera que ninguna columna tiene una entrada no vacía en cada par de filas consecutivas que están por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos de variable perforados de alto grado del gráfico base LDPC; y caracterizado porque
los dos nodos variables perforados de alto grado del grafico base LDPC alternan, de fila en fila, su respectiva conectividad de fila para todas las filas de la matriz de comprobación de paridad, por debajo de dicha fila más baja de dicha al menos una fila a la que se conectan los dos nodos variables perforados de alto grado del gráfico base LDPC, y
una o más memorias acopladas a uno o más procesadores.
11. El aparato de la reivindicación 10, en el que al menos 1/2 de todos los pares de filas consecutivas de la matriz de comprobación de paridad tienen ortogonalidad de fila.
12. El aparato de la reivindicación 11, en el que al menos 1/2 de todos los pares de filas consecutivas comprende la última 1/2 de todas las filas de la matriz de comprobación de paridad, y en el que la última 1/2 de todas las filas de la matriz de comprobación de paridad corresponde a HARQ.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762505573P | 2017-05-12 | 2017-05-12 | |
| US15/975,440 US10680646B2 (en) | 2017-05-12 | 2018-05-09 | Row orthogonality in LDPC rate compatible design |
| PCT/US2018/031988 WO2018209035A1 (en) | 2017-05-12 | 2018-05-10 | Constructing parity check matrices with row-orthogonality for rate compatible qc-ldpc codes |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2988688T3 true ES2988688T3 (es) | 2024-11-21 |
Family
ID=62685080
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES18732965T Active ES2988688T3 (es) | 2017-05-12 | 2018-05-10 | Construcción de matrices de comprobación de paridad con ortogonalidad de filas para códigos QC-LDPC compatible con la velocidad |
Country Status (11)
| Country | Link |
|---|---|
| US (3) | US10680646B2 (es) |
| EP (2) | EP4459909A3 (es) |
| JP (1) | JP6828190B2 (es) |
| KR (1) | KR102197173B1 (es) |
| CN (2) | CN118018038A (es) |
| BR (1) | BR112019023301A2 (es) |
| ES (1) | ES2988688T3 (es) |
| PL (1) | PL3622627T3 (es) |
| SG (1) | SG11201909120PA (es) |
| TW (1) | TWI725308B (es) |
| WO (1) | WO2018209035A1 (es) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10469104B2 (en) | 2016-06-14 | 2019-11-05 | Qualcomm Incorporated | Methods and apparatus for compactly describing lifted low-density parity-check (LDPC) codes |
| US10680646B2 (en) | 2017-05-12 | 2020-06-09 | Qualcomm Incorporated | Row orthogonality in LDPC rate compatible design |
| US10879927B2 (en) * | 2017-05-17 | 2020-12-29 | Futurewei Technologies, Inc. | Compact low density parity check (LDPC) base graph |
| CN108988869B (zh) * | 2017-05-31 | 2021-07-30 | 大唐移动通信设备有限公司 | 一种确定校验矩阵的方法及装置、计算机存储介质 |
| US10312939B2 (en) | 2017-06-10 | 2019-06-04 | Qualcomm Incorporated | Communication techniques involving pairwise orthogonality of adjacent rows in LPDC code |
| US12476733B2 (en) | 2017-06-19 | 2025-11-18 | Qualcomm Incorporated | Communication techniques with self-decodable redundancy versions (RVs) using systematic codes |
| CN110832799B (zh) | 2017-07-07 | 2021-04-02 | 高通股份有限公司 | 应用低密度奇偶校验码基图选择的通信技术 |
| EP3718216A1 (en) * | 2017-12-15 | 2020-10-07 | Huawei Technologies Co., Ltd. | Design of base parity-check matrices for ldpc codes that have subsets of orthogonal rows |
| WO2019164515A1 (en) * | 2018-02-23 | 2019-08-29 | Nokia Technologies Oy | Ldpc codes for 3gpp nr ultra-reliable low-latency communications |
| US10979072B2 (en) * | 2019-03-19 | 2021-04-13 | Western Digital Technologies, Inc. | Punctured bit estimation and bit error rate estimation |
| WO2020218629A1 (ko) * | 2019-04-22 | 2020-10-29 | 엘지전자 주식회사 | 레이트-호환 비이진 ldpc 코드를 지원하기 위한 방법 및 이를 이용한 무선 단말 |
| EP3963723A4 (en) * | 2019-09-10 | 2022-07-20 | Samsung Electronics Co., Ltd. | METHOD AND DEVICE FOR DECODING DATA IN A COMMUNICATION OR BROADCASTING SYSTEM |
| KR20210090483A (ko) | 2020-01-10 | 2021-07-20 | 주식회사 엘지에너지솔루션 | 다공성 환원 그래핀 옥사이드, 이의 제조방법, 이를 포함하는 황-탄소 복합체 및 리튬 이차전지 |
| CN112039536B (zh) * | 2020-06-12 | 2023-04-18 | 中山大学 | 一种基于正交频分复用技术的自适应极化码编译码方法 |
| CN116964968A (zh) * | 2021-03-18 | 2023-10-27 | 高通股份有限公司 | 用于低密度奇偶校验编码的位替换 |
| CN113661657A (zh) * | 2021-07-02 | 2021-11-16 | 香港应用科技研究院有限公司 | 低延迟分段准循环低密度奇偶校验(qc-ldpc)解码器 |
| US12199634B2 (en) | 2021-11-26 | 2025-01-14 | Samsung Electronics Co., Ltd. | Decoding apparatus, decoding method, and electronic apparatus |
| WO2025155146A1 (ko) * | 2024-01-20 | 2025-07-24 | 삼성전자주식회사 | 통신 시스템 또는 방송 시스템에서 채널 부호를 복호하기 위한 장치 및 방법 |
Family Cites Families (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6633865B1 (en) | 1999-12-23 | 2003-10-14 | Pmc-Sierra Limited | Multithreaded address resolution system |
| US6633856B2 (en) | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
| US7000167B2 (en) * | 2001-08-01 | 2006-02-14 | International Business Machines Corporation | Decoding low density parity check codes |
| US6961888B2 (en) | 2002-08-20 | 2005-11-01 | Flarion Technologies, Inc. | Methods and apparatus for encoding LDPC codes |
| EP1656737B1 (en) * | 2003-08-08 | 2019-05-08 | Intel Corporation | Method and apparatus for varying lengths of low density parity check codewords |
| KR100981500B1 (ko) * | 2006-02-07 | 2010-09-10 | 삼성전자주식회사 | 저밀도 패러티 검사 부호 기반의 하이브리드 재전송 방법 |
| US20070245217A1 (en) * | 2006-03-28 | 2007-10-18 | Stmicroelectronics S.R.L. | Low-density parity check decoding |
| WO2008075627A1 (ja) * | 2006-12-18 | 2008-06-26 | Mitsubishi Electric Corporation | 符号化装置、符号化方法、符号化復号装置及び通信装置 |
| CN101217337B (zh) * | 2007-01-01 | 2013-01-23 | 中兴通讯股份有限公司 | 一种支持递增冗余混合自动重传的低密度奇偶校验码编码装置和方法 |
| KR101445080B1 (ko) | 2008-02-12 | 2014-09-29 | 삼성전자 주식회사 | 하이브리드 자동 반복 요구 방식을 사용하는 통신 시스템에서 신호 송신 방법 및 장치 |
| US8392789B2 (en) * | 2009-07-28 | 2013-03-05 | Texas Instruments Incorporated | Method and system for decoding low density parity check codes |
| US8504887B1 (en) * | 2009-12-24 | 2013-08-06 | Marvell International Ltd. | Low power LDPC decoding under defects/erasures/puncturing |
| US8726122B2 (en) * | 2011-05-11 | 2014-05-13 | Samsung Electronics Co., Ltd. | High throughput LDPC decoder |
| KR101662747B1 (ko) * | 2013-02-13 | 2016-10-06 | 퀄컴 인코포레이티드 | 높은 병렬성, 낮은 에러 플로어, 및 간단한 인코딩 원리를 갖는 리프팅된 ldpc 코드들에 대한 설계 |
| KR20160002946A (ko) * | 2013-04-25 | 2016-01-08 | 퀄컴 인코포레이티드 | 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치 |
| EP2879318A1 (en) | 2013-11-29 | 2015-06-03 | Panasonic Corporation | Efficient component interleaving for rotated constellations with time-frequency slicing |
| US10313054B2 (en) * | 2015-01-07 | 2019-06-04 | Avago Technologies International Sales Pte. Limited | Low density parity check (LDPC) codes for communication devices and systems |
| US9787326B2 (en) * | 2015-05-19 | 2017-10-10 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding low density parity check codes |
| US9742439B1 (en) * | 2015-06-08 | 2017-08-22 | Microsemi Solutions (U.S.), Inc. | Method and device for forward error correction decoder system utilizing orthogonality of an H matrix |
| US10122508B2 (en) * | 2015-07-31 | 2018-11-06 | Lg Electronics Inc. | Method and apparatus for configuring a long training field in a wireless local area network system |
| EP3902142A1 (en) * | 2016-05-12 | 2021-10-27 | MediaTek Inc. | Qc-ldpc coding methods and apparatus |
| WO2018004521A1 (en) * | 2016-06-27 | 2018-01-04 | Intel Corporation | Broken bandgap contact |
| WO2018128559A1 (en) * | 2017-01-09 | 2018-07-12 | Huawei Technologies Co., Ltd. | Efficiently decodable qc-ldpc code |
| EP3471276A4 (en) * | 2017-02-06 | 2020-06-24 | LG Electronics Inc. -1- | LDPC CODE TRANSMISSION METHOD USING ORTHOGONAL ROW STRUCTURE, AND ASSOCIATED DEVICE |
| US10680646B2 (en) | 2017-05-12 | 2020-06-09 | Qualcomm Incorporated | Row orthogonality in LDPC rate compatible design |
-
2018
- 2018-05-09 US US15/975,440 patent/US10680646B2/en active Active
- 2018-05-10 JP JP2019561752A patent/JP6828190B2/ja active Active
- 2018-05-10 BR BR112019023301-6A patent/BR112019023301A2/pt unknown
- 2018-05-10 KR KR1020197033238A patent/KR102197173B1/ko active Active
- 2018-05-10 ES ES18732965T patent/ES2988688T3/es active Active
- 2018-05-10 TW TW107115891A patent/TWI725308B/zh active
- 2018-05-10 CN CN202410167930.XA patent/CN118018038A/zh active Pending
- 2018-05-10 EP EP24200617.9A patent/EP4459909A3/en active Pending
- 2018-05-10 WO PCT/US2018/031988 patent/WO2018209035A1/en not_active Ceased
- 2018-05-10 SG SG11201909120P patent/SG11201909120PA/en unknown
- 2018-05-10 PL PL18732965.1T patent/PL3622627T3/pl unknown
- 2018-05-10 CN CN201880030726.6A patent/CN110622425B/zh active Active
- 2018-05-10 EP EP18732965.1A patent/EP3622627B1/en active Active
-
2020
- 2020-05-05 US US16/867,330 patent/US11411581B2/en active Active
-
2022
- 2022-08-05 US US17/817,717 patent/US11916571B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| EP3622627A1 (en) | 2020-03-18 |
| EP4459909A3 (en) | 2025-01-01 |
| US11411581B2 (en) | 2022-08-09 |
| US10680646B2 (en) | 2020-06-09 |
| CN110622425A (zh) | 2019-12-27 |
| CN118018038A (zh) | 2024-05-10 |
| CN110622425B (zh) | 2024-02-20 |
| EP3622627B1 (en) | 2024-09-18 |
| JP6828190B2 (ja) | 2021-02-10 |
| JP2020521362A (ja) | 2020-07-16 |
| TWI725308B (zh) | 2021-04-21 |
| KR102197173B1 (ko) | 2020-12-31 |
| KR20200003829A (ko) | 2020-01-10 |
| EP4459909A2 (en) | 2024-11-06 |
| US20200266832A1 (en) | 2020-08-20 |
| TW201902136A (zh) | 2019-01-01 |
| EP3622627C0 (en) | 2024-09-18 |
| PL3622627T3 (pl) | 2025-01-07 |
| BR112019023301A2 (pt) | 2020-06-16 |
| US20230030277A1 (en) | 2023-02-02 |
| US20190013827A1 (en) | 2019-01-10 |
| US11916571B2 (en) | 2024-02-27 |
| WO2018209035A1 (en) | 2018-11-15 |
| SG11201909120PA (en) | 2019-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2988688T3 (es) | Construcción de matrices de comprobación de paridad con ortogonalidad de filas para códigos QC-LDPC compatible con la velocidad | |
| US10511328B2 (en) | Efficient list decoding of LDPC codes | |
| US10419027B2 (en) | Adjusted min-sum decoder | |
| AU2016351377A1 (en) | Puncturing for structured low density parity check (LDPC) codes | |
| CN109923787B (zh) | 用于分层ldpc解码器的早期终止 | |
| KR102265247B1 (ko) | 파이프라인 방식의 높은-스루풋의 계층화된 ldpc 디코더 아키텍처 | |
| US20180123615A1 (en) | Non-linear log-likelihood ratio quantization techniques for ldpc decoder architecture | |
| HK40107197A (zh) | 构造具有用於速率兼容的qc-ldpc编码的行正交性的奇偶校验矩阵 | |
| BR112019008746B1 (pt) | Método e equipamento para realizar decodificação por verificação de paridade de baixa densidade (ldpc) e memória legível por computador | |
| HK40018545B (zh) | 用於执行低密度奇偶校验(ldpc)解码的方法和装置 | |
| HK40018545A (en) | Method and apparatus for performing low-density parity-check (ldpc) decoding | |
| HK40007668B (en) | Pipelined high-throughput layered ldpc decoder architecture | |
| HK40007668A (en) | Pipelined high-throughput layered ldpc decoder architecture |