Upload
jose-ramon-cerquides-bueno
View
698
Download
7
Embed Size (px)
Citation preview
Desarrollo de un simulador DVB-T2 en Simulink 1
Desarrollo de un simulador DVB-T2 en Simulink 2
ÍNDICE
1.- INTRODUCCIÓN .............................................................................................................................. 13
1.1.- HISTORIA DE LA TELEVISIÓN .................................................................................................................. 13
1.2.- OBJETIVOS. ORGANIZACIÓN DE LA MEMORIA ............................................................................................ 15
2.- DVB ................................................................................................................................................. 17
2.1.- INTRODUCCIÓN ................................................................................................................................... 17
2.2.- EL PROYECTO DVB .............................................................................................................................. 18
2.3.- ESTÁNDARES MÁS IMPORTANTES ............................................................................................................ 19
2.3.1.- DVB-S ...................................................................................................................................... 19 2.3.1.1.- Flujo de Transporte ......................................................................................................................... 19
2.3.2.- DVB-S2 .................................................................................................................................... 21
2.3.3.- DVB-C ...................................................................................................................................... 21
2.3.4.- DVB-C2 .................................................................................................................................... 22
2.4.- DVB-T ............................................................................................................................................. 23
2.4.1.- Introducción ............................................................................................................................ 23
2.4.2.- Codificación de Canal.............................................................................................................. 25 2.4.2.1.- Adaptación y Dispersión de Energía ................................................................................................ 25 2.4.2.2.- Codificación Externa ........................................................................................................................ 26 2.4.2.3.- Codificación Interna ........................................................................................................................ 27 2.4.2.4.- Entrelazado Interno ......................................................................................................................... 27
2.4.3.- Modulación OFDM .................................................................................................................. 28 2.4.3.1.- Capacidad del Canal de Transmisión ............................................................................................... 29 2.4.3.2.- Portadoras Piloto ............................................................................................................................. 29
2.5.- OTROS ESTÁNDARES DE TRANSMISIÓN DIGITAL .......................................................................................... 31
2.5.1.- Estándar ATSC ......................................................................................................................... 31
2.5.2.- Estándar ISDB-T ...................................................................................................................... 33
3.- DVB-T2 ............................................................................................................................................ 35
3.1.- INTRODUCCIÓN ................................................................................................................................... 35
3.2.- VISIÓN GENERAL SOBRE DVB-T2 ........................................................................................................... 36
3.2.1.- Capa Física .............................................................................................................................. 36
3.2.2.- Physical Layer Pipes (PLPs) ..................................................................................................... 37
3.2.3.- Preámbulos (P1 y P2) .............................................................................................................. 38
3.2.4.- Patrón de Pilotos .................................................................................................................... 38
3.2.5.- Códigos de control de errores LDPC/BCH................................................................................ 39
3.2.6.- Etapas de entrelazado ............................................................................................................ 39
3.2.7.- Técnicas de reducción de PAPR ............................................................................................... 40
3.3.- ELECCIÓN DE PARÁMETROS ................................................................................................................... 40
3.3.1.- Elección del tamaño FFT ......................................................................................................... 41
3.3.2.- Elección de portadora normal o extendida ............................................................................. 41
3.3.3.- Elección del Intervalo de Guarda ............................................................................................ 42
3.3.4.- Elección del Patrón de Pilotos ................................................................................................. 43
3.3.5.- Elección de la longitud de la Trama ........................................................................................ 44
Desarrollo de un simulador DVB-T2 en Simulink 3
3.3.6.- Elección de los parámetros de entrelazado de tiempo ........................................................... 45
3.4.- ESTRUCTURA FÍSICA DE LA TRAMA .......................................................................................................... 46
3.4.1.- Súper-trama ............................................................................................................................ 46
3.4.2.- Trama T2................................................................................................................................. 47
3.4.3.- Señalización L1 ....................................................................................................................... 49
3.5.- ESTRUCTURA LÓGICA DE UNA TRAMA ...................................................................................................... 50
3.5.1.- Paquetes ................................................................................................................................. 50
3.5.2.- BB-Frame, FECFrames y bloques FEC ...................................................................................... 50 3.5.2.1.- BB-Frames ....................................................................................................................................... 50 3.5.2.2.- FECFrames ....................................................................................................................................... 50 3.5.2.3.- Bloques FEC ..................................................................................................................................... 51
3.5.3.- Entrelazado de Tramas ........................................................................................................... 51
3.5.4.- Bloques TI ............................................................................................................................... 52
3.6.- SEÑALIZACIÓN L1 ................................................................................................................................ 52
3.7.- CODIFICACIÓN Y MODULACIÓN .............................................................................................................. 53
3.7.1.- Corrección de errores para las PLP ......................................................................................... 53
3.7.2.- Entrelazado de Bits ................................................................................................................. 54
3.7.3.- Entrelazador de células ........................................................................................................... 55
3.7.4.- Entrelazado de Tiempo ........................................................................................................... 56
3.8.- FORMACIÓN DE TRAMA Y GENERACIÓN OFDM ......................................................................................... 57
3.8.1.- Entrelazado en frecuencia ...................................................................................................... 58
3.8.2.- Inserción de Pilotos ................................................................................................................. 59 3.8.2.1.- Definición de la secuencia de referencia ......................................................................................... 59
3.8.2.1.1.- Secuencia PRBS ........................................................................................................................ 60 3.8.2.1.2.- Secuencia PN ........................................................................................................................... 60
3.8.2.2.- Propósito de la inserción de pilotos ................................................................................................ 61 3.8.2.3.- Localización de las portadoras pilotos ............................................................................................. 61
3.9.- USO DEL SÍMBOLO P1 .......................................................................................................................... 62
3.9.1.- Introducción ............................................................................................................................ 62
3.9.2.- Estructura del símbolo P1 ....................................................................................................... 62
3.9.3.- Características de P1 .............................................................................................................. 64
4.- MODULACIÓN OFDM ...................................................................................................................... 65
4.1.- UN POCO DE HISTORIA ......................................................................................................................... 65
4.2.- MODELADO DE OFDM ........................................................................................................................ 66
4.2.1.- Modelo en tiempo Continuo ................................................................................................... 67
4.2.2.- Modelo en tiempo discreto ..................................................................................................... 68
4.2.3.- Imperfecciones ........................................................................................................................ 69
4.2.4.- Sincronización ......................................................................................................................... 70 4.2.4.1.- Sincronización de Símbolos ............................................................................................................. 70 4.2.4.2.- Sincronización de la frecuencia de muestreo .................................................................................. 71 4.2.4.3.- Sincronización de la frecuencia de portadora ................................................................................. 72
4.2.5.- Estimación de canal ................................................................................................................ 73 4.2.5.1.- Información de pilotos .................................................................................................................... 74 4.2.5.2.- Diseño del estimador ....................................................................................................................... 74
5.- MATLAB Y SIMULINK ...................................................................................................................... 76
5.1.- MATLAB ............................................................................................................................................ 76
5.1.1.- Introducción ............................................................................................................................ 76
5.1.2.- Componentes de Matlab ........................................................................................................ 77
5.1.3.- El entorno de trabajo de Matlab ............................................................................................ 77
Desarrollo de un simulador DVB-T2 en Simulink 4
5.1.3.1.- Ayuda en línea ................................................................................................................................. 77 5.1.3.2.- Organización de ventanas ............................................................................................................... 78 5.1.3.3.- Operaciones básicas en la línea de comandos ................................................................................ 79 5.1.3.4.- Operaciones básicas con Matlab ..................................................................................................... 80 5.1.3.5.- Funciones en Matlab ....................................................................................................................... 80 5.1.3.6.- Almacenamiento en Archivo ........................................................................................................... 82
5.2.- SIMULINK .......................................................................................................................................... 83
5.2.1.- Introducción ............................................................................................................................ 83
5.2.2.- Uso de Simulink ...................................................................................................................... 83
5.2.3.- El espacio de trabajo Simulink ................................................................................................ 85
5.2.4.- Fuentes y Sumideros de señal ................................................................................................. 86
6.- SIMULACIÓN ................................................................................................................................... 87
6.1.- INTRODUCCIÓN ................................................................................................................................... 87
6.2.- VISIÓN GENERAL ................................................................................................................................. 87
6.3.- Transmisor ................................................................................................................................. 89
6.3.1.- Generador de datos ................................................................................................................ 90 6.3.1.1.- Generador de los datos ................................................................................................................... 91 6.3.1.2.- Integer to Bit Converter ................................................................................................................... 93 6.3.1.3.- CRC-N Generator ............................................................................................................................. 93 6.3.1.4.- Base Band (BB) Header Insertion ..................................................................................................... 94 6.3.1.5.- Vector Concatenate ......................................................................................................................... 95 6.3.1.6.- Zero Pad .......................................................................................................................................... 96 6.3.1.7.- Scrambler ........................................................................................................................................ 97
6.3.2.- Codificación y Modulación de datos ...................................................................................... 97 6.3.2.1.- Codificación FEC .............................................................................................................................. 98
6.3.2.1.1.- Codificación BCH ...................................................................................................................... 99 6.3.2.1.2.- Codificación LDPC .................................................................................................................... 99
6.3.2.2.- Bit to Integer Converter ................................................................................................................. 100 6.3.2.3.- Modulación.................................................................................................................................... 100 6.3.2.4.- Entrelazado de célula .................................................................................................................... 101 6.3.2.5.- Entrelazado en Tiempo .................................................................................................................. 101
6.3.3.- Adición de Portadoras Pilotos ............................................................................................... 102 6.3.3.1.- Buffer ............................................................................................................................................. 104 6.3.3.2.- Entrelazado en Frecuencia ............................................................................................................ 104 6.3.3.3.- Pilotos ............................................................................................................................................ 105
6.3.3.3.1.- PRBS Sequence ...................................................................................................................... 105 6.3.3.3.2.- PN-Sequence ......................................................................................................................... 106 6.3.3.3.3.- Selector .................................................................................................................................. 107 6.3.3.3.4.- Logical Operator .................................................................................................................... 107 6.3.3.3.5.- Selectors ................................................................................................................................ 108 6.3.3.3.6.- Ganancia ................................................................................................................................ 109
6.3.3.4.- Matrix Concatenate ....................................................................................................................... 109 6.3.3.5.- Seleccionador de Índices ............................................................................................................... 109
6.3.3.5.1.- Vector para ordenar los símbolos .......................................................................................... 110 6.3.3.5.2.- Multiport Switch .................................................................................................................... 111 6.3.3.5.3.- Señal de Control .................................................................................................................... 111
6.3.3.6.- Variable Selector ........................................................................................................................... 112 6.3.4.- Modulación de la Señal......................................................................................................... 112
6.3.4.1.- Zero Pad ........................................................................................................................................ 113 6.3.4.2.- Selector.......................................................................................................................................... 114 6.3.4.3.- IFFT ................................................................................................................................................ 115 6.3.4.4.- Inserción del Intervalo de Guarda ................................................................................................. 115
6.4.- RECEPTOR ....................................................................................................................................... 117
Desarrollo de un simulador DVB-T2 en Simulink 5
6.4.1.- Demodulación OFDM ....................................................................................................................... 118 6.4.1.1.- Eliminación del Intervalo de Guarda ............................................................................................. 118 6.4.1.2.- FFT ................................................................................................................................................. 119 6.4.1.3.- Frame Conversion .......................................................................................................................... 119 6.4.1.4.- Eliminación de ceros ...................................................................................................................... 119
6.4.2.- Eliminación de las portadoras Pilotos ................................................................................... 120 6.4.2.1.- Índice para ordenar ....................................................................................................................... 121
6.4.2.1.1.- Vector para ordenar el símbolo ............................................................................................. 122 6.4.2.1.2.- Multiport Switch .................................................................................................................... 122 6.4.2.1.3.- Señal de Control .................................................................................................................... 122
6.4.2.2.- Variable Selector ........................................................................................................................... 123 6.4.2.3.- Desentrelazado en Frecuencia ...................................................................................................... 123 6.4.2.4.- Frame Allignement ........................................................................................................................ 124 6.4.2.5.- Buffer ............................................................................................................................................. 125
6.4.3.- Decodificación y Demodulación de Datos ............................................................................. 126 6.4.3.1.- Desentrelazado en Tiempo ............................................................................................................ 126 6.4.3.2.- Desentrelazado de célula .............................................................................................................. 127 6.4.3.3.- Demodulador................................................................................................................................. 127 6.4.3.4.- Integer to Bit converter ................................................................................................................. 128 6.4.3.5.- Mapeador de Datos ....................................................................................................................... 128 6.4.3.6.- Decodificación LDPC ...................................................................................................................... 129 6.4.3.7.- BCH Decoder ................................................................................................................................. 130
6.4.4.- Extracción de datos .............................................................................................................. 130 6.4.4.1.- Descrambler .................................................................................................................................. 131 6.4.4.2.- Selector.......................................................................................................................................... 131 6.4.4.3.- Bit to Integer Converter ................................................................................................................. 132
6.4.5.- Resultados ............................................................................................................................ 133 6.4.5.1.- Constelaciones y Espectro ............................................................................................................. 133 6.4.5.2.- Variables ........................................................................................................................................ 136 6.4.5.3.- BER ................................................................................................................................................ 137
7.- CONCLUSIONES Y LÍNEAS FUTURAS .............................................................................................. 139
8.- BIBLIOGRAFÍA ............................................................................................................................... 141
ANEXO ............................................................................................................................................... 143
VARIABLES ............................................................................................................................................... 143
FUNCIÓN DVBT2LDPC ................................................................................................................................ 147
Desarrollo de un simulador DVB-T2 en Simulink 6
ÍNDICE DE GRÁFICAS
FIG. 2.1: ESTÁNDARES PARA LA TELEVISIÓN DIGITAL EN EL MUNDO ........................................................ 18
FIG. 2.2: FLUJO DE TRANSPORTE EN DVB-S ................................................................................................ 20
FIG. 2.3: DIAGRAMA DE BLOQUES DE UN SISTEMA DVB-T ........................................................................ 24
FIG. 2.4: GENERADOR PRBS PARA LA DISPERSIÓN DE ENERGÍA DEL FLUJO DE TRANSPORTE ................... 25
FIG. 2.5: CODIFICACIÓN REED-SOLOMON .................................................................................................. 26
FIG. 2.6: ESTRUCTURA DEL SEGMENTO DE DATOS .................................................................................... 32
FIG. 2.7: DIAGRAMA DE BLOQUES DE LA CODIFICACIÓN DE CANAL EN ISDB-T ......................................... 34
FIG. 3.1: COMPARACIÓN ENTRE DVB-T Y DVB-T2 ...................................................................................... 35
FIG. 3.2: VISIÓN GENERAL DE UN SISTEMA DVB-T2 ................................................................................... 36
FIG. 3.3: DIFERENTES PLPS OCUPANDO DIFERENTES INTERVALOS DE TIEMPO ......................................... 37
FIG. 3.4: PATRÓN DE PILOTOS DISPERSAS EN DVB-T (IZQUIERDA) Y DVB-T2 (DERECHA) .......................... 39
FIG. 3.5: COMPARACIÓN ENTRE CODIFICACIÓN CONVOLUCIONAL (DVB-T) Y CODIFICACIÓN LDPC (DVB-
T2) ............................................................................................................................................................... 39
FIG. 3.6: ESPECTRO DE LA SEÑAL DVB-T2 PARA INTERVALOS DE GUARDA 1/8 (CANALES DE 8 MHZ) ...... 42
FIG. 3.7: ESTRUCTURA DE UNA TRAMA T2 ................................................................................................. 46
FIG. 3.8: ESTRUCTURA DE UNA TRAMA T2 ................................................................................................. 48
FIG. 3.9: MAPEADO DE SEÑALIZACIÓN L1, PLPS Y CADENAS AUXILIARES EN UNA TRAMA T2 .................. 48
FIG. 3.10: MAPEADO DE SEÑALIZACIÓN L1 EN SÍMBOLOS P2 .................................................................... 49
FIG. 3.11: ESTRUCTURA DE LA SEÑALIZACIÓN L1 ....................................................................................... 53
FIG. 3.12: EJEMPLO DE ENTRELAZADO DE BITS .......................................................................................... 55
FIG. 3.13: ESQUEMA DEL ENTRELAZADO DE CÉLULA ................................................................................. 56
FIG. 3.14: USO DE LA MEMORIA PARA EL ENTRELAZADO DE TIEMPO ....................................................... 57
FIG. 3.15: ENTRELAZADOR FRECUENCIAL PARA EL MODO 8K ................................................................... 58
FIG. 3.16: FORMACIÓN DE LA SECUENCIA DE REFERENCIA ....................................................................... 59
FIG. 3.17: GENERACIÓN DE LA SECUENCIA PRBS ....................................................................................... 60
FIG. 3.18: ESTRUCTURA DEL SÍMBOLO P1 .................................................................................................. 63
FIG. 4.1: POSICIÓN DEL PREFIJO CÍCLICO RESPECTO A UN SÍMBOLO OFDM ............................................. 66
FIG. 4.2: ESQUEMA GENERAL DE UN SISTEMA CON MODULACIÓN OFDM ............................................... 67
FIG. 4.3: ESQUEMA DEL MODELADO DE UN SISTEMA OFDM EN TIEMPO CONTINUO .............................. 68
FIG. 4.4: ESQUEMA DE UN SISTEMA OFDM EN TIEMPO DISCRETO ........................................................... 68
Desarrollo de un simulador DVB-T2 en Simulink 7
FIG. 4.5: EFECTOS DEL OFFSET DE FRECUENCIA ΔF: REDUCCIÓN DE LA AMPLITUD DE LA SEÑAL () Y LA
INTERFERENCIA ENTRE PORTADORAS (•) .................................................................................................. 73
FIG. 4.6: EJEMPLO DE TRANSMISIÓN DE INFORMACIÓN DE PILOTOS ....................................................... 74
FIG. 5.1: ENTORNO DE TRABAJO MATLAB .................................................................................................. 78
FIG. 5.2: VENTANA NAVEGACIÓN DE BLOQUES SIMULINK ........................................................................ 84
FIG. 5.3: ESPACIO DE TRABAJO DE SIMULINK ............................................................................................. 85
FIG 6.1: ESQUEMA GENERAL DE MODULACIÓN......................................................................................... 88
FIG. 6.2: ESQUEMA GENERAL DEL TRANSMISOR ....................................................................................... 90
FIG. 6.3: ESQUEMA DEL GENERADOR DE DATOS ....................................................................................... 91
FIG. 6.4: ESQUEMA DEL GENERADOR DE DATOS PROPUESTO POR EL ESTÁNDAR .................................... 91
FIG. 6.5: ESQUEMA DE LA ETAPA CODIFICACIÓN Y MODULACIÓN DE DATOS .......................................... 98
FIG. 6.6: ESQUEMA DE CODIFICACIÓN Y MODULACIÓN DE DATOS PROPUESTO POR EL ESTÁNDAR........ 98
FIG. 6.7: FORMATO DE LOS DATOS ANTES DE LA ETAPA DE MODULACIÓN .............................................. 98
FIG. 6.8: ESQUEMA DE LA CONSTELACIÓN TRANSMITIDA ....................................................................... 100
FIG. 6.9: ENTRELAZADO EN TIEMPO ......................................................................................................... 101
FIG. 6.10: ESQUEMA DE ADICIÓN DE PILOTOS ......................................................................................... 103
FIG. 6.11: ESQUEMA DEL GENERADOR DE TRAMAS PROPUESTO POR EL ESTÁNDAR ............................. 103
FIG. 6.12: ESQUEMA DE LA GENERACIÓN DE PILOTOS ............................................................................ 105
FIG. 6.13: ESQUEMA DEL SELECCIONADOR DE ÍNDICES ........................................................................... 110
FIG. 6.14: MODULACIÓN DE LA SEÑAL ..................................................................................................... 113
FIG. 6.15: ESQUEMA DE MODULACIÓN DE LA SEÑAL PROPUESTO POR EL ESTÁNDAR ........................... 113
FIG. 6.16: ESQUEMA DE LA INSERCIÓN DEL INTERVALO DE GUARDA ..................................................... 116
FIG. 6.17: ESQUEMA GENERAL DEL RECEPTOR ........................................................................................ 117
FIG. 6.18: ESQUEMA DE DEMODULACIÓN DE LA SEÑAL .......................................................................... 118
FIG. 6.19: ESQUEMA DE ELIMINACIÓN DE LAS PORTADORAS PILOTOS ................................................... 120
FIG. 6.20: ESQUEMA PARA GENERAR LOS VECTORES DE REORDENACIÓN ............................................. 121
FIG. 6.21: ESQUEMA DEL PROCESO DE DECODIFICACIÓN DE DATOS ...................................................... 126
FIG. 6.22: ESQUEMA DE LA ETAPA EXTRACCIÓN DE DATOS .................................................................... 130
FIG. 6.23: ESQUEMA DE UNA SEÑAL QPSK ............................................................................................... 134
FIG. 6.24: CONSTELACIONES DE LAS SEÑALES TRANSMITIDAS Y RECIBIDAS ........................................... 134
FIG. 6.25: ESPECTRO TEÓRICO PARA UNA SEÑAL DVB-T2 ........................................................................ 135
FIG. 6.26: ESPECTRO EN FRECUENCIA DE LA SEÑAL TRANSMITIDA ......................................................... 135
FIG. 6.27: BER A LOS 4.48∙10^(-3) SEG. .................................................................................................... 137
FIG. 6.28: BER A LOS 0.2 SEG .................................................................................................................... 137
FIG. 6.29: BER A LOS 0.4 SEG. ................................................................................................................... 138
Desarrollo de un simulador DVB-T2 en Simulink 8
ÍNDICE DE TABLAS
TABLA 3.1: DURACIÓN DE LOS INTERVALOS DE GUARDA EN µS PARA CANALES DE 8MHZ ...................... 43
TABLA 3.2: COMPARACIÓN ENTRE LOS PATRONES DE SCATTERED PILOTS ............................................... 44
TABLA 3.3: NÚMERO DE SÍMBOLOS P2 PARA CADA VALOR DE FFT ........................................................... 47
TABLA 3.4: MÁXIMA LONGITUD DE TRAMA LF EN SÍMBOLOS OFDM ........................................................ 48
TABLA 3.5: DISTRIBUCIÓN DE LOS PESOS DE LAS COLUMNAS PARA BLOQUES DE 64800 ......................... 54
TABLA 3.6: DISTRIBUCIÓN DE LOS PESOS DE LAS COLUMNAS PARA BLOQUES DE 16200 ......................... 54
TABLA 3.7: PERMUTACIÓN DE BITS PARA EL MODO 8K ............................................................................. 58
TABLA 3.8: SECUENCIA PN GENERAL. DESCRIPCIÓN HEXADECIMAL ......................................................... 60
TABLA 3.9: PRESENCIA DE LOS DISTINTOS TIPOS DE PILOTOS EN CADA TIPO DE SÍMBOLO ...................... 62
TABLA 5.1: OPERACIONES ARITMÉTICAS Y LÓGICAS EN MATLAB .............................................................. 80
TABLA 5.2: FUNCIONES ELEMENTALES DE MATLAB: TRIGONOMETRÍA ..................................................... 81
TABLA 5.3: FUNCIONES ELEMENTALES DE MATLAB: EXPONENCIALES ...................................................... 81
TABLA 5.4: FUNCIONES ELEMENTALES DE MATLAB: AJUSTE Y REDONDEO .............................................. 81
TABLA 5.5: FUNCIONES ELEMENTALES DE MATLAB: OPERACIONES MATRICIALES ................................... 82
TABLA 5.6: TABLA RESUMEN DEL COMANDO SAVE ................................................................................... 82
TABLA 5.7: TABLA RESUMEN DEL COMANDO LOAD .................................................................................. 83
TABLA 5.8: FORMAS DE CONECTAR LOS BLOQUES .................................................................................... 85
TABLA 5.9: FUENTES DE SEÑAL EN SIMULINK ............................................................................................ 86
TABLA 5.10: SUMIDEROS DE SEÑAL EN SIMULINK ..................................................................................... 86
Desarrollo de un simulador DVB-T2 en Simulink 9
DEFINICIONES, SÍMBOLOS Y ABREVIATURAS
Definiciones
• Células OFDM: El valor de la modulación para cada portadora OFDM durante un símbolo OFDM.
• Célula de datos: Célula OFDM que no es una portadora piloto.
• Símbolo OFDM: Conjunto de portadoras moduladas y codificadas con sus correspondientes valores de modulación. Incluye el intervalo de guarda.
• Sistema T2: Entidad donde una o más PLPs son transportadas, en una dirección determinada, dentro de una señal DVB-T2 en una o más frecuencias. El sistema T2 es único dentro de la red T2 y viene identificado por el parámetro T2_system_id.
• Physical Layer Pipe (PLP): Capa física TDM del canal.
• Trama T2: Capa física TDM fija que se dividirá en distintas portadoras.
• Símbolo P1: Símbolo que contiene la señalización S1 y S2 y está localizado en el inicio de la trama. Principalmente se usa para detectar señales T2, offset en frecuencia y para conocer el tamaño de la FFT usado.
• Símbolo P2: Símbolo localizado justo después del símbolo P1 con el mismo valor de FFY e intervalo de guarda que lo símbolos de datos. Se usan para afinar la sincronización en frecuencia y en tiempo así como para la estimación inicial del canal.
• Bloques TI: Conjunto de células dentro de las que se procede al entrelazado en tiempo.
• Señalización P1: Señalización transportada en un símbolo P1 y que se usa para poder identificar los parámetros básicos de los símbolos OFDM.
• Tamaño de la FFT: Valor de la FFT usada para un modo particular, igual al periodo del símbolo expresado en relación al periodo elemental T.
• Período Elemental: Periodo de tiempo que depende del ancho de banda del sistema y es usado para definir otros periodos de tiempo en el sistema T2.
Desarrollo de un simulador DVB-T2 en Simulink 10
• BBFRAME: Conjunto de Kbch bits que constituyen la entrada de un proceso de codificación FEC.
• FECFRAME: Conjunto de Nldpc bits procedentes del proceso de codificación LDPC.
Símbolos
• ∆: Duración del Intervalo de guarda
• C/N: Relación potencia de la portadora frente al ruido.
• Cdata: Número de células activas en un símbolo de datos.
• Cp2: Número de células activas en un símbolo P2.
• Ctot: Número de células acticas en una trama T2.
• H(p): Función de permutación para el entrelazado en frecuencia.
• H0(p): Función de permutación para el entrelazado en frecuencia, para símbolos pares.
• H1(p): Función de permutación para el entrelazado en frecuencia, para símbolos impares.
• Ldata: Número de símbolos de datos por trama T2.
• LF: Número de símbolos OFDM por trama T2, excluyendo el símbolo P1.
• Lr(q): Función de permutación para el entrelazado de células para el bloque FEC r.
• Nbch: Número de bits del bloque BCH.
• Ncells: Número de células OFDM por bloque FEC.
• Ndata: Número de células de datos en un símbolos OFDM.
• NFEF: Número de partes FEF en una súper- trama.
• Nldpc: Número de bits del bloque LDPC.
• Np2: Número de símbolos P2 por trama T2.
Desarrollo de un simulador DVB-T2 en Simulink 11
• T: Período Elemental dependiente del ancho de banda usado.
• TFEF: Duración de cada parte FEF.
• Tp1: Duración de un símbolo P1.
• Ts: Duración total de un símbolo OFDM.
• Tu: Duración del símbolo activo, es decir, sin contar con las portadoras pilotos, de un símbolo OFDM.
• UPL: Longitud del Paquete de Usuario.
ABREVIATURAS
• 16QAM: 16-ary Modulación de Amplitud en Cuadratura.
• 64QAM: 64-ary Modulación de Amplitud en Cuadratura.
• 256QAM: 64-ary Modulación de Amplitud en Cuadratura.
• ACM: Codificación y Modulación Adaptable.
• AWGN: Ruido Aditivo Blanco Gaussiano.
• BB: Banda Base.
• BCH: Correción Binaria Bose-Chaudhuri-Hocquenghem.
• CBR: Tasa de bit constante.
• CI: Cell Interleaver (Entrelazador de célula).
• DVB: Digital Video Broadcasting.
• DVB-T: Digital Video Broadcasting-Terrestrial.
• DVB-T2: Digital Video Broadcasting-Terrestrial, versión 2.
• FEC: Forward Error Correction (Corrección de Errores hacia delanta).
• FEF: Future Extension Frame. Tramas reservadas para uso futuro.
• FFT: Transformada rápida de Fourier.
Desarrollo de un simulador DVB-T2 en Simulink 12
• IFFT: Transformada rápida inversa de Fourier.
• ISI: Interferencia Inter-Símbolo.
• LDPC: Low Density Parity Check.
• PAPR: Peak to Average Power Ratio. Es la relación entre la potencia de pico y la potencia media.
• PLP: Physical Layer Pipes. Representa la capa física de la trama.
• QPSK: Quaternary Phase Shift Keying.
• UP: Paquetes de usuario.
Desarrollo de un simulador DVB-T2 en Simulink 13
1.- INTRODUCCIÓN
1.1.- Historia de la Televisión
No hay que ser muy observador para darse cuenta de los continuos cambios que “afectan” al mundo de la televisión. Rápidamente se han ido introduciendo en la vida cotidiana nuevos elementos que permiten al espectador no sólo disponer de un mayor abanico de posibilidades de elección, sino también que ofrecen una importante mejora en la calidad con que percibimos las imágenes.
El origen de la televisión se remonta a finales del siglo XIX cuando el alemán Paul Gottlieb Nipkow desarrolló un equipo de exploración lumínica, consistente en un disco plano perforado por pequeños agujeros que exploraba una imagen al girarlo delante del ojo. No sería hasta 1925 cuando el inventor escocés John Logie Baird efectuó la primera experiencia real utilizando dos discos, uno en el emisor y otro en el receptor, separados 2m y unidos al mismo eje para que su giro fuera síncrono. Se transmitió una cabeza de un maniquí con una definición de 28 líneas y una frecuencia de cuadro de 14 cuadros por segundo. En 1927, Baird consiguió transmitir una señal sobre una distancia de 438 millas a través de una línea de teléfono entre las ciudades de Londres y Glasgow.
Sin embargo, muy pronto la televisión mecánica fue desplazada por la electrónica gracias al ingeniero ruso Vladimir Kosma Zworykin, que había experimentado utilizando tubos de rayos catódicos para el receptor y un sistema de exploración mecánica para lograr la transmisión. En el año 1936 comenzaron las emisiones programadas en Inglaterra y ya en el año 1937 se iniciaron transmisiones regulares entre Francia y Reino Unido, lo que llevó a un rápido desarrollo de la industria de la televisión así como un importante aumento en el número de espectadores. En Estados Unidos las primeras emisiones datan de 1939, fecha de la inauguración de la Exposición Universal de Nueva York.
En plena Segunda Guerra Mundial, hacia 1940, Zworykin tuvo la visión de estandarizar todos los sistemas de televisión que se desarrollaban en el mundo, sin embargo, su idea solo se hizo efectiva en Norteamérica con la creación del National Television System Comitee (NTSC) cuya finalidad era supervisar que las normas de fabricación de televisores fueran compatibles entre todas las empresas del país dedicadas a la producción de equipos. Finalmente el sistema de 325 líneas logró estandarizarse en todos los Estados Unidos hasta que llegó la guerra, momento en el cual se interrumpieron todas las emisiones programadas para reanudarlas posteriormente al término del conflicto.
Desarrollo de un simulador DVB-T2 en Simulink 14
La industria de la televisión inició con más ímpetu sus actividades después de la guerra. Muy pronto la mayor parte de Europa adoptó un sistema propio de 625 líneas, a excepción de Francia con uno de 819 líneas e Inglaterra con uno de 405 líneas. Estados Unidos estandarizó el suyo en 525 líneas. El sistema de compatibilidad sólo se logró en 1953 tomando el nombre del comité regulador: NTSC.
Europa tuvo su propio desarrollo particular, ya que no logró unificar sus criterios territoriales en materia de televisión y tampoco quiso estandarizar los sistemas desarrollados por los americanos. De esta manera en Europa se dio origen a sistemas como SECAM (Sequentiel Couleur A Memorie) desarrollado por Francia en 1967 y el sistema desarrollado por Alemania gracias a la empresa TELEFUNKEN: conocido como PAL (Phase Alternation Line).
Pero las necesidades fueron creciendo a medida que se sucedía cada descubrimiento. Muy pronto se creó la televisión por cable, invento relativamente reciente para nosotros pero con más de 60 años desde que apareció en la industria televisiva. Conocida anteriormente como CATV (Community Antenna Television), el sistema de cable nació en las montañas de Pennsylvania a finales de 1940 gracias al ingenio del señor Milton Shapp. Se extendió hacia las áreas más remotas, lejos de los transmisores de los canales de televisión en las ciudades.
La televisión por satélite apareció en 1959 cuando la sonda espacial soviética Lunik III envió a la tierra las primeras imágenes de la cara oculta de la luna; en 1961 fueron transmitidas las primeras imágenes del hombre en el espacio y en 1965 el satélite estadounidense Early Bird permitió la transmisión de programas directos en ambas direcciones entre Estados Unidos y Europa.
A finales de los años 80 se empezaron a desarrollar sistemas de digitalización. La digitalización en la televisión tiene dos partes bien diferenciadas: por un lado tenemos la digitalización de la producción y por otro la digitalización de la transmisión.
Para la producción se desarrollaron varios sistemas de digitalización. Los primeros de ellos estuvieron basados en la digitalización de la señal compuesta de vídeo que no tuvo éxito. El planteamiento de digitalizar las componentes de la señal de vídeo, es decir la luminancia y las diferencias de color, fue el que resultó más idóneo. En un principio se desarrollaron sistemas de señales en paralelo, con gruesos cables que precisaban de un hilo para cada bit, aunque pronto se sustituyeron por una transmisión multiplexada en tiempo. Este sistema permitió, además, incluir el audio.
En cuanto a la transmisión, la digitalización de la misma fue posible gracias a técnicas de compresión que lograron reducir el flujo a menos de 5 Mbits/s (hay que tener en cuenta que el flujo original de una señal de calidad de estudio tiene 270 Mbits/s.) Esta compresión es la llamada MPEG-2 que produce flujos de entre 4 y 6 Mbits/s sin pérdidas apreciables de calidad.
Desarrollo de un simulador DVB-T2 en Simulink 15
El avance de la informática permitió el tratamiento informático de las señales de televisión. Los sistemas de almacenamiento, como los magnetoscopios, pasaron a ser sustituidos por servidores informáticos de vídeo y los archivos pasaron a guardarse en discos duros. El acceso a la información se realizaba desde los propios ordenadores donde teníamos programas de edición de vídeo de tal forma que la información residente en el archivo era accesible en tiempo real por el usuario.
Los avances han seguido sucediendo, la búsqueda por mejorar la calidad de la imagen no ha cesado. En estos últimos años la tecnología ha logrado recrear imágenes de excelente definición gracias a resoluciones de 1100-1200 líneas que se alcanzan con el desarrollo de la televisión de alta definición HDTV (High Definition Television), inventada en 1989, cuyo éxito radica en la amplitud de banda utilizada.
1.2.- Objetivos. Organización de la memoria
El presente Proyecto tiene por objeto mostrar la simulación de un sistema DVB-T2 (en condiciones ideales) a través de la interfaz gráfica de Simulink (Matlab). Para la realización de este proyecto nos hemos apoyado en distintos documentos publicados por el organismo internacional de estandarización para la televisión digital europeo, DVB (Digital Video Broadcasting), en el que se recogen las distintas especificaciones, protocolos y características que deben cumplir tanto el sistema DVB-T2 como las señales que se pueden transmitir a través de él.
Se proponen los siguientes puntos:
− En el Capítulo 2 hablaremos del organismo de estandarización europeo, DVB. También comentaremos sobre los principales estándares de este organismo, dedicando especial interés al predecesor del estándar DVB-T2, es decir, al DVB-T y de otros estándares de transmisión digital existentes en el mundo.
− En el Capítulo 3 comentaremos las principales características de nuestro estándar. De esta forma adquiriremos una base sólida sobre el funcionamiento de un sistema de comunicaciones basado en DVB-T2 para cuando desarrollemos la simulación. Es, sin duda, un capítulo clave para entender el Proyecto.
− En Capítulo 4 está dedicado a la modulación OFDM. En él abordaremos los diferentes esquemas para esta modulación, enfatizando en los principales problemas que nos pueden surgir al trabajar con este tipo de
Desarrollo de un simulador DVB-T2 en Simulink 16
modulación, tales como problemas de sincronismo, no linealidades o interferencias externas.
− El Capítulo 5 está dedicado a Matlab y a Simulink. Con este capítulo hemos pretendido que el lector se familiarice con el entorno en el que hemos llevado a cabo la simulación.
− El Capítulo 6 es, sin duda, el capítulo más importante de este Proyecto, si bien no podrá seguirse sin haber realizado una lectura de los anteriores. En él explicaremos la simulación de nuestro sistema de comunicaciones. En primer lugar haremos una presentación global de nuestro sistema, para posteriormente centrarnos tanto en el transmisor como en el receptor. En cada uno de ellos, procederemos a comentar los distintos bloques que hemos ido utilizando, dando una breve reseña de la función que van a desempeñar cada uno de ellos y explicando los parámetros que hemos utilizado para la configuración de los mismos. Por último, mostraremos los resultados obtenidos, de forma que apoyen o desaprueben nuestro sistema.
− Para finalizar, en el Capítulo 7, exponemos una serie de líneas futuras de investigación y que se dejan abiertas para posteriores estudios.
Como idea general me gustaría hacer hincapié en el carácter teórico, expositivo e incluso didáctico de este Proyecto Fin de Carrera. La bibliografía seguida está publicada en el Capítulo 8. Las funciones y variables que se han seguido durante el proceso de simulación se encuentran recogidas en el Anexo, al final de este Proyecto.
Desarrollo de un simulador DVB-T2 en Simulink 17
2.- DVB
2.1.- Introducción
DVB (Digital Video Broadcasting) es la organización encargada de promocionar los estándares para la televisión digital a nivel internacional, así como de la creación de dichos estándares. Actualmente está constituida por más de 270 instituciones y empresas pertenecientes a todo el mundo.
Los estándares propuestos por esta organización han sido ampliamente aceptados en Europa y la mayor parte de países de otros continentes, a excepción de Estados Unidos, Canadá y México, que utilizan el estándar ATSC en lugar de DVB-T, o Japón, donde se usa principalmente el estándar ISDB.
En los estándares promovidos por DVB, los procedimientos de codificación de las fuentes de vídeo y audio están basados en los estándares definidos por MPEG. No obstante, los estándares MPEG sólo cubren aspectos y metodologías utilizados en la compresión de las señales de audio y vídeo así como procedimientos de multiplexación y sincronización de las señales en tramas de programa o de transporte. Una vez definida la trama de transporte es necesario definir los sistemas de modulación de las señales que se utilizarán para los distintos tipos de radiodifusión (satélite, cable y terrena), los tipos de códigos de protección frente a errores y los mecanismos de acceso condicional a los servicios y programas.
Existen diversos estándares creados por la organización DVB en función de las características del sistema de radiodifusión. Los más importantes son:
• Televisión terrestre: DVB-T, DVB-T2 y para dispositivos móviles DVB-H.
• Cable: DVB-C y DVB-C2.
• Satélite: DVB-S y DVB-S2 y para dispositivos portátiles DVB-SH.
También se definen estándares que definen las características de la señalización en el canal de retorno (medio por el cual el usuario se comunica con el proveedor de servicios o contenidos) en sistemas de televisión interactiva, la estructura de transmisión de datos para el cifrado y descifrado de programas de acceso condicional, la transmisión de subtítulos, y la radiodifusión de datos (nuevos canales de teletexto) mediante sistemas digitales.
Desarrollo de un simulador DVB-T2 en Simulink 18
2.2.- El proyecto DVB
En el año 1991 se empieza a pensar en crear una plataforma de televisión digital para todo el continente europeo pero extensible a otros países del mundo. Así, a finales de este mismo año, un numeroso grupo conformado principalmente por organismos de radiodifusión, empresas tecnológicas de consumo y órganos reguladores empiezan a discutir la formación de un grupo para el desarrollo de la televisión digital en Europa. Este grupo, que comienza llamándose ELG (European Launching Group), intentó abarcar a todos los grupos interesados, desde gobiernos a empresas de electrónicas tanto del sector público como privado.
En Septiembre de 1993 se firma el MoU (Memorandum of Understanding, Principio de acuerdo), mediante el que se establecen las bases a seguir. A partir de este momento el grupo cambia su nombre por el que actualmente se le conoce, Digital Video Broadcasting Project (DVB) y ya contaban con más de 80 miembros. El trabajo de desarrollo para la televisión digital en Europa realizado hasta la fecha amplió sus horizontes para que cualquier país del mundo pudiese acogerse a este nuevo proyecto.
Paralelamente, otro grupo, el “Working Group on Digital Television”, preparaba un estudio sobre las posibilidades de la televisión digital terrestre en Europa. Este estudio introducía importantes conceptos, tales como la televisión de alta definición (HDTV) o la televisión en equipos portables.
Fig. 2.1: Estándares para la televisión digital en el mundo
Desarrollo de un simulador DVB-T2 en Simulink 19
2.3.- Estándares más importantes
2.3.1.- DVB-S
DVB-S es el estándar del proyecto DVB para la transmisión vía satélite. La primera versión data de 1994, aunque el estándar como tal estuvo en desarrollo desde 1993 hasta el año 1997. La primera plataforma comercial en utilizarlo fue Canal+ Francia. El éxito del estándar DVB-S permitió incrementar la capacidad de transmisión de datos de televisión digital a través del satélite UH11, gracias al manejo del formato de vídeo MPEG2. La estructura permite mezclar en una misma trama un gran número de servicios, como audio, vídeo y datos.
Para transmisiones vía satélite se adoptó la modulación QPSK (Quadrature Phase Shift Keying) y presenta un flujo binario variable desde los 18,4 hasta los 48,4 Mbits/s. Si bien la norma DVB-S sólo especifica las características físicas y del enlace, el flujo de transporte emitido utiliza el MPEG2, conocido como MPEG-TS.
El estándar puede utilizarse con satélites que tengan transpondedores con ancho de banda entre los 26 y 47 MHz. En el caso de España, algunos satélites con dicha tecnología son ASTRA, HISPASAT, TELECOM o EUTELSAT.
Uno de los anchos de banda más comunes para un transpondedor de un sistema de satélite DBS (Direct Broadcast Satellite, Difusión Directa por satélite) es de 36 MHz. Con este ancho de banda es posible obtener 28 millones de símbolos por segundo, consiguiendo una capacidad de transmisión por transpondedor de 56 Mbits/s con una modulación 4-PSK. Como resultado de todo es una velocidad útil de 39 Mbits/s, que se van a traducir en 8 canales por transpondedor. Así, por ejemplo, con los 5 transpondedores que posee HISPASAT se pueden conseguir hasta 40 canales de televisión.
2.3.1.1.- Flujo de Transporte
El proceso de empaquetamiento de la información se realiza según la trama de transporte común al MPEG2. Para crear esta trama se utiliza el método de flujo de transporte realizando el encapsulado de la siguiente manera:
Desarrollo de un simulador DVB-T2 en Simulink 20
Fig. 2.2: Flujo de Transporte en DVB-S
El vídeo, el audio y el resto de los datos (información específica, información del servicio o los datos del abonado para el acceso condicional) se insertan en los paquetes de transporte del MPEG2. Después de esto se invierten los bytes de sincronización cada 8 paquetes.
• Los contenidos de cada paquete se aleatorizan (scrambling), a excepción de aquellos que incluyan la Información Específica de Servicio (PSI). De esta manera se consigue el acceso condicional y otra serie de ventajas, como una mayor protección frente a errores, uniformar el uso de la banda disponible o facilitar la sincronización.
• Permite multiplexar varios flujos de paquetes de transporte en un único flujo de transporte multiprograma.
• Permite la protección contra errores en dos etapas: una primera fase, llamada “outer code”, que utiliza un código Reed-Solomon, añade un 12% de sobrecarga a los datos útiles; la segunda fase, “inner code”, utiliza un código convolucional definido por los distintos proveedores de servicios según sus propias necesidades.
• Finalmente se modula la señal QPSK y es retransmitida a través del correspondiente transpondedor del canal en cuestión.
Con todo este proceso la señal se adecua a las propiedades del canal concreto para su correcta transmisión.
Desarrollo de un simulador DVB-T2 en Simulink 21
2.3.2.- DVB-S2
La segunda versión del estándar DVB-S fue lanzada al público en el año 2003 y ratificada por la ETSI dos años más tarde, en marzo de 2005. Durante el desarrollo de dicho estándar se desarrollan dos códec de vídeo de alta definición: el HDTV y el H.264 (MPEG-4 AVC). El sistema permite la transición de MPEG-2 o MPEG-4 en cualquier combinación (sólo uno, los dos o incluso combinando audio y vídeo de un tipo y de otro).
El estándar DVB-S2 permite la utilización de las modulaciones QPSK, 8PSK, 16PSK o 32PSK con codificación concatenada. Este nuevo sistema está basado en el anterior estándar (DVB-S). Las dos características más importantes que añade DVB-S2 frente a DVB-S son:
• VCM (Variable Coding and Modulation, Codificación y Modulación Variable) que optimiza los parámetros de la transmisión para diferentes usuarios.
• Cambios en los parámetros de la codificación en tiempo real (ACM, Adaptive Coding and Modulation, Codificación y Modulación Modificable).
DVB-S2 se utiliza para emitir la televisión en definición estándar (SDTV) o en alta definición (HDTV) o para servicios interactivos con acceso a internet, donde los contenidos generados por el usuario se pueden enviar por cable, ADSL o conexión vía satélite. También puede emplearse para aplicaciones profesionales, que multiplexan los datos en tiempo real y se envían en la banda VHF/UHF. Opcionalmente puede hacerse compatible con el estándar anterior (DVB-S), pero reduciendo el ancho de banda en un 30%.
Para la total implantación del estándar DVB-S2 frente a DVB-S se estiman que sean necesarios unos 15 años, siendo el mayor obstáculo para este cambio el coste de actualización de los equipos transmisores del satélite.
2.3.3.- DVB-C
El estándar DVB-C nace en diciembre de 1994. El sistema transmite basándose en las familias digitales MPEG-2 y MPEG-4, tanto para vídeo como para audio, empleando para ello una modulación QAM, desde 16-QAM hasta 256 QAM, para la televisión y los servicios de radiodifusión. Esta norma es seguida actualmente por todo tipo de operadores de cable del mundo.
Desarrollo de un simulador DVB-T2 en Simulink 22
Debido a las existencia de una gran demanda en servicios de televisión digital, muchos operadores de cable ya han actualizado sus redes, desplegando mayoritariamente la modulación 256-QAM (con la que se consiguen 50 Mbits/s útiles por cada canal de cable) así como un aumento de la gama de frecuencias disponibles utilizadas para transmisión, con un máximo de 862 MHz. También empiezan a surgir operadores de cable que ofrecen un abanico de televisión analógica y simultáneamente varios cientos de canales de televisión digital, junto a los nuevos y sofisticados servicios añadidos (como interactividad y/o personalización de los servicios).
Aun así, la demanda de servicios más avanzados continúa obligando a los operadores de cable a buscar nuevas formas de ofrecer productos avanzados. Debido a ello gran parte de los operadores de cable que poseen redes híbridas de fibra óptica con coaxial (HFC) están optimizando el rendimiento para mejorar las prestaciones con los sistemas de modulación que permite el DVB-C.
Es precisamente la demanda de servicios más sofisticados por parte de los usuarios lo que ha llevado al desarrollo de un nuevo estándar, el DVB-C2, con el que se espera suministrar a la industria del cable servicios con tecnología punta por al menos otros diez años.
2.3.4.- DVB-C2
En 2007, un estudio llevado a cabo por el departamento técnico del organismo DVB, identificó diversas tecnologías que podían ser consideradas como alternativas de éxito a la especificación existente, DVB-C. De esta manera surge, el 18 de febrero de 2008, la segunda versión del estándar de DVB para cable, el DVB-C2.
Este nuevo estándar surge, principalmente, por las siguientes razones:
• Necesidad de una mayor capacidad de transporte en redes de cable para los nuevos servicios, tales como HDTV, VoD (vídeo bajo demanda) y otros servicios interactivos.
• Necesidad de los operadores de cable de permanecer competitivos y flexibles.
• Necesidad de los operadores de cable de ser capaces de retransmitir señales recibidas vía satélite o de redes terrestres usando complejos esquemas de modulación.
• Necesidad de tener más y mejores herramientas proporcionando nuevas oportunidades de expansión a los distintos operadores en mercados residenciales o de negocios.
Desarrollo de un simulador DVB-T2 en Simulink 23
2.4.- DVB-T
2.4.1.- Introducción
El estándar de televisión digital denominado DVB-T (Terrestrial Digital Video Broadcasting), y recogido en el estándar ETSI (European Telecommunications Standards Intitute) EN 300 744, especifica los procesos de codificación de canal y de modulación para un adecuado funcionamiento cuando se usan los canales de transmisión terrestre. Como en el resto de estándares DVB, la señal de entrada normalizada es la denominada “MPEG-2 Transport Stream” (TS) o “Flujo de transporte MPEG-2”.
Dicho “Flujo de Transporte” (TS), obtenido mediante el proceso denominado “Codificación de Fuente” es una adaptación del estándar MPEG-2 según la norma ISO/IEC 138-1 que se estructura multiplexando varios programas y añadiendo la “Información del Servicio” (SI) correspondiente, según EYS 300 468.
El sistema DVB-T es muy flexible, disponiéndose de una serie de opciones:
• 2 modos de transmisión: 2k (1705 portadoras) u 8k (6817 portadoras).
• 3 esquemas de modulación: QPSK, 16-QAM y 64-QAM.
• 5 relaciones de codificación para protección interna de errores: 1/2, 2/3, 3/4, 5/6, y 7/8.
• 4 longitudes para el intervalo de guarda: 1/4, 1/8, 1/16 y 1/32.
• Modulación jerárquica o no jerárquica con diferentes valores del parámetro α.
Un aspecto a destacar de la modulación utilizada, OFDM (que se verá con más detalle en el capítulo 4) es que permite la separación, tanto en áreas pequeñas como grandes, de “Redes de Frecuencia Única” (Single Frequency Networks, SFN). Esto posibilita la recepción cuando se radian idénticos programas desde diferentes transmisores que operan en la misma frecuencia. En estas condiciones se obtiene la máxima eficiencia del espectro, lo cual adquiere especial relevancia cuando se usan en las bandas UHF asignadas para TV.
En Fig. 2.3 se muestra de manera esquemática el diagrama de bloques funcionales del sistema DVB-T.
Desarrollo de un simulador DVB-T2 en Simulink 24
Fig. 2.3: Diagrama de Bloques de un sistema DVB-T
En la figura anterior, marcados con puntos, podemos ver los bloques funcionales para transmisiones jerárquicas. En el caso mostrado podemos ver 2 flujos de transporte, uno de ellos es de “alta prioridad” (“HP”) que tiene baja velocidad y, por tanto, menor calidad de imagen, y que modula las portadoras con un esquema de modulación muy robusto frente al ruido (QPSK); mientras el segundo flujo de transporte, denominado de “baja prioridad” (“LP”) complementa al anterior en cuanto a velocidad y calidad de imagen y combina su información con el anterior de forma que las portadoras son moduladas finalmente con un esquema más exigente en cuanto a relación señal/ruido. En el caso de que este último flujo de transporte utilice 4 bits por cada 2 bits de alta prioridad, se alcanzaría una constelación total para la señal emitida de 64-QAM. En la zona del área de cobertura donde se reciba la señal con buena relación S/N, la imagen recuperada, de alta calidad, corresponderá a la combinación de los dos flujos (alta y baja prioridad) mientras que en el caso contrario (baja relación S/N) la calidad de imagen recibida será peor, correspondiendo sólo al flujo de alta prioridad.
A continuación veremos, muy brevemente, algunas de las características más importantes del estándar.
Desarrollo de un simulador DVB-T2 en Simulink 25
2.4.2.- Codificación de Canal
Los “Paquetes de Transporte” del múltiplex de entrada “Transport Stream” en formato MPEG-2 tienen una longitud de 188 bytes, utilizándose el primer byte como sincronización.
2.4.2.1.- Adaptación y Dispersión de Energía
Para asegurar la “dispersión de la energía” del espectro radiado, la señal de entrada debe hacerse cuasi-aleatoria, de forma que se eviten largas series de ceros o de unos. Por esta razón, el múltiplex de entrada debe ser “aleatorizado”, lo cual se consigue mediante un proceso cuyo esquema se muestra en la Figura 2.4.
Fig. 2.4: Generador PRBS para la dispersión de energía del Flujo de Transporte
El proceso es el siguiente: el primer bit en la salida del generador PRBS se aplica al primer bit (el MSB) del primer byte que sigue al byte de sincronización invertido del TS y así sucesivamente con los demás bits. Para ayudar al resto de funciones de la sincronización, durante los bytes de sincronismo de los otros 7 paquetes, la generación PRBS continúa, pero está deshabilitada, dejando estos bytes intactos.
El proceso descrito debe permanecer activo incluso cuando no exista flujo de transporte a la entrada o cuando éste no cumpla con el formato estándar MPEG-2.
Desarrollo de un simulador DVB-T2 en Simulink 26
2.4.2.2.- Codificación Externa
Para permitir la corrección de errores (FEC) en la recepción, se introduce una cierta redundancia en la estructura de los paquetes de transporte, procedimiento que se conoce como codificación.
La codificación externa se emplea en todos los estándares DVB y se complementa con otra codificación, codificación interna, en el caso de los estándares de transmisión vía satélite y terrestre.
La codificación externa usada es de tipo Reed-Solomon, RS (204, 188, t=8), que es una versión acortada de la codificación original. Mediante esta codificación se añaden 16 bytes de paridad a los primeros 188 de cada paquete de transporte, resultando un total de 204 bytes.
En todas las condiciones pueden corregirse hasta un total de 8 bytes erróneos, de ahí la denominación del código: RS (204, 188, t=8).
Fig. 2.5: Codificación Reed-Solomon
El proceso de entrelazado convolucional de basa en la aproximación de Forney [1]. Los bytes de datos entrelazados, pertenecientes a los paquetes de transporte protegidos, están delimitados por los bytes de sincronización MPEG-2 invertidos y no invertidos, que no sufren alteración alguna. El entrelazado preserva, por tanto, la periodicidad de 204 bytes de los paquetes de transporte. El resultado del proceso de entrelazado es que cada byte de los paquetes de transporte se encuentra desplazado en el tiempo, con lo que los bytes originales de un paquete de transporte quedarán repartidos entre dos paquetes consecutivos.
Todo este proceso reduce los errores por ráfagas introducidos por el canal de transmisión (errores que afectan a varios bytes consecutivos), ya que después de la reordenación de los datos en el receptor, estos errores se habrán distribuido entre paquetes sucesivos, lo que favorecerá que no se excedan los límites en los que la codificación Reed-Solomon puede recuperar la información original.
Desarrollo de un simulador DVB-T2 en Simulink 27
2.4.2.3.- Codificación Interna
Después de la codificación y entrelazado externos, los datos se someten a un nuevo proceso de codificación y entrelazado, codificación interna. Este tipo de codificación es de tipo convolucional.
El codificador, con frecuencia llamado erróneamente de “Viterbi” debido al algoritmo en recepción para la decodificación, está orientado al bit y distribuye en dos salidas el flujo de datos original a base de combinar (mediante sumas módulo-2) los datos de entrada con los obtenidos en las tomas situadas detrás de una serie de registros de desplazamiento.
La gran redundancia obtenida mediante esta codificación hace muy potente la corrección de errores cuando éstos son aleatorios, generalmente asociados a una baja relación señal/ruido del canal de transmisión utilizado. Sin embargo reduce a la mitad la capacidad del canal.
2.4.2.4.- Entrelazado Interno
El entrelazado interno se compone de un primer proceso de entrelazado relativo al bit que va seguido de un entrelazado de símbolos. Ambos, el relativo al bit y el entrelazado de símbolos están basados en bloques.
• Entrelazado de bits
El entrelazado de bits se realiza por bloques y sólo actúa sobre los datos útiles. El tamaño del bloque es de 126 bits para todos los entrelazadores, aunque la secuencia de entrelazado es diferente de unos a otros. El citado tamaño de los bloques implica que este proceso se repite un número exacto de veces por cada símbolo OFDM tanto si usa el estándar 2k como si se usa el 8k:
Estándar 2k Estándar 8k Nº portadoras activas para datos: 1512 6048 Bits totales por símbolo OFDM: v x 1512 v x 6048 Nº entrelazadores de bits: v v Repetición del entrelazado (nº de veces por símbolo OFDM):
(vx1512)/(vx126)=12 (vx6048)/(vx126)=48
Desarrollo de un simulador DVB-T2 en Simulink 28
Las salidas de los “v” entrelazadores se agrupan para formar palabras (y’w)
de “v” bits, de manera que se toma cada vez un único bit de la entrada de cada entrelazador.
• Entrelazado de símbolos
El entrelazado de símbolos se realiza sobre las anteriores palabras y’w
conteniendo cada una de ellas “v” bits, de forma que a la salida del entrelazador queden agrupadas en bloques cuyo tamaño está calculado para que los datos se puedan distribuir directamente entre las 1512 portadoras (modo 2k) o 6048 (8k) portadoras activas que tiene cada símbolo OFDM.
2.4.3.- Modulación OFDM
El principio de la modulación OFDM consiste en distribuir el flujo binario de información entre un gran número de portadoras de forma que cada una maneja una velocidad de datos reducida con respecto a la del flujo total. En consecuencia, la duración “Tu” de los símbolos aumenta respecto al caso de modular una sola portadora, haciendo de esta forma la señal más robusta frente a interferencias por trayectos múltiples (ecos) ya que el retardo de éstos resulta ser muy pequeño comparado con la duración citada.
Para fortalecer todavía más la señal transmitida frente a los ecos, se amplía la duración de los símbolos añadiendo un tiempo ∆ denominado “intervalo de guarda” a la duración útil Tu, con lo que la duración total del símbolo pasa a ser:
Ts = Tu + ∆
El tiempo ∆ del intervalo de guarda se mide en fracciones de la duración útil Tu del símbolo, disponiéndose de 4 posibles valores:
∆/Tu = 1/4 1/8 1/16 1/32
Desarrollo de un simulador DVB-T2 en Simulink 29
2.4.3.1.- Capacidad del Canal de Transmisión
El estándar 2k tiene 1705 portadoras totales en cada símbolo OFDM mientras que el estándar 8k tiene 6817 portadoras.
Ahora bien, no todas las portadoras están moduladas por los datos procedentes de la “Codificación de Canal”. Sólo 1512 portadoras en modo 2k ó 6048 portadoras en modo 8k son útiles para datos.
Llamando “FT” al flujo binario total transportado por las portadoras útiles para datos, éste vendrá dado por:
FT = fs · υ · L (bits/seg)
Siendo
fs: Frecuencia de los símbolos (símbolos/seg) (fs = 1/Ts).
Ts: Duración del símbolo.
υ: nº de bits/portadora (función del esquema de modulación).
L: nº de portadoras activas para datos.
La capacidad del canal o flujo binario útil “Fu” resultará de descontar del flujo binario total las redundancias incluidas en la codificación interna y en la codificación Reed-Solomon, es decir:
Fu= FT · r · 188/204 (bits/s)
Siendo “r” la relación de codificación interna.
2.4.3.2.- Portadoras Piloto
Un símbolo OFDM está compuesto por conjuntos de K elementos, correspondiendo cada uno de ellos a una portadora (K=1705 elementos en el modo 2k y K=6817 elementos en el modo 8k).
Sin embargo, como se ha indicado anteriormente, los datos procedentes de la “Codificación de canal” modulan solamente 1512 portadoras en modo 2k ó 6048 portadoras en modo 8k, que son las portadoras activas para datos contenidas en cada símbolo OFDM.
Desarrollo de un simulador DVB-T2 en Simulink 30
Esto significa que, además de las portadoras para datos, la señal transmitida incluye portadoras cuya utilidad es la siguiente:
• Portadoras Pilotos Continuas, para sincronización del receptor en frecuencia y fase.
• Portadoras Pilotos Dispersas, para generación del canal en amplitud y fase en el receptor.
• Portadoras TPS con la información del modo transmitido.
La incorporación de estas portadoras pilotos exige reorganizar la señal transmitida en Tramas:
• Cada trama, con duración “TF” consiste en 68 símbolos OFDM, que se numeran de 0 a 67. En consecuencia, TF = 68TS.
• Una “Súper-Trama” está formada por 4 Tramas tanto en modo 2k como 8k.
• Una “Mega-Trama” está formada por 32 tramas en el caso del estándar 2k y 8 tramas para el caso de que se trate del estándar 8k.
El número de portadoras pilotos es el siguiente:
Modo 2k Modo 8k Continuas 45 177 Dispersas 131 524 TPS 17 68 Portadoras de datos 1512 6048
TOTAL 1705 6817 Portadoras
Localización de las Portadoras Pilotos Continuas
A diferencia de lo que ocurre con las Portadoras Pilotos Dispersas, las posiciones que ocupan estas portadoras en cada símbolo OFDM son siempre las mismas.
Localización de las Portadoras Piloto Dispersas
Llamando:
“m”: Número de la trama.
Desarrollo de un simulador DVB-T2 en Simulink 31
“l”: Número del símbolo dentro de la trama (0 ≤ l ≤ 67).
“k”: Índice de la portadora dentro de cada símbolo OFDM (0 ≤ k≤kmax), donde kmáx = 6816 en modo 8k y kmáx = 1704 en modo 2k.
Para el símbolo “l” de una determinada trama, los índices “k” que corresponden al subconjunto de Portadoras dispersas vienen dado por:
k = 3 x (lmod4) + 12p
siendo “p” un número entero p ≥ 0 que debe cumplir la condición de que el valor resultante “k” no exceda el valor de kmax correspondiente al estándar de que se trate.
Portadoras TPS
Las portadoras TPS sirven para señalizar los parámetros correspondientes al esquema de transmisión empleado, es decir, para informar de todo lo relativo a la Codificación de Canal y a la Modulación usadas para la transmisión.
Estas portadoras TPS se transmiten en paralelo, ocupando 17 posiciones de cada símbolo OFDM en el estándar 2k y 68 posiciones en el estándar 8k.
2.5.- Otros estándares de transmisión digital
2.5.1.- Estándar ATSC
Designado también como DTV (Digital Television) fue el primer sistema de televisión digital y fue adoptado por la Comisión Federal de Comunicación de los Estados Unidos en noviembre de 1953. Actualmente está siendo adoptado, además de por Estados Unidos, por Canadá, México y Corea del Sur.
La entrada digital al sistema de transmisión de ATSC es un flujo de transporte MPEG-2, síncrono y continuo a una tasa binaria de 19.39 Mbits/s. Este flujo de datos en serie está formado por paquetes MPEG de 187 bytes más un byte de sincronismo, dando lugar a una carga útil de información de 19.2895 Mbits/s. Dicha carga útil puede incluir paquetes codificados de vídeo o audio digitales y/o datos adicionales y llega al modulador a través de un cable coaxial de 75 Ω y un conector BNC de entrada. El nivel
Desarrollo de un simulador DVB-T2 en Simulink 32
de la señal de salida es de 0.8 V ± 10% pico a pico. Los datos de sincronismo (reloj) van embutidos en la carga útil. El ancho de banda del canal RF es de 6 MHz.
La señal de salida del modulador es una señal modulada en amplitud, con vestigio de señal lateral, de ocho niveles. Por lo general, la salida del modulador es a una frecuencia intermedia entre la banda base y la frecuencia de salida de RF, por ejemplo 41 MHz. Dicha frecuencia intermedia, así como el nivel de salida y otras características, dependen de la elección del fabricante.
El modulador, de manera similar a otros estándares, cumple dos funciones esenciales: primero, realiza la codificación del canal y segundo, la modulación propiamente dicha. La señal de salida del modulador pasa a aun conversor ascendente que la traslada a la frecuencia del canal RF. El codificador convolucional, que forma parte del codificador del canal, entrega un código picado (punctured code) de tasa 2/3 ya que cada bit alterno lo codifica en dos bits y el bit intermedio no lo codifica. En otras palabras, por cada dos bits de entrada produce tres bits de salida que luego son entrelazados o intercalados por un entrelazador de 12 símbolos.
Los paquetes de transporte MPEG-2 en los estándares ATSC, DVB a ISDB son de 187 bytes más un byte de sincronismo que no se somete a codificación del canal. En ATSC la codificación del bloque (Reed-Solomon), agrega 20 bytes de redundancia, de modo que el paquete completo, incluyendo el byte de sincronismo, es de 208 bytes a los que se designa como segmentos de datos. Con 8 bits/byte y 3 bits por símbolo, un segmento de datos tiene una longitud de 208 x 8/3 x 3/2 = 832 símbolos, de los cuales 828 constituyen los datos codificados mediante R-S y los otros cuatro son símbolos de sincronismo del segmento. En total se tienen 3 x 832 = 2496 símbolos/segmento, de lo que 2484 son de datos y 12 de sincronismo de segmento. La estructura del segmento de datos se ilustra en la Fig. 2.6
Fig. 2.6: Estructura del segmento de datos
A una tasa binaria de 32.28 Mbits/s, la duración por bit es de 31 ns, de modo que la duración de un segmento es de 77.3 µs, es decir, 12.94 segmentos por segundo. Para barrido entrelazado se tienen 313 segmentos/campo, con lo que la duración de un campo
Desarrollo de un simulador DVB-T2 en Simulink 33
es de 24.2 ms y la frecuencia de campo resulta de 41.3 kHz. La frecuencia de cuadro es la mitad de la frecuencia de campo, es decir, 20.66 kHz.
2.5.2.- Estándar ISDB-T
Este estándar fue desarrollado por el Grupo de Expertos en Radiodifusión Digitak (DiBEG) en Japón que incluye radiodifusión de televisión digital, sonido y servicios de datos y se designa como Radiodifusión Digital de Servicios Integrados (ISDB) e incluye los estándares para servicios terrestres, por cable y por satélite, de manera similar a DVB. El estándar ISDB-T es, en muchos aspectos, similar al DVB-T, si bien una diferencia importante es el uso de OFDM en bandas segmentadas (BST-OFDM).
En ISDB-T, uno o varios flujos de transporte se remultiplexan para generar un flujo único de transporte (TS). Este TS se somete a procesos múltiples de codificación de canal, de acuerdo con los objetivos del servicio y se transmite finalmente como una señal OFDM única. En ISDB-T también es posible el entrelazado en tiempo, con el objeto de proporcionar una codificación de canal más potente para recepción móvil, donde las considerables variaciones de nivel de la señal recibida son inevitables.
Para transmisión de televisión, el espectro consiste en 13 bloques sucesivos de OFDM, también designados como segmentos OFDM, donde el ancho de banda de cada segmento es igual a 1/14 del ancho de banda de un canal de televisión. Esta configuración en segmentos permite el uso del mismo receptor tanto para televisión como para recepción de señales de radiodifusión de audio digital.
La codificación de canal se realiza en términos de segmentos, de modo que una parte de un canal de televisión puede utilizarse para servicio fijo y el resto para servicios móviles. Cada capa de la jerarquía consiste en uno o más segmentos y para cada uno se pueden especificar parámetros tales como el esquema de modulación de portadoras, tasa de codificación interna (picado) y longitud del intercalado en tiempo. Se tienen hasta tres capas jerárquicas en que el segmento empleado para recepción parcial, también cuenta como capa jerárquica.
La codificación del canal en ISDB-T es más compleja que en DVB y el orden de la codificación de bloque y dispersión de energía (aleatorización) se intercambian, como se ilustra en la Fig. 2.7
Desarrollo de un simulador DVB-T2 en Simulink 34
Fig. 2.7: Diagrama de bloques de la codificación de canal en ISDB-T
La dispersión de energía, ajuste de retardo, intercalado de bits y codificación convolucional se aplican a cada segmento de datos por separado, lo que permite que el intercalado y la tasa de código del codificador interno, así como la constelación de señales, pueda seleccionarse independientemente para cada capa jerárquica. El intercalado a nivel de bit difiere para cada capa, dependiendo de la codificación de canal y de la modulación. Para compensar esto se inserta un ajuste de retardo antes del intercalado.
La salida de los codificadores convolucionales (o codificadores de Trellis) de cada capa se aplican al modulador OFDM de forma similar a DVB, lo que implica el cómputo de la IFFT para generar portadoras múltiples en cuadratura. Dependiendo del modo de transmisión, el número de portadoras varía de 1405 a 5617, de las que el número de portadoras activas varía de 1249 a 4993. El ancho de banda ocupado por la información es aproximadamente de 5.6, 6.5 y 7.4 MHz para los canales de RF de 6, 7 y 8 MHz respectivamente.
Además de las tres constelaciones usuales en DVB-T (QPSK, 16QAM y 64QAM), en ISDB también se utiliza DPSK (modulación diferencial en cuadratura de fase).
Una vez llevada a cabo la modulación, la señal de salida ISDB-T está generada y el resto del sistema transmisor, al igual que en otros sistemas, tiene por finalidad la conversión de la salida de FI del modulador a la frecuencia del canal de RF y la amplificación subsiguiente para alcanzar el nivel de potencia requerido para la transmisión.
Desarrollo de un simulador DVB-T2 en Simulink 35
3.- DVB-T2
3.1.- Introducción
DVB-T2 es el estándar de transmisión digital de segunda generación desarrollado por el DVB Project. Introduce las últimas modulaciones y las últimas técnicas de codificación para permitir un uso eficiente del espectro para el reparto de audio, vídeo y servicios de datos fijos. DVB-T2 no está diseñado para reemplazar a DVB-T a corto o medio plazo; ambos estándares coexistirán en el mercado durante muchos años.
Como su predecesor, DVB-T2 utiliza modulación OFDM (Orthogonal Frequency División Multiplexer) con un gran número de subportadoras. También, en concordancia con DVB-T, el nuevo estándar ofrece distintos rangos de modos de operación haciéndolo más flexible. DVB-T2 emplea la misma codificación que el estándar DVB-S2, codificación LDPC (Low Density Parity Check) en combinación con BCH (Bose-Chaudhuri-Hocquengham) ofreciendo un comportamiento excelente en presencia de altos niveles de ruido e interferencias, dando lugar a una señal muy robusta.
Se permiten diversas opciones en algunos parámetros como en el número de portadoras, el tamaño del intervalo de guarda y las portadoras piloto, por lo que la sobrecarga puede ser minimizada para determinados canales de transmisión. Además, una nueva técnica, denominada Rotación de Constelación, proporciona una robustez adicional en canales difíciles.
Además, DVB-T2 especifica un método de diversidad de transmisión, conocido como codificación Alamouti [2], que mejora la cobertura en redes de una sola frecuencia (redes SFN). Finalmente, se ha definido una forma para que el estándar pueda ser completamente mejorado en un futuro a través de lo que se conoce como Future Extension Frames.
Fig. 3.1: Comparación entre DVB-T y DVB-T2
Desarrollo de un simulador DVB-T2 en Simulink 36
En países donde DVB-T ya está operando, la transición DVB-T a DVB-T2 tendrá que darse paulatinamente, si se quiere que prospere; los servicios ofrecidos por ambos estándares coexistirán durante un tiempo. Además se ha comprobado, por experiencias en Australia (donde se usa DVB-T con una codificación de vídeo MPEG2) y de Francia (DVB-T con una codificación de vídeo MPEG4) que es posible ofrecer servicios de alta definición (HDTV) sin necesidad del nuevo estándar. No obstante, los precios de los equipos DVB-T2 caerán durante los próximos años, lo que convertirá al nuevo estándar en la primera opción para llevar los servicios de televisión digital a países donde éstos no existan.
3.2.- Visión general sobre DVB-T2
En este apartado se pretende dar una visión general sobre los sistemas para la emisión de la televisión digital de segunda generación (Second-Generation Digital Terrestrial Broadcasting, DVB-T2).
3.2.1.- Capa Física
El modelo genérico para la capa física para sistemas DVB-T2 se representa en la Fig. 3.2. La entrada del sistema puede tener uno o más Flujos de Transporte, TS (MPEG Transport Stream) que pueden ser modificados por un pre-procesador a la entrada del sistema T2. Cada señal de entrada tiene una correspondencia única con un canal de datos en el modulador. A estos canales se les conoce como PLPs (Physical-Layer Pipes).
Fig. 3.2: Visión general de un sistema DVB-T2
Desarrollo de un simulador DVB-T2 en Simulink 37
A la salida del modulador tendremos una señal RF o un único canal RF. Opcionalmente, la salida podrá dividirse en una segunda señal, para ser transportada a otra antena en transmisiones tipo MISO (Multiple Inputs, Output), usando una codificación Alamouti modificada. Si existe una única capa física (PLP) habrá un único canal de datos.
El rango de parámetros del estándar COFDM se ha extendido en comparación con el de DVB-T:
• Tamaño de FFT: 1k, 2k, 4k, 8k, 16k y 32k.
• Intervalos de guarda: 1/128, 1/32, 1/16, 19/256, 1/8, 19/128, 1/4.
• Patrón de portadoras dispersas (scattered-pilot): 8 versiones diferentes ajustadas a cada uno de los intervalos de guarda.
• Pilotos continuos, similares a los del estándar DVB-T, pero con una optimización mejorada para reducir la sobrecarga.
• Un modo de portadora extendida que permite una optimización en el uso de los canales limitados en banda para tamaños FFT mayores.
3.2.2.- Physical Layer Pipes (PLPs)
Los requerimientos comerciales que solicitan servicios cada vez más robustos unidos a la necesidad de transportar diferentes tipos de señales nos llevan al concepto de PLP, capaces de transportar datos independientemente de la organización de los mismos.
DVB-T2 permite que las constelaciones, las tasas de codificación así como el entrelazado en tiempo sean asignados a distintas PLPs de forma individual.
Fig. 3.3: Diferentes PLPs ocupando diferentes intervalos de tiempo
Desarrollo de un simulador DVB-T2 en Simulink 38
Típicamente un grupo de servicios compartirán elementos comunes. Para evitar la necesidad de duplicar esta información para cada una de las PLPs, el estándar DVB-T2 incluye el concepto de PLPs comunes. De ahí que los receptores necesiten decodificar 2 PLPs simultáneamente al recibir un servicio: las PLPs de datos y las PLPs comunes a estos servicios.
En el estándar se definen dos modos de entrada:
• Modo A, que usa una única PLP.
• Modo B, que usa múltiples PLPs.
3.2.3.- Preámbulos (P1 y P2)
Los primeros símbolos de cada trama física en el estándar DVB-T2 son denominados símbolos preámbulos, que transportan una cantidad limitada de datos de señalización. La trama comienza con un símbolo P1, que emplea una modulación diferencial BPSK, con intervalos de guarda a ambos extremos del símbolo, que portan 7 bits de información (incluyendo el tamaño de la FFT). Los siguientes símbolos son símbolos P2; el número de símbolos P2 es fijo y viene dado por el tamaño de la FFT usado y proporciona toda la información de señalización de nivel 1 (capa física). Los primeros bits de señalización (L1 pre-signalling) tienen una codificación y modulación fija; para los restantes (L1 post-signalling), la tasa de codificación es 1/2 pudiendo optarse por una modulación QPSK, 16-QAM ó 64-QAM.
3.2.4.- Patrón de Pilotos
Mientras que en DVB-T se aplicaba el mismo patrón de pilotos con independencia del tamaño de FFT o del intervalo de guarda seleccionado, DVB-T2 ha elegido una propuesta más flexible definiendo hasta ocho patrones que serán seleccionados dependiendo del tamaño de la FFT y del intervalo de guarda adoptados para la transmisión. Con ello se consigue una reducción de la sobrecarga de pilotos mientras que asegura una suficiente calidad en la estimación del canal.
Se añaden portadoras pilotos dispersas (Scattered pilots) de amplitud y fase predeterminadas en la señal a intervalos regulares tanto en tiempo como en frecuencia. Estos son usados por el receptor para poder estimar cambios en la respuesta del canal.
Desarrollo de un simulador DVB-T2 en Simulink 39
Fig. 3.4: Patrón de pilotos dispersas en DVB-T (izquierda) y DVB-T2 (derecha)
3.2.5.- Códigos de control de errores LDPC/BCH
Mientras que la codificación de control de errores interna y externa en DVB-T estaba basada en códigos convolucionales y Reed-Solomon, diez años más tarde el desarrollo tecnológico permite que la mayor complejidad de la codificación LDPC pueda ser manejada en el receptor. DVB-T2 usa una codificación LDPC/BCH concatenada, como hace el estándar DVB-S2. Ambos códigos aseguran una mayor protección, permitiendo el transporte de una mayor cantidad de datos en un canal dado; además su uso muestra un mejor comportamiento de la BER (Bit Error Ratio) frente a C/N (relación entre la potencia de la señal recibida frente a la potencia del ruido), como puede verse en la siguiente Figura:
Fig. 3.5: Comparación entre codificación convolucional (DVB-T) y codificación LDPC (DVB-T2)
3.2.6.- Etapas de entrelazado
El objetivo de estas etapas de entrelazado no es otro que el de dispersar el contenido tanto en el dominio del tiempo como en el de la frecuencia de forma que ni los efectos de ruidos impulsivos ni de desvanecimientos selectivos en frecuencia
Desarrollo de un simulador DVB-T2 en Simulink 40
eliminen largas secuencias de la cadena de datos original. Además, el entrelazado es ajustado de acuerdo al comportamiento de los códigos de control de errores ya que estos no protegen a todos los datos por igual. Por último, estas etapas de entrelazado se han diseñado de forma que los bits transportados en puntos de una constelación ya transmitida no se correspondan con la secuencia consecutiva de bits de la cadena original.
Uno de los cambios más significativo entre DVB-T y DVB-T2 es la introducción del entrelazado en tiempo que va a proporcionar protección contra ruidos impulsivos y desvanecimientos selectivos en el tiempo.
3.2.7.- Técnicas de reducción de PAPR
Un elevado valor de PAPR (relación entre la potencia de pico y la potencia media) en sistemas OFDM puede reducir la eficiencia de los amplificadores RF. Dos técnicas de reducción del PAPR “Active Constellation Extension (ACE)” y “Tone Reservation (TR)” son soportadas en DVB-T2 dando lugar a una sustancial reducción del PAPR, aunque a expensas de un ligero incremento de la potencia media de menos de 1%.
La técnica ACE reduce el PAPR aumentando la distancia entre los puntos de la constelación en el dominio de la frecuencia, mientras que la técnica TR reduce directamente el PAPR cancelando la señal de pico en el dominio del tiempo. Ambas técnicas son complementarias.
3.3.- Elección de Parámetros
Existe una gran cantidad de formas de configurar un sistema DVB-T2. En este apartado comentaremos del porqué de la elección de cada uno de los parámetros.
Desarrollo de un simulador DVB-T2 en Simulink 41
3.3.1.- Elección del tamaño FFT
Los factores que pueden verse afectados por el tamaño de la FFT son bien conocidos. Incrementando el tamaño de la FFT daremos una mayor tolerancia al retraso para los mismos intervalos de guarda. Por otra parte, grande valores de la FFT provocan una mayor vulnerabilidad ante canales que presenten rápidas variaciones en el tiempo. Para un tamaño de FFT, constelación y tasa de codificación dados, el efecto Doppler es aproximadamente proporcional al ancho de banda de la señal en RF e inversamente proporcional a la frecuencia RF.
Para servicios fijos que requieren altas tasas de bits en bandas UHF IV/V o en bandas bajas, el modo 32k es el recomendado. En estas situaciones, las variaciones en el tiempo de los canales están minimizadas y el modo 32k ofrece la posibilidad de lograr altas tasas binarias usando DVB-T2.
Para recepciones móviles en bandas UHF IV/V o bandas mayores, deben utilizarse tamaños inferiores para la FFT.
El modo 1k da lugar a un efecto Doppler más alto y se utiliza principalmente para operaciones en la banda L (1.5GHz) o mayores, usando un ancho de banda nominal de unos 1.7 MHz.
3.3.2.- Elección de portadora normal o extendida
La señal DVB-T2 ha sido diseñada para que no presente requisitos tan estrictos para el plan de frecuencia como en el caso de DVB-T.
El espectro de una “clásica” señal OFDM muestra una señal más o menos rectangular desde la banda deseada de la señal requerida, presentando un factor de roll-off que depende del espaciado entre portadoras OFDM. El mayor tamaño de la FFT (para la misma tasa de muestreo y mismo ancho de banda nominal), un menor espaciado entre portadoras y la mayor rapidez de caída del espectro fuera de la banda requerida son las principales propiedades que hacen que la opción de portadora extendida sea viable para modos con tamaño de FFT 8k o superiores. La opción de portadora extendida tiene como beneficio el incremento de la capacidad de datos.
Desarrollo de un simulador DVB-T2 en Simulink 42
Fig. 3.6: Espectro de la señal DVB-T2 para intervalos de guarda 1/8 (canales de 8 MHz)
3.3.3.- Elección del Intervalo de Guarda
DVB-T2 ofrece un amplio rango de posibles intervalos de guarda para garantizar todas las necesidades de transmisión. Debemos distinguir entre dos conceptos: la duración del intervalo de guarda, TG, y la fracción del intervalo de guarda, GIF=TG/TU.
La visión más sencilla es tratar el intervalo de guarda como los límites en los que se puede extender un canal para que éste siga siendo tolerado por el sistema. Asumiendo que la amplitud del canal para un escenario de emisión es conocida, es sólo una cuestión de elegir el valor de TG. Esta elección requerirá también la consideración del tamaño de la FFT. La mayor capacidad del canal se obtiene minimizando el GIF, es decir, maximizando el valor de TU. No obstante, sabemos que existen otras limitaciones en la elección del valor de la FFT, como la influencia del efecto Doppler en el escenario de interés. Éste establecerá un límite en la elección del valor para la FFT. Así, atendiendo a estas consideraciones, el proceso de decisión sería:
• Determinar la máxima ampliación del canal.
• Tomar el valor de TG más próximo.
• Determinar los efectos Doppler del escenario.
Desarrollo de un simulador DVB-T2 en Simulink 43
• Determinar el mayor tamaño para la FFT aceptable bajo las consideraciones anteriores.
No obstante, hemos realizado una aproximación bastante simplista.
Si la ampliación del canal es menor que la duración del intervalo de guarda, no habrá interferencia intersímbolos (ISI). Si, por el contrario, la ampliación del canal es mayor que la duración del intervalo de guarda existirá interferencia intersímbolos.
En la siguiente tabla, Tabla 1, se listan la duración de los intervalos de guarda para canales de ancho de banda 8MHz, para cada combinación de intervalo de guarda y tamaño de la FFT permitida.
Tabla 3.1: Duración de los intervalos de guarda en µs para canales de 8MHz
3.3.4.- Elección del Patrón de Pilotos
Los receptores DVB-T2 realizan medidas constantemente del canal usando scattered pilots (SPs) para luego realizar interpolaciones de estas medidas y construir así estimaciones de las respuestas del canal para cada una de las células OFDM. Estas medidas deben ser suficientemente importantes para que posibiliten seguir posibles variaciones del canal tanto en tiempo como en frecuencia.
En DVB-T2 existen varios patrones de pilotos, denominados PP1 a PP8, con la intención de proporcionar mejores opciones de eficiencia para los diferentes escenarios. Cada patrón puede, en principio, soportar variaciones en tiempo y frecuencia por encima de los límites de Nyquist. PP8 se trata como un caso especial: en ellos no se usa la interpolación entre medidas; en lugar de ello se emplea una técnica de retroalimentación que continuamente actualiza las estimaciones al comienzo de las tramas.
El operador deberá elegir un patrón de pilotos considerando el canal esperado en función del tipo de uso que desea soportar.
Desarrollo de un simulador DVB-T2 en Simulink 44
La capacidad se reduce notablemente a medida que aumenta la inserción de scattered pilots; la carga de SPs puede expresarse como 1/(Dx·Dy). PP1 y PP2 son los que tienen mayor carga (8.33%), y PP7 y PP8 los que menos (1.04%). Por supuesto, los casos con mayor sobrecarga se incluyen porque también presentan ventajas. PP1 ofrece los mayores límites de Nyquist para extender los canales, mientras que PP6 y PP7 los que menos.
Tabla 3.2: Comparación entre los patrones de scattered pilots
El entrelazado en tiempo y el patrón de pilotos PP8 no deberían usarse juntos; para redes en las que el operador decida hacer esto, el rendimiento del receptor puede verse degradado.
3.3.5.- Elección de la longitud de la Trama
La longitud de una trama T2, es decir, el número de símbolos LF en una trama T2, es un parámetro configurable por el transmisor u operador de red. Hay 3 restricciones importantes:
• La máxima duración de la trama son 250ms.
• El mínimo número de símbolos está especificado. Esto simplifica el proceso de estimación del canal.
• En el modo 32k, debe haber un número par de símbolos.
Además de todas estas restricciones, hay otra serie de factores que también afectan a la elección de la longitud de la trama:
Desarrollo de un simulador DVB-T2 en Simulink 45
• Un valor muy grande de la longitud de la trama reduce el porcentaje de carga asociada con los símbolos preámbulos P1, la señalización L1 y la mayor densidad de los pilotos en P2, incrementándose el régimen binario total.
• Un valor pequeño de la longitud de la trama significa que los símbolos P1 y P2 aparecen con demasiada frecuencia.
Aunque aumentar la longitud de la trama reduce la carga de los símbolos preámbulos, hay un efecto de segundo orden que debería considerarse en la elección del número de símbolos. Debe haber un número entero de bloques FEC (veremos su significado en el apartado 3.5.2.3) en una trama T2. Como resultado, el régimen binario total depende del número exacto de símbolos y, por tanto, del número de células en una trama. Reduciendo la longitud de la trama en un símbolo puede incrementarse el régimen binario total significativamente.
La elección exacta de la longitud de la trama dependerá de las selecciones realizadas en otros parámetros:
• Tamaño de la FFT.
• Intervalo de guarda.
• Uso del modo portadora extendida.
• Combinación de diferentes tipos de PLPs.
3.3.6.- Elección de los parámetros de entrelazado de tiempo
La elección del número de bloques TI para el entrelazado de trama depende de dos factores. Incrementando el número de bloques TI para una duración de trama dada, reducimos el entrelazado de tiempo, además de la resistencia del sistema a interferencias de otros sistemas y variaciones del canal en el tiempo. Por otra parte, incrementando el número de bloques TI incrementamos la máxima tasa de datos para una PLP.
Desarrollo de un simulador DVB-T2 en Simulink 46
Una opción alternativa es el entrelazado multitrama, donde un bloque TI se divide entre varias tramas T2. Esta alternativa suele usarse para PLPs con una baja tasa de datos. Particularmente es útil para PLPs comunes y PLPs tipo 1.
El entrelazado de tiempo es opcional, sin embargo su uso es muy recomendado puesto que proporciona una gran diversidad en el tiempo.
3.4.- Estructura Física de la Trama
3.4.1.- Súper-trama
La mayor entidad de un sistema DVB-T2 es una súper-trama, que está formada por tramas T2 y puede contener, además, tramas para una extensión futura (FEF, Future Extension Frame). El número máximo de tramas T2 en una súper-trama es de 255. La máxima longitud de una trama T2 es de 250ms y la longitud máxima de FEF también es de 250ms. Las tramas T2 pueden tener longitudes diferentes entre tramas FEF, sin embargo deberán tener la misma longitud dentro de una súper-trama. Esto es también aplicable a todas las partes FEF. Una FEF puede ser insertada entre dos tramas T2, por lo que el número de FEFs en una súper-trama oscila entre 0 y 255. Si existen es necesario que ésta finalice en una FEF. La máxima longitud de una súper-trama es de 256*250ms = 64s, si no lleva FEFs y de 256*2*250ms = 128s, si se usan FEFs.
Una trama T2 se divide en símbolos OFDM. Cada trama T2 empieza en un símbolo P1. También cada FEF empieza con un símbolo P1. Por ello, el intervalo entre dos símbolos P1 es de 250ms.
Fig. 3.7: Estructura de una trama T2
Desarrollo de un simulador DVB-T2 en Simulink 47
El propósito de las tramas T2 es la de llevar PLPs y señalización L1. Por ello, estas tramas portan servicios DVB-T2 y su señalización pertinente. El propósito de las FEFs es el de permitir el mezclado entre los servicios definidos en la actual versión del estándar junto con los nuevos servicios que se puedan definir en una futura versión del mismo. Actualmente, las FEFs suelen ir vacías. Un receptor diseñado para la recepción de señales DVB-T2 debería ser capaz de detectar y corregir partes FEFs, por lo que la recepción de tramas T2 no debe verse afectadas en ningún caso.
3.4.2.- Trama T2
Una trama T2 está compuesta por un símbolo P1, NP2 símbolos P2 y un número configurable de símbolos de datos, en los que el último puede ser un símbolo especial Frame Closing symbol. El número de símbolos P2, NP2, depende del tamaño de la FFT y se define en la Tabla 3.3:
Tabla 3.3: Número de símbolos P2 para cada valor de FFT
La duración de una trama T2 está determinada por el tamaño de la FFT, intervalo de guarda y el número de símbolos OFDM. La duración máxima permitida en una trama T2 es de 250ms, que impone un límite en el número máximo de símbolos OFDM, LF, para los diferentes valores de FFT e intervalos de guarda, como se ve en la Tabla 4.4. La longitud de una trama T2 se calcula como:
TF = LF x TS + TP1
donde TS es la duración total de símbolos OFDM definida como:
TS = TU + TG = TU x (1 + GIF)
y la duración de un símbolo P1 es de 0.224ms. LF incluye todos los símbolos P2 y símbolos de datos por lo que LF = NP2 + Ldata. GIF es la fracción del intervalo de guarda.
Desarrollo de un simulador DVB-T2 en Simulink 48
Tabla 3.4: Máxima longitud de trama LF en símbolos OFDM
Los símbolos P2 y los símbolos de datos llevan señalización L1, PLPs y cadenas auxiliares (opcionales). La señalización L1 debe ir siempre en los símbolos P2, nunca en los símbolos de datos. Las PLPs y las cadenas auxiliares pueden ir tanto en los símbolos P2 como en los símbolos de datos. La estructura de una trama T2 viene recogida en la Fig. 3.8. El mapeado de señalización L1, PLPs y cadenas auxiliares en símbolos OFDM de una trama T2 se recoge en Fig. 3.9.
Fig. 3.8: Estructura de una trama T2
Fig. 3.9: Mapeado de señalización L1, PLPs y cadenas auxiliares en una trama T2
Desarrollo de un simulador DVB-T2 en Simulink 49
3.4.3.- Señalización L1
La señalización L1 se divide en L1-pre signalling y L1-post signalling. La modulación y la tasa de codificación para L1-pre signalling es una BPSK a 1/2 y el número de bits de señalización es constante. La L1-pre signalling siempre va a ocupar 1840 células.
El número de bits de señalización L1-post signalling depende del número de PLPs, del número de cadenas auxiliares y del uso de FEFs. El número de células ocupadas por L1-post signalling depende del número de bits de señalización y de la modulación usada. La modulación para L1-post signalling puede ser BPSK, QPSK, 16QAM o 64QAM. La codificación FEC es siempre 1/2. La modulación para L1-post signalling es elegida de forma que la señalización L1 es siempre más robusta que cualquier PLP.
Los símbolos P2 siempre deben llevar señalización L1. Debido a esto, el número de PLPs que puede haber en un sistema T2 viene limitado por la modulación usada por la L1-post signalling y el número de bits de señalización.
La L1-pre signalling y la L1-post signalling serán entrelazadas y codificadas por separado. La señalización es mapeada a símbolos P2 por lo que la cantidad de L1-pre y L1-post es la misma en cada símbolo P2, como vemos en Fig. 3.10:
Fig. 3.10: Mapeado de señalización L1 en símbolos P2
Desarrollo de un simulador DVB-T2 en Simulink 50
3.5.- Estructura lógica de una trama
3.5.1.- Paquetes
Las PLPs pueden llevar paquetes, incluyendo paquetes de flujos de transporte (TS) MPEG u otros tipos de paquetes usados por flujos genéricos. La cabecera BB-Frame (ver apartado 3.5.2.1) proporciona un mecanismo para que los paquetes puedan ser reconstruidos en el receptor. La señal DVB-T2 en sí es, generalmente, independiente de cualquier estructura de paquetes.
3.5.2.- BB-Frame, FECFrames y bloques FEC
3.5.2.1.- BB-Frames
Las BB-Frames (BaseBand Frames, tramas en banda base) son unidades enmarcadas en la estructura básica de DVB-T2: asignación y programación son llevadas a cabo en números enteros de BB-Frames. Cada BB-Frame puede contener un número entero de paquetes o, por el contrario, los paquetes pueden ser fragmentados en varias BB-Frames. Cada BB-Frame contiene una cabecera, en la que se especifica la longitud y la posición del primer paquete, que permite al paquete original poder ser reconstruido por el receptor. También es posible que las BB-Frames puedan contener padding (relleno), en el caso de que no haya datos suficientes para una BB-Frame completa. El tamaño total de una BB-Frame, incluyendo el relleno es constante para una PLP dada y depende de la tasa de codificación LDPC.
3.5.2.2.- FECFrames
Las tramas en banda base, con su cabecera, son tratadas como “palabras” de información a las que se les aplica la codificación BCH y LDPC. Como resultado de esta codificación obtenemos una nueva cadena de datos que contendrá 64800 o 16200 bits y que es conocida como FECFrame. Las dos longitudes diferentes se corresponden con la elección de bloques FEC largos o cortos respectivamente. Los bloques FEC
Desarrollo de un simulador DVB-T2 en Simulink 51
cortos permiten una granularidad mejor de régimen binario pero acarrea una gran carga y un rendimiento ligeramente peor que los bloques largos.
3.5.2.3.- Bloques FEC
Los bits de una FECFrame son entrelazados y organizados en “palabras”, que son mapeadas en constelaciones o células OFDM; cada punto de la constelación que se corresponde con una FECFrame es conocido como bloque FEC. El número de células en cada bloque FEC depende tanto de la modulación QAM y de la elección realizada de bloques cortos o largos para una PLP particular.
3.5.3.- Entrelazado de Tramas
El entrelazado de trama es una estructura de entramado dentro de la cual tiene lugar la asignación para una PLP particular. El programador asignará un número variable de BB-Frames a cada entrelazado de trama, y además, habrá un número entero de entrelazados de tramas en una súper-trama.
Hay dos razones que explican por qué el entrelazado de tramas no es el mismo en todas las tramas T2. En primer lugar, una PLP puede usar el entrelazado en tiempo sobre múltiples tramas T2. Por tanto, no es correcto decir que una trama en banda base (BB-Frame) es asignada a una trama T2 particular, si no que cada BB-Frame puede ser dispersada sobre todas la Pi (número de tramas en las que se mapea el entrelazado de tramas, para cada PLP i) tramas T2 en el periodo de entrelazado.
En segundo lugar, una PLP particular no necesita ser mapeada en cada trama T2 de una súper-trama, pero en lugar de ello puede aparecer en una trama T2 cada IJUMP
(diferencia entre sucesivas tramas T2 en las que una PLP particular ha sido mapeada) entre tramas T2. La duración del entrelazado de tramas en este caso se corresponde con Pi tramas T2 en las que una PLP se ha mapeado más Pi x (IJUMP – 1) tramas que se han saltado: un total de Pi x IJUMP tramas T2.
Desarrollo de un simulador DVB-T2 en Simulink 52
3.5.4.- Bloques TI
Un bloque TI es una serie de células en las que se ejecuta el entrelazado de tiempo; no existe entrelazado entre bloques TI. Cada uno de ellos contiene un número variable de bloques FEC. El número total de BB-Frames y, por tanto, de bloques FEC, asignados al entrelazado de tramas no necesita ser múltiplo del número de bloques TI; como resultado, los bloques TI dentro del entrelazado de tramas puede contener un número de bloques FEC ligeramente diferentes.
Éstos también se utilizan también para el entrelazado de células. El valor de L(r) de la función de permutación cambia de un bloque FEC al siguiente, pero el índice r que marca la posición de los bloques FEC se pone a cero al comienzo de cada bloque.
3.6.- Señalización L1
La señalización L1 tiene dos funciones principales. En primer lugar proporciona al receptor una manera rápida de detección de la señal. En segundo lugar, proporciona al receptor toda la información necesaria para acceder a la señalización de nivel 2 (señalización L2). La estructura de la señalización es la que puede verse en la Fig. 3.11.
El propósito de la señalización P1, que es la que porta la señalización referente al símbolo P1, es indicar el tipo de parámetros básicos usados para la transmisión. El resto de señalización se porta en los símbolos P2, que también son capaces de transportar datos de las PLPs. La L1-pre signalling proporciona los parámetros básicos de transmisión incluyendo aquellos parámetros que permiten la recepción y decodificación de la L1-post signalling. La L1-post signalling se divide, a su vez, en otras dos partes: una parte configurable y otra parte dinámica. Además, siguiendo a éstas puede ir un campo opcional. La L1-post signalling acaba con un CRC (Cyclical Redundancy Checking) y un relleno (padding) en caso de que sea necesario.
Desarrollo de un simulador DVB-T2 en Simulink 53
Fig. 3.11: Estructura de la señalización L1
Todos los datos de señalización L1, a excepción de la parte dinámica de L1-post signalling, permanecerá sin cambios durante toda la duración de la súper-trama. De ahí que cualquier cambio que se vaya a implementar en la configuración tendrá que ir entre dos súper-tramas.
La señalización P1 se define, casi exclusivamente, para permitir la detección rápida de la señal y proporcionar un sub-conjunto de parámetros de transmisión válidos para la trama T2 entera.
L1-pre signalling a la vez que permite la recepción y la decodificación de L1-post signalling proporciona información de la súper-trama actual, relativa a la topología de la red, configuración y transmisión de protocolos usados dentro de la súper-trama.
L1-post signalling contiene la mayoría de la información necesaria para extraer y decodificar las PLPs procedentes de las tramas T2.
3.7.- Codificación y Modulación
3.7.1.- Corrección de errores para las PLP
El esquema de corrección de errores (FEC) de un sistema DVB-T2 está basado en la concatenación de los códigos BCH y LDPC, además de distintas etapas de entrelazado y el mapeado de los bits a células.
Desarrollo de un simulador DVB-T2 en Simulink 54
El código BCH es incluido como un seguro ante errores no deseados y es exactamente igual que en el estándar DVB-S2.
Para el código LDPC, el estándar DVB-T2 incluye dos elecciones para elegir la longitud del código (bloques normales de 64800 o bloques pequeños de 16200) así como 6 elecciones de tasa de código (1/2, 3/5, 2/3, 3/4, 4/5, 5/6) del estándar DVB-S2.
El código para bloques de 64800 es el mismo que para DVB-S2. El código para bloques de 16200 está basado también en el código para la segunda versión del estándar de DVB para satélite.
3.7.2.- Entrelazado de Bits
El código LDPC en DVB-T2 no es un código uniforme sino que, en general, el nivel de protección dependerá del peso de la columna de la matriz de paridad. Las siguientes tablas dan la distribución de los pesos de la matriz para bloques de 64800 y bloques de 16200.
Tabla 3.5: Distribución de los pesos de las columnas para bloques de 64800
Tabla 3.6: Distribución de los pesos de las columnas para bloques de 16200
Desarrollo de un simulador DVB-T2 en Simulink 55
El entrelazado de bit es un bloque de entrelazado que se aplica a cada palabra codificada LDPC. En DVB-T2 el entrelazador de bits tiene NC = 2m si se usa una modulación 2m-QAM. Los bits codificados son escritos por columnas y leídos por filas. En Fig. 3.12 tenemos un ejemplo de cómo se realiza este proceso.
Fig. 3.12: Ejemplo de entrelazado de bits
3.7.3.- Entrelazador de células
El entrelazado de células (CI) consiste en una permutación pseudo-aleatoria de las células de una FEC, diferente para cada una de las FEC de un bloque TI, para asegurar así en el receptor una distribución incorrelada de las distorsiones del canal. El procedimiento que se sigue es muy similar al entrelazado en frecuencia (que se verá posteriormente). Con el objetivo de tener diferentes patrones de entrelazado para diferentes FEC, se añade un cambio constante a la permutación (modulo Ncells), generado como el valor del bit inverso de un contador de bit Nd, donde
Nd = floor (log2Ncells)
Desarrollo de un simulador DVB-T2 en Simulink 56
Los requisitos de memoria para el entrelazado de células son dependientes del entrelazado de tiempo; así, de este modo, una implementación eficiente del entrelazado de tiempo mejorará el rendimiento del entrelazado de células.
Fig. 3.13: Esquema del Entrelazado de Célula
3.7.4.- Entrelazado de Tiempo
El concepto de entrelazado en el tiempo lo hemos visto en el apartado 3.5.6 y la elección de los parámetros de entrelazado fue discutido en punto 3.3.6. En este apartado consideraremos la implementación del entrelazado de tiempo.
Las células entrantes en el entrelazador de tiempo serán escritas en columnas dentro de la memoria del entrelazador, tal y como se muestra en Fig. 3.13. Una vez que toda la trama ha sido recibida en la entrada, el entrelazador de trama puede dividirla en bloques TI, teniendo en cuenta que estos bloques dentro del entrelazador de tramas puede contener ligeras diferencias en el número de bloques FEC, con el bloque TI más pequeño en primer lugar. El entrelazador de trama sólo puede leer un bloque a la vez, leyendo las partes más significativas de cada fila de la memoria para el entrelazado.
Desarrollo de un simulador DVB-T2 en Simulink 57
Fig. 3.14: Uso de la memoria para el entrelazado de tiempo
3.8.- Formación de trama y generación OFDM
La función del “constructor” de tramas es la de unir las células procedentes del entrelazador de tiempo de cada PLP y las células moduladas de la señalización L1 en vectores de células activas OFDM correspondientes a cada símbolo OFDM para completar la estructura general de la trama. La formación de la trama se realiza con la información proporcionada por el programador y con la configuración de la estructura de la trama.
La programación de la PLP es realizada actualmente en el programador, que se asume como una parte de la entrada al sistema de DVB-T2. Para generar la información de señalización L1 requerida, el programador decidirá qué células de la señal T2 llevarán datos pertenecientes a qué PLP. Aunque esta operación no tiene efecto en la cadena de datos en esta etapa, el programador definirá la composición exacta de la estructura de la trama.
Desarrollo de un simulador DVB-T2 en Simulink 58
3.8.1.- Entrelazado en frecuencia
Para minimizar la memoria empleada, necesitamos implementar el entrelazado de frecuencia con una única memoria compuesta de Nmax localizaciones. Nmax es el máximo número de células de datos en un símbolo OFDM para un valor de FFT dado. Es previsible que las implementaciones prácticas de los moduladores DVB-T2 deban soportar todos los valores para la FFT. Para tales implementaciones, Nmax sería la capacidad de memoria necesaria para llevar a cabo el entrelazado par-impar para 32k. De ahí que Nmax = 27404 sea el número máximo de células de datos para el modo 32k usando el patrón PP8 de scattered pilots. El entrelazado en frecuencia para todos los modos puede ser implementado con una memoria de Nmax localizaciones. Para una configuración dada con Cmax = máx. (Cdata), esta memoria necesitaría Cmax localizaciones (para el modo 32k) o 2Cmax localizaciones (para el resto de modos).
Así, el esquema para el entrelazador de frecuencia que se va a seguir es el siguiente:
Fig. 3.15: Entrelazador frecuencial para el modo 8k
Tabla 3.7: Permutación de bits para el modo 8k
Desarrollo de un simulador DVB-T2 en Simulink 59
3.8.2.- Inserción de Pilotos
Como ya hemos visto, distintas células dentro de una trama OFDM son moduladas con información de referencia y son transmitidas en posiciones conocidas por el receptor.
Estas portadoras pilotos pueden ser usadas para sincronización de la trama, sincronización en frecuencia, sincronización en tiempo, estimación del canal o para identificar el tipo de transmisión.
3.8.2.1.- Definición de la secuencia de referencia
Las portadoras pilotos son moduladas de acuerdo a una señal de referencia, rl,k, donde l y k son el símbolo y el índice de la portadora definidos previamente. Esta secuencia de referencia se aplica a todos las portadoras pilotos de cada símbolo de una trama T2.
Fig. 3.16: Formación de la secuencia de referencia
Desarrollo de un simulador DVB-T2 en Simulink 60
3.8.2.1.1.- Secuencia PRBS
La secuencia PRBS se genera de acuerdo a la Figura 3.17:
Fig. 3.17: Generación de la secuencia PRBS
Todos los registros están inicializados a 1.
El polinomio para el generador PRBS será: x11 + x2 + 1
3.8.2.1.2.- Secuencia PN
Cada valor de la secuencia PN se aplica a cada uno de los símbolos OFDM de la trama T2. La longitud de la secuencia PN será, por tanto, igual que la longitud de la trama LF, es decir, igual al número de símbolos de la trama T2.
La secuencia de longitud NPN = LF, estará formada por los primeros NPN bits de la secuencia PN general.
Tabla 3.8: Secuencia PN general. Descripción Hexadecimal
Desarrollo de un simulador DVB-T2 en Simulink 61
3.8.2.2.- Propósito de la inserción de pilotos
Las portadoras pilotos se insertan por varias razones:
• Las portadoras pilotos dispersas, las de los símbolos P2 y las de los símbolos fin de trama, pueden usarse para la estimación y ecualización del canal.
• Las portadoras pilotos continuas, las de los símbolos P2 y las de los símbolo fin de trama, pueden usarse para la corrección del error de fase,
• Todas las portadoras pilotos pueden usarse para sincronización.
• Las portadoras pilotos continuas, las de los símbolos P2 y las de los símbolos fin de trama, su usan también como una forma de relleno.
3.8.2.3.- Localización de las portadoras pilotos
En este apartado no vamos a indicar la posición exacta de las portadoras pilotos en cada uno de los símbolos OFDM que componen la trama T2. En lugar de ello, comentaremos algunas consideraciones que tendrán que tomarse en cuenta:
• Los diferentes tipos de símbolos contienen distintas combinaciones de diferentes tipos de pilotos. En la Tabla 3.9 se resume las distintas portadoras pilotos que nos podemos encontrar en cada símbolo.
• El patrón eficaz de portadoras dispersas empieza en el símbolo cero.
• En el modo portadora extendida, las portadoras pilotos dispersas en la parte central de la señal para un símbolo dado ocupan las mismas portadoras (k’) que en el modo portadora normal. Como resultado, los valores de k para las portadoras dispersas para un símbolo dado no son necesariamente las mismas para los modos normal y extendido. En la práctica, este hecho sólo es relevante para los modos 8k y 16k con los patrones PP7 y PP8.
• Hay portadoras pilotos P2 cada tres portadoras en todo los modos salvo para el 32k SISO.
Desarrollo de un simulador DVB-T2 en Simulink 62
Tabla 3.9: Presencia de los distintos tipos de pilotos en cada tipo de símbolo
3.9.- Uso del símbolo P1
3.9.1.- Introducción
Hay un símbolo P1 por trama, insertado al principio de cada una de ellas. Estos símbolos marcan el comienzo de una trama T2 y tienen cuatro propósitos principales:
• Permitir a un receptor determinar rápidamente si un canal contiene una señal DVB-T2.
• Identificar el preámbulo como un preámbulo T2.
• Señalizar algunos parámetros de transmisión que son necesarios para decodificar el resto del preámbulo y de la información principal. En particular, el símbolo P1 revela el modo FFT de transmisión. Aunque el intervalo de guarda de transmisión sigue siendo desconocido, la reducción en el número de posibilidades (recordamos que sólo son “permitidos” determinados intervalos de guarda para un modo FFT concreto) es muy útil para reducir el tiempo de detección.
• Permite al receptor detectar y corregir sincronización en frecuencia y en tiempo.
3.9.2.- Estructura del símbolo P1
La longitud del símbolo P1 es fija, independientemente de los valores de la FFT y del intervalo de guarda. Esto lo hace más fácil de detectar, ya que sólo tendremos que fijarnos en una cosa.
Desarrollo de un simulador DVB-T2 en Simulink 63
La señal P1 puede ser detectada a pesar de la presencia de un sustancial offset en frecuencia. Este offset aparece por dos razones:
• Una mayor o menor tolerancia en la frecuencia de referencia en el receptor.
• Offset introducido de forma deliberada por el transmisor como parte de un proceso para el control de interferencia entre redes.
La detección es posible gracias a que el símbolo P1 contiene algunas partes que son “repeticiones” de la parte principal del símbolo.
Fig.: 3.18: Estructura del símbolo P1
Nótese que la primera parte del símbolo, C, es una copia de las primeras 542 muestras de A; mientras que B es una copia de las últimas 482 muestras de A.
En principio, con un símbolo de 1k, 853 portadoras podrían ser transmitidas dentro de un ancho de banda nominal. Las portadoras usadas estarán centradas en la banda, dejando 44 y 43 portadoras vacías a los lados. Dentro del bloque principal usado, bastantes portadoras son fijadas a cero según un patrón conocido que podrán ser usadas para la sincronización en frecuencia. Para sistemas de 8MHz, las portadoras usadas ocupan aproximadamente un bloque de 6.3MHz en el medio de una señal de ancho nominal 7.61MHz.
Un modelo de modulación es aplicado a 384 portadoras, usando DBPSK. Dicho modelo de modulación codifica 7 bits de señalización.
Desarrollo de un simulador DVB-T2 en Simulink 64
3.9.3.- Características de P1
La arquitectura del símbolo P1 ha sido diseñada para ser robusta, permitiendo al receptor decodificar el símbolo P1 en condiciones cambiantes. P1 fue diseñado con las siguientes características:
• Protección contra interferencias.
Se espera que el símbolo P1 pueda ser corregido y decodificado bajo circunstancias verdaderamente extremas. La elección (por eficiencia) de longitud fija del símbolo significa que puede haber interferencia inter-símbolo, aunque ésta puede ser tolerada debido a que la modulación y la codificación han sido diseñadas para operar en una baja relación señal a ruido. La presencia de las partes C y B al comienzo y al final de símbolo de 1k proporciona robustez contra la falsa detección o pérdida de detección.
• Recepción de la señal sin conocimiento del canal
El símbolo P1 puede ser recuperado correctamente cuando el receptor está sintonizado con la frecuencia central. De hecho, el símbolo admite offset de más o menos 500KHz desde la frecuencia central de ancho de banda nominal en el caso de sistemas de 8MHz. La relación entre la potencia de pico y la potencia media (PAPR) del símbolo ha sido optimizada para facilitar la recepción.
• Capacidad para corregir el offset
El símbolo P1 puede ser utilizado para conseguir una mejor sincronización de tiempo del receptor, así como detectar cualquier desviación en frecuencia.
• Robustez de señalización
La señalización transportada por el símbolo P1 también es modulada (mediante modulación DBPSK). Se ha asegurado que esta protección es suficiente para recuperar dicha señalización incluso bajo valores negativos de SNR.
Desarrollo de un simulador DVB-T2 en Simulink 65
4.- MODULACIÓN OFDM
4.1.- Un poco de historia
La historia de la modulación OFDM comienza a mediados de los años 60 cuando Hang publica su artículo sobre la síntesis de señales limitadas en banda para transmisiones multicanal. Hang expone un principio para transmitir mensajes simultáneamente a través de un canal lineal y limitado en banda, sin interferencia cocanal (ICI) ni interferencia intersímbolo (ISI). Poco después de que éste presentara su artículo, Saltzberg [3] llevó a cabo un análisis para la implementación de este principio, de lo que concluyó que la estrategia para diseñar un sistema paralelo eficiente se debería basar más en reducir el crosstalk (parte de señal que se introduce en un canal que no es el suyo) entre canales adyacentes que en perfeccionar cada uno de los canales por sí solo, ya que la distorsión debida al crosstalk tendía a ser dominante. Esta es una importante conclusión que se comprobó como cierta con el procesado digital en banda base unos cuantos años más tarde.
Una contribución muy importante para la modulación OFDM fue presentada por Weinstein y Ebert [4], quienes propusieron el uso de la Transformada Discreta de Fourier (DFT) para la realización de la modulación y demodulación en banda base. Su trabajo no se enfocó solo a “perfeccionar cada canal de manera independiente”, sino que también buscó introducir un procesado eficiente y eliminar los desajustes propios de un banco de osciladores. Este banco de osciladores era necesario en el transmisor y en el receptor, un oscilador para cada uno de los subcanales, apareciendo serios problemas de sincronización y sintonización. Para combatir la ISI y la ICI, se usaron los intervalos de guarda entre símbolos así como el enventanado de tipo coseno alzado en el dominio del tiempo. Este sistema no conseguía una ortogonalidad perfecta entre subportadoras sobre un canal disperso pero suponía una importante mejora para la época.
Otra importante aportación fue la presentada por Peled y Ruiz [5] en el año 1980, quienes introdujeron el prefijo cíclico o la extensión cíclica (CP o GI, período de guarda), que resolvía el problema de la ortogonalidad. En lugar de usar un período de guarda vacío, ellos propusieron transmitir en ese espacio una extensión cíclica del símbolo OFDM. Esto, efectivamente, simula un canal que realiza una convolución cíclica, lo que implica ortogonalidad sobre canales dispersos cuando el CP es mayor que la respuesta impulsiva del canal. Esto, sin embargo, introduce una pérdida de energía proporcional a la longitud del CP, pero que queda justificada por la nula ICI.
Desarrollo de un simulador DVB-T2 en Simulink 66
Los sistemas OFDM se diseñan normalmente para pulsos rectangulares, aunque recientemente se está produciendo una tendencia a utilizar otros tipos de pulsos, pulse shaping. Esto permite jugar un poco con la forma del espectro, consiguiendo mejores resultados en cuanto a interferencias.
4.2.- Modelado de OFDM
La idea básica de OFDM es dividir el espectro total en varios subcanales (subportadoras). Al conseguir así subcanales de banda estrecha, cada uno experimenta un desvanecimiento plano, lo que hace que la ecualización sea bastante simple. Para obtener una alta eficiencia espectral, la respuesta en frecuencia de los subcanales se solapan y son ortogonales, de ahí el nombre de Orthogonal Frequency Division Multiplexing, OFDM. Esta ortogonalidad se mantiene incluso al pasar por un canal disperso, gracias al prefijo cíclico comentado. El modelo de OFDM que presentamos en este apartado, a grandes rasgos, será un modelo con prefijo cíclico (CP).
Como ya comentamos antes, el CP es una copia de la última parte del símbolo OFDM que se antepone al símbolo OFDM, ver Fig. 4.1:
Fig. 4.1: Posición del prefijo cíclico respecto a un símbolo OFDM
De esta forma, la señal que se transmite se vuelve periódica, lo que juega un papel decisivo para evitar la ISI y la ICI, aunque, como ya se comentó, conlleva una reducción en la relación señal a ruido (eficiencia).
Un esquema de un sistema OFDM en banda base sería el mostrado en la Fig. 4.2
Desarrollo de un simulador DVB-T2 en Simulink 67
Fig. 4.2: Esquema general de un sistema con modulación OFDM
Para este tipo de sistemas tendremos en cuenta las siguientes suposiciones:
• El uso de un prefijo cíclico.
• La respuesta impulsiva del canal será menor que el prefijo cíclico.
• El transmisor y el receptor estarán perfectamente sincronizados.
• El canal va a introducir ruido complejo, aditivo y Gaussiano.
• El desvanecimiento será lo suficientemente lento como para considerarlo constante en la duración de un símbolo OFDM.
La dificultad de realizar un análisis teórico completo de un sistema OFDM hace que sea imposible abordarlo completamente a un nivel adecuado en este documento. Por ello, usaremos modelos simplificados que nos permitan un análisis más simple sin pérdida de resultados. Se suelen clasificar estos modelos en dos tipos diferentes: sistemas de tiempo continuo y sistemas de tiempo discreto.
4.2.1.- Modelo en tiempo Continuo
Los primeros sistemas OFDM no empleaban modulación ni demodulación digital. Por ello, el modelo de tiempo continuo para OFDM puede ser considerado como el sistema OFDM ideal, que en la práctica es sintetizado digitalmente.
Desarrollo de un simulador DVB-T2 en Simulink 68
Fig. 4.3: Esquema del modelado de un sistema OFDM en tiempo continuo
Prestaremos poca atención a este tipo de modelo al no estar muy en consonancia con el resto del trabajo.
4.2.2.- Modelo en tiempo discreto
En la siguiente Figura (Fig. 4.4) mostramos un modelo en tiempo discreto completo de un sistema OFDM. Comparado con el modelo en tiempo continuo, la modulación y la demodulación se realizan mediante una IDFT y una DFT, respectivamente. El canal es modelado con una convolución discreta. El prefijo cíclico realiza la misma función ya comentada de mantener la ortogonalidad, de la misma forma que en tiempo continuo. La principal diferencia estriba en que las integrales del modelo analítico se sustituirían por sumas.
Fig. 4.4: Esquema de un sistema OFDM en tiempo discreto
Desde el punto de vista del receptor, el uso del prefijo cíclico más largo que el canal transforma la convolución lineal en una convolución cíclica con el canal. Denotando la convolución cíclica como , podemos escribir el sistema OFDM completo como:
yl = DFT(IDFT(xl) gl + kl) = DFT(IDFT(xl) gl + nl)
Desarrollo de un simulador DVB-T2 en Simulink 69
Donde yl contiene los N puntos de datos recibidos, xl los N puntos de la
constelación que se han transmitido, g la respuesta al impulso del canal ( con zero–
padding si es necesario para obtener la longitud N), y nl es el ruido del canal.
4.2.3.- Imperfecciones
Dependiendo de la situación que se analice, las imperfecciones de un sistema real OFDM deben ser ignoradas o explícitamente incluidas en el modelo. A continuación, mencionaremos algunas de estas imperfecciones así como sus correspondientes efectos
Dispersión
Tanto la dispersión en tiempo como en frecuencia pueden destruir la ortogonalidad del sistema, ya que éstas introducen ISI y/o ICI. Si estos efectos no son lo suficientemente irrelevantes, debido por ejemplo a la inclusión de un prefijo cíclico o a un gran espaciamiento entre portadoras, deberán ser incluidos en el modelo. Una forma de modelar esto sería incrementando la potencia de ruido aditivo.
;o linealidades
Los sistemas OFDM tienen una gran relación potencia de pico a potencia media (PAPR) y son muy exigentes en cuanto a linealidad en los amplificadores de potencia. Las no linealidades en los amplificadores causan tanto ISI como ICI en el sistema, especialmente si los amplificadores no se diseñan para un back-off (OBO, relación entre la potencia de salida y la potencia de salida en saturación) adecuado.
Interferencia externa
Tanto los sistemas basados en cable como los inalámbricos están sujetos a interferencias externas. Para el caso inalámbrico, la interferencia suele provenir de otras transmisiones y equipamiento electrónico situado en la vecindad del propio del sistema. Para los sistemas sobre soporte físico, lo más común será encontrarnos con el crosstalk. En cualquier caso, la interferencia suele modelarse como ruido coloreado.
Desarrollo de un simulador DVB-T2 en Simulink 70
Ruido de fase de portadoras
Es causado por las imperfecciones de los osciladores del transmisor y del receptor. Para canales selectivos en frecuencia, la rotación de fase que introduce esta anomalía es indistinguible de las rotaciones de fase de un error de temporización.
Se puede demostrar que la degradación de la SNR se puede aproximar por:
Donde W representa el ancho de banda y la SNR. Nótese que la degradación
aumenta con el número de portadoras. Las rápidas variaciones de la fase de ruido pueden provocar graves problemas.
4.2.4.- Sincronización
Uno de los argumentos en contra de OFDM es que este tipo de modulación es muy sensible a los errores de sincronización, en particular, a los errores de sincronización en frecuencia.
4.2.4.1.- Sincronización de Símbolos
En los sistemas OFDM se presta una enorme atención a la sincronización de símbolos. No obstante, desde que se usa el prefijo cíclico, los requerimientos temporales se han relajado bastante. El objetivo no es otro que el de saber cuando un símbolo empieza. Un offset en tiempo origina una rotación de fase en las subportadoras que será mayor en los extremos de la banda de frecuencia. Si el error en tiempo es lo bastante pequeño para mantener la respuesta impulsiva del canal dentro del prefijo cíclico, se mantendrá la ortogonalidad del sistema. En este caso, un retraso en el tiempo del símbolo puede verse como un desplazamiento en fase introducido por el canal y las rotaciones de fase podrán ser estimadas mediante los estimadores de canal. Por otra parte, si el error en tiempo es mayor que el prefijo cíclico entonces aparecerá interferencia intersímbolos.
Desarrollo de un simulador DVB-T2 en Simulink 71
Existen, principalmente, dos métodos relacionados con la sincronización en tiempo: basado en las portadoras pilotos o basado en el código cíclico.
Para el primero tenemos un algoritmo sugerido por Warner and Leung [6]. Ellos usaron un esquema en el que la señal OFDM era transmitida usando una modulación en frecuencia (FM). El transmisor codifica un número reservado de subportadoras con una amplitud y fase conocida. Esta técnica de sincronización, con algunas modificaciones, es aplicable a señales OFDM transmitidas por modulación de amplitud (AM). Este algoritmo consta de tres fases: detección de potencia, sincronización “gruesa” y sincronización “fina”.
En la primera fase, se detecta si hay o no señal OFDM midiendo la potencia recibida y comparándola con un valor umbral. La segunda fase se usa para adquirir alineación de sincronismo dentro de ± 0.5 muestras. Este desarrollo no es aceptable, pero esta fase sirve para simplificar el algoritmo de rastreo. La sincronización “gruesa” se realiza correlacionando la señal recibida con una copia de la sincronización de la señal trasmitida. En la última fase de la sincronización, las subportadoras con pilotos son ecualizadas con los estimadores de canal obtenidos de los pilotos. Desde que la segunda fase garantiza que el error en tiempo sea menor que ± 0.5, la respuesta impulsiva del canal cae dentro del prefijo cíclico.
También existen algoritmos de sincronización basados en el prefijo cíclico. En el estudio de P.J Tourier, R. Monrier y P. Lopez, Multicarring [7], la diferencia entre las muestras recibidas y las espaciadas N muestras, r(k) – r(k + N), debe ser pequeña. De no ser así, la diferencia tendría el doble de potencia y, por tanto, en promedio, sería mucho mayor. Encerrando esta diferencia en una ventana rectangular de la misma longitud que el prefijo cíclico, la señal de salida tendría un mínimo en el comienzo del símbolo OFDM.
La sincronización en el enlace ascendente es mucho más difícil que en el descendente. Esto es debido a que tiene que existir una separación de tiempo para cada usuario.
4.2.4.2.- Sincronización de la frecuencia de muestreo
La señal en tiempo continuo recibida es muestreada en instantes determinados por el reloj del receptor. Hay dos métodos para tratar la falta de ajuste en la frecuencia de muestreo. En sistemas sincronizados por la tasa de muestreo, un algoritmo controla el VCO (Voltage Controlled Oscillator) para alinear el reloj del receptor con el reloj del transmisor. El otro método que se aplica es para sistemas no sincronizados por la tasa de muestreo, en los que la tasa de muestreo permanece fija, y que además requiere un post
Desarrollo de un simulador DVB-T2 en Simulink 72
procesado en el dominio digital. El efecto del offset de frecuencia es doble: la componente de señal útil es rotada y atenuada y, además, se introduce ICI (interferencia inter-portadora). Los sistemas no sincronizados por la tasa de muestreo son mucho más sensibles al offset de frecuencia en comparación con los sistemas sincronizados por la tasa de muestreo. Además, en estos sistemas la degradación (en dB) debido al offset de la frecuencia de muestreo depende del cuadrado del índice de la portadora y del cuadrado del offset de frecuencia.
4.2.4.3.- Sincronización de la frecuencia de portadora
El offset de frecuencia se origina por diferencias en los osciladores del transmisor y del receptor así como por la fase del ruido introducidos por canales no lineales. Hay dos efectos destructivos causados por el offset de la frecuencia de la portadora en sistemas OFDM. Uno es la reducción de la amplitud de la señal y el otro es la introducción de ICI debido a otras portadoras (ver Fig. 4.5). Esto último es causado por la pérdida de ortogonalidad entre subportadoras. Un sistema multiportadora es mucho más sensible que un sistema de una única portadora. Llamando al offset de
frecuencia de portadora, normalizada por el espaciado entre subportadoras, como ∆f=
donde ∆F es el offset de frecuencia y N el número de subportadoras. La degradación D (en dB) puede aproximarse como:
D (dB) ≈ (π∆f)2 = (π )2
Nótese que la degradación se incrementa con el cuadrado del número de subportadoras, si ∆F y W permanecen fijos.
Desarrollo de un simulador DVB-T2 en Simulink 73
Fig. 4.5: Efectos del offset de frecuencia ∆F: reducción de la amplitud de la señal () y la
interferencia entre portadoras (•)
4.2.5.- Estimación de canal
La modulación puede ser clasificada como diferencial o coherente. Cuando usamos modulación diferencial, no hay necesidad de estimar el canal ya que la información es codificada como la diferencia entre dos símbolos consecutivos. Esta es una técnica común en sistemas inalámbricos, en los que no se necesita estimar el canal, reduciendo, de esta forma, la complejidad del receptor. La modulación diferencial es usada en los estándares de DVB. Los inconvenientes es el aumento de 3 decibelios en la potencia de ruido y la incapacidad de usar constelaciones de multiamplitud eficientes.
Una alternativa interesante a la modulación coherente es la modulación de amplitud diferencial y desplazamiento de fase (DAPSK, Differential Amplitude and Phase Shift Keying) donde se consigue una mayor eficiencia espectral empleando un código diferencial de amplitud. Esto requiere una distribución no uniforme de amplitud. La modulación coherente, no obstante, permite constelaciones de señales arbitrarias y se utiliza para sistemas cableados, donde el canal difícilmente varía en el tiempo.
Tenemos, principalmente, dos problemas en el diseño de los estimadores de canal para sistemas inalámbricos OFDM. El primero de ellos es la elección de cuántos pilotos se deben transmitir; esta información de los pilotos es necesaria como referencia para la estimación del canal. El segundo problema radica en el diseño de estos estimadores con poca complejidad y que tengan buena capacidad para el “rastreo” de los canales. Estos dos problemas están interconectados, ya que el funcionamiento del estimador depende de cuantos pilotos sean transmitidos.
Desarrollo de un simulador DVB-T2 en Simulink 74
4.2.5.1.- Información de pilotos
Los estimadores de canales necesitan la información de las portadoras pilotos como puntos de referencia. Un canal con desvanecimiento requiere un “rastreo” constante, por los que las portadoras pilotos se deben transmitir de manera continua. Una manera eficiente de permitir una actualización constante de la estimación del canal es transmitir pilotos en lugar de datos en posiciones específicas de los símbolos OFDM. Un ejemplo de ésto lo podemos ver en la Fig. 4.6 donde se muestran tanto las portadoras continuas como las dispersas.
Fig. 4.6: Ejemplo de transmisión de información de pilotos
En general, un canal con desvanecimiento puede ser visto como una señal de dos dimensiones (tiempo y frecuencia) en la que se muestrea en las posiciones de las portadoras pilotos y en el que las atenuaciones entre pilotos son estimadas mediante interpolación.
4.2.5.2.- Diseño del estimador
Asumiendo que se ha elegido el patrón de las portadoras pilotos, el estimador de canal óptimo lineal, en términos de error cuadrático medio (MSE, mean-squared error), se comporta como un filtro Wiener de dos dimensiones. Conociendo las propiedades estadísticas del canal, los estimadores pueden diseñarse empleando técnicas estándares. La combinación de una alta velocidad de datos y una BER (Bit Error Rate) necesitan estimadores con poca complejidad y una alta precisión. No obstante, ambas características son incompatibles. Muchos estimadores con una gran precisión, como los
Desarrollo de un simulador DVB-T2 en Simulink 75
filtros Wiener de dos dimensiones, tienen una gran carga computacional; mientras que los estimadores con baja complejidad, por lo general, tiene una estimación menos exacta. Por tanto, el objetivo es encontrar un equilibrio entre complejidad y precisión.
Desarrollo de un simulador DVB-T2 en Simulink 76
5.- MATLAB Y SIMULINK
5.1.- Matlab
5.1.1.- Introducción
Matlab es un programa de gran aceptación en la Ingeniería destinado a realizar cálculos técnico-científicos y de propósito general. En él se integran operaciones de cálculo, visualización y programación, donde la interacción con el usuario emplea una notación matemática clásica.
Los usos y aplicaciones típicas de Matlab son las siguientes:
Matemáticas y cálculo.
Desarrollo de algoritmos.
Adquisición de datos.
Modelación, simulación y prototipado.
Análisis y procesado de datos.
Gráficos científicos y de ingeniería.
Desarrollo de aplicaciones.
El tipo de variable con el que trabaja Matlab es una matriz que no requiere ser dimensionada previamente en la declaración. Una de las características más interesantes consiste en que el álgebra lineal y matricial se expresa con la misma sintaxis que las operaciones aritméticas escalares. Por ejemplo, en lenguaje C, para realizar la suma de dos variables enteras o reales b y c, escribiremos:
a = b + c;
mientras que en Matlab emplearemos la misma sentencia tanto si b y c son enteros, reales, vectores o matrices.
Desarrollo de un simulador DVB-T2 en Simulink 77
5.1.2.- Componentes de Matlab
Matlab consta de cuatro partes fundamentales:
• Entorno de desarrollo. Se trata de un conjunto de utilidades que permiten el uso de funciones de Matlab y ficheros en general. Muchas de estas utilidades son interfaces gráficas de usuario. Incluye el espacio de trabajo Matlab y la ventana de comandos.
• La librería de funciones matemáticas Matlab. Se trata de un amplio conjunto de algoritmos, comprendiendo las funciones más elementales, como la suma, senos y cosenos o la aritmética compleja, hasta funciones más sofisticadas como la inversión de matrices, el cálculo de autovalores y transformadas rápidas de Fourier.
• Gráficos. Matlab dispone de un conjunto de utilidades destinadas a visualizar vectores y gráficas en forma de gráficos. Existe una gran cantidad de posibilidades para ajustar el aspecto de los gráficos, destacando la visualización tridimensional con opciones de iluminación y sombreado, y la posibilidad de crear animaciones.
• El interfaz de aplicación de Matlab (API). Consiste en una librería que permite escribir programas ejecutables independientes en C y otros lenguajes, accediendo, mediante DLLs, a las utilidades de cálculo matricial en Matlab.
La gestión de complementos en Matlab se realiza mediante lo que se denomina toolboxes, (paquetes de herramientas). Un toolbox de Matlab es un conjunto de funciones y algoritmos de cálculo especializados en un área de conocimiento: finanzas, tratamiento de señales, teoría de sistemas, etc.
5.1.3.- El entorno de trabajo de Matlab
5.1.3.1.- Ayuda en línea
Si se ha instalado la opción correspondiente durante la instalación de Matlab, podemos acceder a la ayuda en línea en todo momento pulsando la tecla F1. Dicha
Desarrollo de un simulador DVB-T2 en Simulink 78
documentación está organizada con un índice en forma de árbol y mediante herramientas de navegación como hipervínculos. Es sumamente recomendable su uso, tanto a modo de introducción como de referencia para temas específicos. Si se desea conocer documentación específica asociada a un comando de Matlab, entonces se tecleará:
>> doc nombre_del_comando
en la línea de comandos de Matlab.
5.1.3.2.- Organización de ventanas
La Figura 5.1 muestra la organización por defecto de ventanas que nos encontramos cuando arrancamos Matlab por primera vez. Las ventanas que en ella aparecen son, de arriba hacia abajo: en la parte izquierda, la estructura del directorio donde nos encontramos, y debajo de ella la historia de comandos que se han tecleado en el pasado; en la mitad derecha nos encontramos, arriba, la ventana de edición de programas Matlab (que se escriben en un lenguaje propio de Matlab y que se almacenan en ficheros .m), y debajo la línea de comandos, donde se sitúa el cursor pata teclear comandos de Matlab.
Fig. 5.1: Entorno de trabajo Matlab
Desarrollo de un simulador DVB-T2 en Simulink 79
5.1.3.3.- Operaciones básicas en la línea de comandos
Como se ha dicho previamente, en Matlab todos los objetos son matrices. Un escalar no es más que una matriz 1x1. En la línea de comandos podemos asignar un nombre simbólico para identificar una matriz:
>> a = [15; 36; -12]; %Asignación
Esto es una asignación de un vector columna que llevará el nombre a. A su derecha aparece un comentario, que tiene su utilidad cuando redactemos programas en Matlab.
Los objetos pueden crearse en cualquier momento. Para ello, basta con asignarles un valor mediante una asignación, como en el ejemplo previo. Los identificadores asignados para designar matrices son de libre elección, con la salvedad de que no pueden empezar por un número ni contener espacios en blanco.
Una vez creado un objeto de Matlab, este pasa a formar parte del espacio de trabajo ocupando una porción de memoria. Por tanto, a veces, tras horas de trabajo con Matlab, necesitamos eliminar los objetos que ya no se utilicen. Para ello se emplea el comando clear.
>> clear a; % Borra a de la memoria
>> clear; % Borra todos los objetos del espacio de trabajo
En las sentencias previas, aparece el signo “;” al final de cada comando. Este comando sirve para separar unos comandos de otros. Por ejemplo, cuando escribimos varios comandos en una misma línea, estos deben estar separados por punto y coma. Además, si escribimos un comando aislado (sin “;”) y pulsamos ENTER, Matlab proporcionará siempre una salida en respuesta del comando.
Sin embargo, si escribimos el comando seguido de “;”, no se mostrará en pantalla la respuesta. Cuando los comandos forman parte de un programa, es conveniente emplearlo para evitar así desbordar la pantalla con información innecesaria.
Desarrollo de un simulador DVB-T2 en Simulink 80
5.1.3.4.- Operaciones básicas con Matlab
La siguiente tabla muestra las operaciones básicas aritméticas y lógicas que podemos realizar con Matlab
Expresión en Matlab Operación + Suma aritmética - Resta aritmética o cambio de signo * Multiplicación aritmética / División ^ Elevar un número a una potencia < Relación “menor que” > Relación “mayor que”
<= Relación “menor o igual que” >= Relación “mayor o igual que” == Relación “igual que” ~= Relación “distinto que” & Producto lógico | Suma lógica ~ Negación
Tabla 5.1: Operaciones aritméticas y lógicas en Matlab
Todas estas operaciones se aplican indistintamente a escalares, vectores y matrices.
5.1.3.5.- Funciones en Matlab
Buena parte de las operaciones que se realizan con Matlab son llamadas a funciones. Las funciones procesan información, por lo que poseen datos de entrada y de salida, que pueden ser matriciales. Los datos de entrada se especifican entre paréntesis; si son varios, éstos van separados por comas.
Las funciones son programas escritos por el usuario o incorporados en el paquete básico de Matlab. Entre estas últimas destacan las siguientes:
;ombre Función
sin Seno sinh Seno hiperbólico cos Coseno
Desarrollo de un simulador DVB-T2 en Simulink 81
cosh Coseno hiperbólico tan Tangente
tanh Tangente hiperbólica cot Cotangente
coth Cotangente hiperbólica sec Secante
sech Secante hiperbólica csc Cosecante
csch Cosecante hiperbólica asin Arcoseno (inversa del seno)
asinh Arcoseno hiperbólico (inversa del seno hiperbólico) acos Arcocoseno (inversa del coseno)
acosh Arcocoseno hiperbólico (inversa del coseno hiperbólico) atan Arcotangente (inversa de la tangente)
atan2 Arcotengente de cuatro cuadrantes
Tabla 5.2: Funciones Elementales de Matlab: Trigonometría
;ombre Función
exp Exponencial log Logaritmo natural (base e)
log2 Logaritmo base 2 log10 Logaritmo base 10 sqrt Raíz cuadrada
Tabla 5.3: Funciones Elementales de Matlab: Exponenciales
;ombre Función
fix Redondear hacia cero floor Redondear hacia menos infinito ceil Redondear hacia más infinito
round Redondear hacia el entero más próximo mod Módulo de la división entera rem Resto de la división entera
Tabla 5.4: Funciones Elementales de Matlab: Ajuste y redondeo
;ombre Función
inv Matriz inversa det Determinante eig Autovalores ‘ Matriz traspuesta
eye Crear una matriz identidad dado por el número de filas/columnas
Desarrollo de un simulador DVB-T2 en Simulink 82
zeros Crear una matriz de ceros dado por el número de filas/columnas ones Crear una matriz de unos dado por el número de filas/columnas
length Longitud de un vector size Dimensiones de una matriz
Tabla 5.5: Funciones Elementales de Matlab: Operaciones matriciales
5.1.3.6.- Almacenamiento en Archivo
Matlab permite almacenar en el disco las variables del espacio de trabajo. De este modo es posible parar una sesión de trabajo y continuar en otro momento sin tener que repetir los cálculos. La orden más común para salvar los datos es save, que puede usarse de varias maneras. En la siguiente tabla mostramos un resumen:
Orden Operación realizada
save Crea el archivo de nombre matlam.mat en la carpeta actual. Dicho archivo contiene todas las variables que existen en ese momento en el entorno de Matlab.
save nombre_archivo Crea el archivo de nombre nombre_archivo.mat en la carpeta actual. Dicho archivo contiene todas las variables que existen en ese momento en el entorno de Matlab.
save nombre_archivo x, y, z Crea el archivo de nombre nombre_archivo.mat en la carpeta actual. Dicho archivo contiene solamente las variables x, y y z.
Tabla 5.6: Tabla resumen del comando save
Para recuperar las variables almacenadas en un fichero previamente creado, emplearemos principalmente la orden load. La siguiente tabla ilustra tres operaciones típicas de recuperación de datos
Orden Operación realizada
load Lee todas las variables del archivo Matlab.mat de la carpeta actual. Si alguna de las variables del disco tiene nombre coincidente con otra que previamente existe en Matlab se producirá la destrucción de la variable existente para dejar su sitio a la variable del disco
Desarrollo de un simulador DVB-T2 en Simulink 83
load nombre_archivo Igual que en el caso anterior pero leyendo del archivo nombre_archivo.mat de la carpeta actual
load nombre_archivo x, y ,z Igual que en el caso anterior pero leyendo únicamente las variables x, y, z
Tabla 5.7: Tabla resumen del comando load
5.2.- Simulink
5.2.1.- Introducción
Simulink es una aplicación que permite construir y simular modelos de sistemas físicos y sistemas de control mediante diagramas de bloque. El comportamiento de dichos sistemas se define mediante funciones de transferencia, operaciones matemáticas, elementos de Matlab y señales predefinidas de todo tipo.
Simulink dispone de una serie de utilidades que facilitan la visualización, análisis y guardado de los resultados de simulación. Simulink se emplea profusamente en ingeniería de control.
Principalmente se trata de un entorno de trabajo gráfico con el que se especifican las partes de un sistema y su interconexión en forma de diagrama de bloques.
5.2.2.- Uso de Simulink
En primer lugar, lanzaremos la aplicación escribiendo Simulink en la línea de comandos de Matlab, a bien abriendo desde el explorador de Windows cualquier fichero con extensión .mdl. En el primer de los casos se abrirá la ventana de la Figura 5.2
Desarrollo de un simulador DVB-T2 en Simulink 84
Fig. 5.2: Ventana navegación de bloques Simulink
Esta ventana inicial no está destinada a crear modelos de simulación; su función principal consiste en navegar por la enorme librería de bloques disponibles para el modelado.
En ella distinguiremos dos partes: la izquierda contiene una visión en forma de árbol de todos los Toolboxes instalados que contienen bloques Simulink. La amplitud de este árbol dependerá de las opciones que hayamos activado al seleccionar Matlab.
La parte de la derecha de la ventana de Fig. 5.2 muestra los bloques Simulink contenidos en el Toolbox o nodo de la parte izquierda de la ventana. Estos bloques se deben arrastrar sobre el espacio de trabajo Simulink para la creación del modelo que queremos simular.
Por último, cabe indicar que en la parte superior de la ventana de inicio de Simulink hay varias herramientas como la búsqueda de un bloque determinado a partir de su nombre, que nos pueden resultar bastante útiles.
Desarrollo de un simulador DVB-T2 en Simulink 85
5.2.3.- El espacio de trabajo Simulink
Si pulsamos en el icono superior izquierdo de la ventana de Fig. 5.2 (página en blanco), se abre una ventana blanca sobre la que iniciaremos la creación de un modelo de simulación. Dicha ventana se puede ver en la Figura 5.3
Fig. 5.3: Espacio de trabajo de Simulink
En el espacio de trabajo de Simulink crearemos un modelo insertando los bloques correspondientes. Una vez localizado el bloque que nos interesa, arrastraremos dicho bloque hacia el espacio de trabajo de Simulink. El arrastre de bloques se realiza seleccionando el icono del bloque con el botón izquierdo del ratón, y manteniendo éste pulsado se desplazará el cursor hasta la ventana del modelo.
Una vez configurados los distintos bloques con los parámetros que necesitemos, tendremos que conectarlos entre ellos. Para ello emplearemos las siguientes operaciones:
Operación Procedimiento
Conectar Bloques (I) Para conectar las salidas de un bloque a la entrada de otro, hacer click con el botón izquierdo del ratón en el bloque origen. Pulsar y mantener la tecla CTRL y hacer de nuevo click sobre el botón destino
Conectar Bloques (II) También se puede extraer un cable de señal haciendo click en el saliente derecho del bloque origen y prolongar la señal (pulsando y manteniendo el botón izquierdo del ratón) hasta llegar a la parte izquierda del bloque destino.
Bifurcar cables Un cable de señal (que lleva la salida de un bloque hacia otro bloque), puede bifurcarse para distribuir la señal a varios bloques pulsando con el botón derecho en cualquier punto del cable
Tabla 5.8: Formas de conectar los bloques
Desarrollo de un simulador DVB-T2 en Simulink 86
5.2.4.- Fuentes y Sumideros de señal
En las simulaciones han de existir fuentes de señales externas ya que lo que pretendemos, en general, es ver cómo responden determinados sistemas a estímulos exteriores.
A modo de referencia, la tabla 5.9 muestra algunas fuentes de señal de uso común (nodo Simulink/Source), mientas que la tabla 5.10 muestra algunos de los bloques sumidero (Simulink/Sinks) más comunes
Elemento Función
Clock Marcas de tiempo de la simulación. Útil para trazar gráficas con los resultados
Sin Señal senoidal parametrizable Step Señal en escalón Constant Señal de valor constante Signal generator Permite elegir entre un conjunto de señales predefinidas Random Number Generación de ruido blanco configurable From Workspace Señal generada a partir de una variable del espacio de trabajo
de Matlab
Tabla 5.9: Fuentes de señal en Simulink
Elemento Función
Scope Gráfica 2D para visualizar las señales frente al tiempo durante la simulación
XY Graph Gráficas 2D para visualizar un gráfico X-Y creado a partir de dos señales de entrada
To Workspace Almacena las muestras de la señal de entrada en una variable (vector) del espacio de trabajo de Matlab
Tabla 5.10: Sumideros de señal en Simulink
Desarrollo de un simulador DVB-T2 en Simulink 87
6.- SIMULACIÓN
6.1.- Introducción
Como ya comentamos en la Introducción inicial y hemos venido repitiendo en Capítulos anteriores, el objetivo de este Proyecto Fin de Carrera es la Simulación de un sistema de comunicaciones basado en el nuevo estándar para la televisión digital, DVB-T2. Hasta ahora, en los Capítulos 2, 3, 4 y 5 nos hemos limitado a exponer una serie de conceptos necesarios para asimilar de una manera correcta el funcionamiento de un sistema de comunicaciones, con conceptos tan importantes como la de modulación ortogonal o la introducción a las distintas técnicas de transmisión digital promovidas por el organismo DVB.
La finalidad de este Capítulo será la de guiar al lector a través de la simulación que se ha llevado a cabo, utilizando la aplicación Simulink de Matlab.
En primer lugar, queremos ofrecer una visión general de nuestro esquema de simulación. Ya en una segunda etapa, realizaremos una distinción entre los bloques del transmisor y los del receptor, realizando en todo momento una comparación entre nuestro esquema y el propuesto en el estándar y explicando y detallando cada uno de los bloques que hemos empleado. Explicaremos, a su vez, todos y cada uno de los parámetros con los que hemos configurado los bloques.
Para finalizar el capítulo, mostraremos al lector los resultados que se han obtenido durante la simulación.
6.2.- Visión general
El esquema que hemos seguido a la hora de realizar la simulación se muestra en la Figura 6.1:
Desarrollo de un simulador DVB-T2 en Simulink 88
Fig. 6.1: Esquema general de modulación
Desarrollo de un simulador DVB-T2 en Simulink 89
Antes de empezar a comentar las principales características de los bloques que conforman el esquema seguido para la simulación del sistema de comunicaciones, queríamos dejar constancia del valor de los distintos parámetros que se han tenido en cuenta durante la elaboración de este proyecto:
• Período Elemental: T = 7/64 µs para sistemas de ancho de banda 8 MHz.
• Duración del Intervalo de Guarda: 256T.
• Tamaño de la FFT: 8k.
• Número de portadoras activas: 6817.
• Longitud de la trama T2: LF = 270 símbolos.
• Duración de la trama: TF = 250 ms.
• Modulación seguida: QPSK.
• Patrón de Pilotos: PP7.
• Duración de un símbolo: Ts = 924 µs.
Otra asunto a tener en cuenta, es que muchos de los bloques que hemos utilizado dependen de variables que hemos almacenado en un fichero (estos ficheros aparecerán posteriormente en un Anexo). Para que Simulink tenga en cuenta estos ficheros y cargue los mismos en Matlab, hemos proporcionado la ruta a Simulink para que al ejecutar el programa, realice la carga de estas variables automáticamente. Otra posible opción hubiera sido cargar nosotros mismos estos ficheros en Matlab mediante el comando conocido load.
A continuación, empezaremos a describir las principales características de los distintos bloques utilizados.
6.3.- Transmisor
Como todos sabemos, el transmisor de un sistema de comunicaciones es el conjunto de bloques encargados de generar las señales que van a propagarse a través del canal (en nuestro caso, hemos considerado un canal ideal durante el proceso de simulación) y que deben tener una serie de características en función del estándar de transmisión que estemos considerando.
Desarrollo de un simulador DVB-T2 en Simulink 90
La Figura 3.2 nos muestra el esquema general del transmisor, tal y como hicimos anteriormente con el esquema general.
Fig. 6.2: Esquema general del transmisor
A continuación, pasaremos a describir cada uno de los bloques que componen esta primera etapa del sistema de comunicaciones. Una cosa que iremos haciendo será la de comparar el esquema propuesto por el organismo que elaboró el estándar y el esquema que hemos seguido nosotros para realizar el proceso de simulación. En principio, las diferencias serán muy pequeñas.
6.3.1.- Generador de datos
Como su nombre bien indica, este bloque será el encargado de ir generando la señal de datos para un sistema basado en DVB-T2. Para ello, primero generaremos una señal de datos con el bloque “Random Integer”, para posteriormente actuar sobre ella como se muestra en la siguiente Figura:
Desarrollo de un simulador DVB-T2 en Simulink 91
Fig. 6.3: Esquema del Generador de datos
El esquema propuesto por el estándar es el siguiente:
Fig. 6.4: Esquema del Generador de datos propuesto por el estándar
Pasamos a estudiar cada uno de los bloques que conforman el Generador de datos.
6.3.1.1.- Generador de los datos
Este bloque, “Random Integer Generator”, será el encargado de generar la señal que posteriormente enviaremos por el canal de transmisión.
Los parámetros que hemos utilizado para este bloque son los siguientes:
• M-ary ;umber: indica el rango de valores del vector de salida. En nuestro caso, como vamos a implementar una señal QPSK, este valor será 4.
• Initial Seed: Las señales generadas por este bloque necesitan un valor con el que generar los datos. Realmente con este bloque obtenemos datos
Desarrollo de un simulador DVB-T2 en Simulink 92
pseudo aleatorios. Por tanto para este campo no existe un valor predeterminado.
• Sample Time: Con este valor indicamos el período de muestreo de nuestra señal. El valor que nosotros hemos utilizado lo hemos obtenido de la siguiente manera. Nos dice el estándar que la duración de un símbolo de datos para una modulación OFDM de 8k para sistemas de ancho de banda de 8 MHz es de 896 µs. Esta operación sale de multiplicar el número de portadoras del símbolo OFDM, en nuestro caso, 8192 por el valor del período elemental, que como vimos anteriormente, en nuestro caso es de T = 7/64 µs (8192 * T = 896 µs). Por otra parte, hemos tomado el valor del intervalo de guarda como 1/32. De esta manera, la duración del símbolo total es de 896 µs + 1/32 veces esta duración, es decir, 924 µs. Para obtener el periodo de muestreo, tendremos que dividir el tiempo de duración total del símbolo por el número de datos que se vayan a enviar, en nuestro caso, como veremos posteriormente, es de 3948. Todo esto nos lleva a que nuestro periodo de muestro es de 924e-6/3948.
• Frame-based outputs: Para la generación de señales OFDM en Simulink necesitamos medirlas en tramas. Por ello, deberemos marcar esta opción.
• Samples per Time: Es el número de muestras que se transmiten en cada trama. El estándar nos dice que tenemos que utilizar tramas de 188 bytes. Nosotros generaremos, simultáneamente, 21 bloques de 188 bytes, es decir, nuestro valor para este campo será el de 21*188 = 3948. El motivo es el siguiente: necesitamos a la entrada del bloque del codificador BCH, que se verá más adelante, 32208 bits. Si pasásemos los 188 bytes a bits obtendríamos 1504 bits, lo cual es insuficiente. Tendríamos que añadir un buffer que almacenase los bits hasta llegar a ese valor, lo cual provocaría en el sistema retrasos innecesarios. Es por ello por lo que hemos optado por la primera solución.
• Output data type: Como para este primer bloque no nos hace falta precisión, hemos usado uint8.
Desarrollo de un simulador DVB-T2 en Simulink 93
6.3.1.2.- Integer to Bit Converter
Como su nombre indica, este será el bloque encargado de pasar de bytes a bits. Sus parámetros son:
• ;umber of bits per Integer: Como ya hemos dicho, queremos pasar de bytes a bits, luego este valor tiene que ser 8.
• Output data type: Como posteriormente necesitamos trabajar a nivel de bits, su salida será de tipo boolean.
6.3.1.3.- CRC-N Generator
El estándar DVB-T2 especifica que debemos incluir en la generación de la señal un algoritmo que permita comprobar la fiabilidad y la no alternación de los datos. Aquí es donde entra nuestro “CRC-N Generator”. No obstante, no en todos los casos tiene que utilizarse este algoritmo.
Sabemos que existen en DVB-T2, hasta cuatro opciones para el formato de la señal de entrada. Son:
• Transporte en cadena (Transport Stream, TS), caracterizado por tamaño fijo de los paquetes de usuario, de 188 x 8 bits, donde el primer byte es un byte de sincronismo.
• Encapsulado Genérico de cadenas (Generic encapsulated Stream, GSE), caracterizado por una longitud variable de los paquetes de usuario.
• Cadenas continuas genéricas (Generic Continuous Stream, GCS), que al igual que en el caso anterior, también presenta una longitud variable de paquetes.
• Cadenas genéricas de longitud fija de paquetes (Generic Fixe-length Packetised Stream, GFPS). Se diferencia del primer caso en que los paquetes de usuario pueden tomar valores de hasta 64K.
Nosotros, para la simulación, nos hemos decantado por la primera de las opciones, es decir, por TS. Sólo para esta opción, se ha definido el uso del algoritmo CRC.
De acuerdo a lo establecido por el estándar, los campos de este bloque son los siguientes:
Desarrollo de un simulador DVB-T2 en Simulink 94
• CRC method: Como hemos comentado, el estándar recoge que sea CRC-8. El polinomio generador utilizado, de acuerdo con el estándar es: G(x) = x8 + x7 + x6 + x4 + x2 + 1.
• Inital States: Se inicializan los registros internos con valor cero.
• Checksums per Frames: Es el número de comprobaciones que se realiza por trama. Nosotros le hemos dado a este campo el valor 1.
6.3.1.4.- Base Band (BB) Header Insertion
El estándar recoge que tiene que añadirse una cabecera en banda base para describir el formato de los datos que se transmiten. Esta cabecera tendrá una longitud fija de 10 bytes, o lo que es lo mismo, una longitud de 80 bits.
Los campos de esta cabecera son los siguientes:
• MATYPE (2 bytes): describe el formato de la cadena de entrada.
Primer byte
o Campo TS/GS (2 bits), define el formato de la cadena de entrada: GFPS(00), TS(11), GCS(01) o GSE(10)
o Campo SIS/MIS (1 bit), si se transmite una única portadora (1) o múltiples portadoras (0).
o Campo CCM/ACM (1 bit), si es codificación y modulación constante (1) o si es codificación y modulación variable (0).
o ISSYI (1 bit), es el indicador de sincronización de la cadena de entrada: 1 si está activo y 0 si no lo está.
o ;PD (1 bit), para indicar si está activo el borrado de paquetes vacíos: 1 si está activo, 0 si no lo está
o EXT (2 bits): para uso futuro. Se ponen a cero.
Segundo byte
Sólo se usa cuando el campo ISI/MIS = 0. En caso contrario, está reservado para un uso futuro.
Desarrollo de un simulador DVB-T2 en Simulink 95
Así, el valor de campo MATYPE en nuestro caso será: 1111000000000000.
• UPL (2 bytes): Indica la longitud del paquete de usuario en bits. En nuestro caso es de 188 bytes, por tanto: 0000001011110000.
• DFL (2 bytes): Indica la longitud del campo de datos en bits. En nuestro caso son 3948 bytes: 1111011011000000.
• SY;C (1 byte): Copia del sincronismo de byte: 01000111 (47HEX).
• SY;CD (2 bytes): 0000000000000000. Indica que la trama está alineada con el comienzo de los datos.
• CRC-8 MODE (1 byte). CRC-8 detecta errores en los primeros 9 bytes de la cabecera. Toma el valor: 00000000.
La cabecera se le añade a la trama de datos a través del bloque de Simulink “Vector Concatenate”.
6.3.1.5.- Vector Concatenate
Como hemos comentado anteriormente, este bloque se usa para concatenar la cabecera en banda base con la trama de datos.
Los parámetros usados son:
• ;umber of inputs: Con este campo indicamos el número de vectores a concatenar. En nuestro caso, obviamente, son 2.
• Mode: Indicamos el tipo de concatenación que se llevará a cabo. Nosotros hemos tomado Mutidimensional Array
• Concatenate dimensión: Una vez se ha realizado la concatenación, queremos que nos quede un único vector. Por eso el valor dado a este campo es 1.
Desarrollo de un simulador DVB-T2 en Simulink 96
6.3.1.6.- Zero Pad
Ya hemos comentado con anterioridad que a la entrada del codificador BCH necesitábamos 32208 bits. Una vez que hemos añadido la cabecera en banda base a la trama de datos, la señal que tenemos tiene una longitud de 31672 bits, algo lejos de los 32208 bits que hemos dicho que necesitamos. Por tanto, nos hace falta un bloque que nos aporte esta diferencia.
Esta es la función del “Zero Pad”. Añade una cantidad extra, bien de ceros o bien de unos, a la señal que tiene a la entrada.
Los parámetros utilizados son los siguientes:
• Pad over: Como trabajamos con vectores columnas, el valor de este campo no puede ser otro que Columns.
• Pad value source: Nos interesa indicarle dónde queremos que nos añada la información “extra”. Por ello seleccionamos la opción Especify via
dialog.
• Pad Value: Queremos que añada ceros.
• Output column mode: Con este parámetro le indicamos la cantidad de ceros que tiene que añadir. Hay dos opciones: o bien añade cero hasta la siguiente potencia de dos o bien le especificamos hasta qué valor tiene que añadir datos. Elegimos la segunda opción, luego marcamos User-
specified.
• Column size: Esta opción sólo aparece cuando en el campo anterior hemos marcado la segunda opción. Con este parámetro indicamos la longitud de la señal que queremos a la salida. Nosotros, como ya hemos comentado, ponemos 32208.
• Pad signal at: Indica el lugar dentro de la trama donde queremos añadir los ceros. Nos interesa tenerlos al final, por lo que hemos marcado la opción End.
• Action when truncation occurs: En este caso, como estamos seguros de que no se va a producir, marcamos ;one.
Desarrollo de un simulador DVB-T2 en Simulink 97
6.3.1.7.- Scrambler
Se utiliza para aleatorizar la BBRAME. La secuencia de aleatorización estará sincronizada con la BBFRAME, comenzando por el bit más significativo y terminando después del bit Kbch.
El polinomio para pseudo aleatorizar la secuencia binaria viene dado por: G(x)=1 + x14 + x15. Por otra parte, precargamos los registros internos del bloque con la secuencia: 100101010000000.
Los parámetros utilizados son:
• Calculation base: será 2, ya que estamos trabajando en binario.
• Scramble polynomial: en este parámetro introducimos el polinomio en binario. Así tendremos: 1100000000000001.
• Initial states: es la condición inicial para los registros internos. Como ya hemos dicho, le damos el siguiente valor: 100101010000000.
Con este bloque, finaliza esta primera etapa del transmisor.
6.3.2.- Codificación y Modulación de datos
Durante esta segunda etapa del transmisor, la señal generada con anterioridad es sometida a distintos procesos de codificación con el objetivo de dotarla de una mayor robustez. Una vez la señal ha sido codificada, procederemos a su modulación (en nuestro caso, como ya indicamos anteriormente, se tratará de una modulación QPSK), para posteriormente aplicar sobre la misma distintos procesos de entrelazado. Así, si existe una ráfaga de datos erróneos, con los diferentes procesos de entrelazado que se aplican sobre la señal, podremos dispersar estos datos con el objetivo de que no afecten únicamente a un símbolo.
El esquema que hemos seguido en esta segunda etapa es el siguiente:
Desarrollo de un simulador DVB-T2 en Simulink 98
Fig. 6.5: Esquema de la etapa Codificación y Modulación de datos
Comparándolo con el esquema propuesto en el estándar, vemos que ambos son muy parecidos.
Fig. 6.6: Esquema de Codificación y Modulación de datos propuesto por el estándar
6.3.2.1.- Codificación FEC
Cada BBFRAME transmitida (Kbch bits) será procesada por un subsistema de codificación FEC (BCH/LDPC) para generar una FECFRAME (Nldpc bits). Los bits de comprobación de paridad (BCHFEC), introducidos por el codificador BCH se añadirán después de la BBFRAME, mientras que los bits de comprobación de paridad (LDPCFEC) generados por el codificador LDPC se añaden detrás del campo BCHFEC. La Fig.6.7 muestra el formato de la trama una vez llevada a cabo la codificación.
Fig. 6.7: Formato de los datos antes de la etapa de modulación
Desarrollo de un simulador DVB-T2 en Simulink 99
6.3.2.1.1.- Codificación BCH
Como acabamos de comentar, todas las tramas BBFRAME deben pasar por el codificador BCH, generándose una serie de bits de comprobación de paridad que permitirán al sistema comprobar si han existido errores durante la transmisión. En nuestro caso, el estándar define que para una tasa de código LDPC igual a 1/2, que es el que nosotros hemos utilizado, el codificador BCH genera 192 bits de comprobación de paridad, que se añadirán al final de la trama de datos. Así a la salida de este bloque tendremos una señal de 32400 bits.
Los parámetros que hemos utilizado han sido:
• Generator Polynomial Vector: Como su nombre indica, debemos indicar en este campo cuál es el polinomio generador. Este polinomio viene definido en el estándar.
6.3.2.1.2.- Codificación LDPC
Este bloque es muy similar al visto anteriormente. Su función es la de generar bits de comprobación de paridad, que se añadirán al final de la trama, que permiten conocer al sistema si se han producido errores durante la transmisión.
Para este bloque, nos hemos apoyado en una serie de funciones que ya venían implementadas en Matlab (versión R2007b). De esta forma, sólo hemos tenido que llamar a la función, pasándole la tasa de codificación LDPC que hemos empleado durante la simulación (en nuestro caso 1/2).
Parámetros utilizados:
• Parity-check Matrix: Como acabamos de comentar, llamamos en este campo a la función ya recogida en Matlab, pasándole el valor adecuado de la tasa de codificación LDPC: dvbt2ldpc (1/2).
Desarrollo de un simulador DVB-T2 en Simulink 100
6.3.2.2.- Bit to Integer Converter
A partir de este bloque queremos trabajar a nivel de símbolos transmitidos y no de bits como lo veníamos haciendo con anterioridad. Por tanto, la finalidad que presenta este bloque es, sencillamente, la de pasar de bits a símbolos. Para ello, sólo será necesario tener en cuenta la modulación que va a seguirse durante la simulación.
Los parámetros que deberán tenerse en cuenta son los siguientes:
• ;umber of bits per Integer: Como ya hemos dicho, queremos pasar de bits a símbolos, luego en nuestro caso este valor tiene que ser 2.
• Output data type: En cuanto al tipo de salida de este bloque, dado que estamos seguros que todos van a ser enteros positivos, ponemos uint8.
6.3.2.3.- Modulación
Este bloque “General QAM Modulator” será el encargado de llevar a cabo la modulación de nuestra señal para convertirla en una señal QPSK. Los parámetros utilizados han sido:
• Signal Constellation: Le damos a este campo las posiciones para una constelación QPSK, ya normalizada, de acuerdo al mapeado indicado en el estándar.
• Output data type: Como los datos pueden ser flotantes y de gran longitud, elegimos la opción double.
La constelación que se recibirá tendrá que ser:
Fig. 6.8: Esquema de la constelación transmitida
Desarrollo de un simulador DVB-T2 en Simulink 101
6.3.2.4.- Entrelazado de célula
El pseudo aleatorio entrelazado de células, ilustrado en la Fig. 3.13, dispersa uniformemente las células de la FEC para asegurar en el receptor una distribución no correlada de posibles distorsiones de canal y de interferencias que hayan incidido sobre la FEC.
Para llevar a cabo este proceso, utilizaremos un bloque general de entrelazado, “General Block Interleaver”, al que le pasamos la variable en la que hemos almacenado el vector de entrelazado utilizado y que hemos desarrollado de acuerdo al algoritmo que aparece recogido en el estándar y que incluiremos más adelante en el Anexo. Este bloque lo que hace es reordenar el vector de la entrada de acuerdo al parámetro que se le pasa.
6.3.2.5.- Entrelazado en Tiempo
Su función es muy similar a la del Entrelazado de células, ya que el objetivo de este bloque es impedir que un símbolo de la trama se vea completamente afectado por un error.
El bloque tiene que actuar de la siguiente forma:
Fig. 6.9: Entrelazado en Tiempo
Desarrollo de un simulador DVB-T2 en Simulink 102
Para conseguir que nuestro bloque de Simulink realice la misma función, nos hemos apoyado en el bloque “Matriz Deinterleaver”. Este bloque almacena el vector de entrada en una matriz por columnas y saca el vector de salida fila a fila.
Los parámetros que tenemos que utilizar para este bloque también son facilitados por el estándar DVB-T2. Así para un número de células de 32400 por bloque LDPC, necesitaremos un número de filas, Nr, igual a 6480.
Los parámetros del bloque son los siguientes:
• ;umber of Rows: que como hemos dicho viene dado por el estándar, siendo en nuestro caso 6480.
• ;umber of Columns: este dato es fácilmente calculable con los datos que ya sabemos. Si el número de células a meter en la matriz es de 32400 y tenemos 6480 filas, el número de columnas vendrá dado por 32400/6480 = 5.
Con este bloque ya tenemos finalizado la etapa de Codificación y Modulación de datos. Ya a partir de este momento, tenemos nuestra señal generada en la primera etapa perfectamente codificada, modulada y entrelazada, de forma que evitamos que los errores se propaguen por un solo símbolo.
6.3.3.- Adición de Portadoras Pilotos
Ya hemos hablado con anterioridad de las portadoras pilotos. Como sabemos, las portadoras pilotos son portadoras dentro del símbolo OFDM moduladas con información de referencia cuyos valores son conocidos por el receptor.
La finalidad de estas portadoras es la de ser usadas para sincronización de trama, sincronización en frecuencia, sincronización en tiempo, estimación del canal y/o para la identificación del modo de transmisión.
En este punto veremos cómo se generan estas portadoras y cómo se añaden al resto de datos del símbolo.
El esquema que seguiremos durante todo este aparatado es el siguiente:
Desarrollo de un simulador DVB-T2 en Simulink 103
Fig. 6.10: Esquema de Adición de pilotos
Como hemos venido haciendo hasta ahora, comparamos con el esquema propuesto por el estándar:
Fig. 6.11: Esquema del Generador de tramas propuesto por el estándar
El esquema propuesto por el estándar se correspondería con los dos primeros sub-bloques del nuestro, de ahí la diferencia existente, ya que nosotros incluimos en el esquema de Adición de Pilotos, parte de los sub-bloques que aparecerán en el esquema siguiente del estándar.
Desarrollo de un simulador DVB-T2 en Simulink 104
6.3.3.1.- Buffer
El objetivo de este Buffer es el de almacenar la información que le llega en forma de FEC, recordemos que eran 32400 símbolos, e ir sacando la información en tramas de 6698 símbolos. Esta cantidad (6698) es el número de portadoras activas en un símbolo OFDM. Por tanto, a partir de este sub-bloque, empezaremos a trabajar a nivel de símbolo OFDM.
Los parámetros utilizados son:
• Output Buffer size: Ya hemos dicho que este valor será 6698.
• Buffer Overlap: Queremos que la información salga por vectores pero que ésta no se repita. Por tanto, el valor de este campo será cero.
• Initial Conditions: se pondrá a cero, ya que no queremos que se transmita nada mientras el Buffer se llena.
6.3.3.2.- Entrelazado en Frecuencia
El objetivo del entrelazado en frecuencia, operando en las células de datos dentro de un símbolo OFDM, es mapear las células de datos procedentes del Buffer en las portadoras activas en cada símbolo. El procedimiento de este entrelazador ya fue explicado en el punto 3.8.1.
Para llevar a cabo esta función de manera adecuada, haremos uso del “General Block Interleaver”, cuyo funcionamiento ya se explicó en el punto 6.3.2.4.
Al igual que en el caso anterior, le pasamos una variable en la que hemos almacenado el vector de entrelazado. Dicho vector viene de la implementación del algoritmo fijado en el estándar y que se adjuntará posteriormente en el Anexo.
Desarrollo de un simulador DVB-T2 en Simulink 105
6.3.3.3.- Pilotos
Este sub-bloque será el encargado de generar las portadoras pilotos que posteriormente se añadirán a los símbolos de datos.
El esquema que hemos seguido para la generación de estas portadoras es el siguiente:
Fig. 6.12: Esquema de la Generación de Pilotos
Pasamos a explicar cada uno de los sub-bloques que componen el esquema de Generación de Pilotos.
6.3.3.3.1.- PRBS Sequence
Para generar esta secuencia, utilizamos el bloque de Simulink “PN Sequence Generator” con los siguientes parámetros:
• Generator Polynominal: En este campo tenemos que incluir el vector generador. Dicho vector, indicado en el estándar, es: [11 2 0].
• Initial States: Con este campo inicializamos los registros internos del bloque. Este campo, según el estándar, vale: [1 1 1 1 1 1 1 1 1 1 1].
• Output mask source: En este campo tenemos que indicar si queremos que el bloque genere la señal (Dialog Parameter) o bien modulará una señal entrante (Input Port). En nuestro caso, queremos que nos genere la señal, por lo que marcamos la primera opción.
Desarrollo de un simulador DVB-T2 en Simulink 106
• Output mask Vector: Indica el retraso originado por el bloque. Por tanto, nos interesará que este campo valga 0.
• Sample Time: Es el tiempo de muestreo. Lo ponemos a -1, ya que no nos interesa.
• Frame-based outputs: Ya hemos dicho que nos interesa que la señal de salida esté basada en trama, luego tenemos que tener marcado esta opción.
• Samples per Frame: Es el número de muestras por trama. Viene dado por la suma de todas las portadoras pilotos. Así, el valor de este campo es de 119.
• Output data Type: Especificamos el tipo de datos que va a tener el vector que se genere. Se escogerá el tipo boolean.
6.3.3.3.2.- PN-Sequence
Para generar la secuencia que nos interesa para este bloque (mirar el punto 3.8.2.1.2), utilizamos el bloque “Constant”. Los parámetros que hemos utilizado son los siguientes:
• Constant Value: En este campo incluimos la parte de la secuencia general que nos interesa en binario. En este caso cogemos los primeros 119 bits.
• Sampling Mode: Al igual que nos ocurriese en el caso anterior, nos interesa que a la salida haya tramas, en vez de muestras sueltas. Por este motivo marcamos Frame based.
• Frame Period: Igualmente marcamos esta opción con -1.
Desarrollo de un simulador DVB-T2 en Simulink 107
6.3.3.3.3.- Selector
Con este bloque pretendemos realizar una reordenación del vector que tiene a la entrada. El motivo viene dado por la secuencia de referencia rl,k, como vemos en el punto 3.8.2.1. Así, según vemos, la secuencia PRBS antes de realizar la operación Xor, está desplazada en secuencia un valor de Kext. El valor de Kext para una modulación 8k es de 48.
Los parámetros utilizados son:
• Index Option: Con él seleccionamos la forma en el que le decimos al bloque como queremos realizar la selección. Nosotros hemos elegido la opción Index vector.
• Index: Ponemos en este campo el orden en el que queremos que este bloque nos saque el vector de salida. Así, para el caso de las scattered pilots pondremos [1:72]; para las pilotos continuas, [73:117]; mientras que las pilotos de fin de símbolo, pondremos [118:119].
• Input port size: Le indicamos el tamaño del vector de entrada. Así, pondremos en este campo el valor 119, que como vimos es el tamaño de la secuencia PRBS.
6.3.3.3.4.- Logical Operator
Este bloque se va a encargar de realizar la operación entre la secuencia PRBS y la secuencia PN. De acuerdo, con el estándar, esta operación será una Xor. Los parámetros con los que vamos a configurar este bloque son:
• Operator: En nuestro caso, seleccionamos Xor, que es la operación que nos interesa.
• ;umber of input ports: Queremos multiplicar las secuencias PRBS y PN, por lo que este campo valdrá 2.
• Icon shape: Marcamos distinctive, para que nos muestre el bloque con el símbolo de la operación de la Xor.
• Sample Time: Ponemos -1, ya que este parámetro no es interesante.
Desarrollo de un simulador DVB-T2 en Simulink 108
6.3.3.3.5.- Selectors
El bloque Selector vimos anteriormente que lo usábamos para llevar a cabo la reordenación del vector que tenía a su entrada. Otra aplicación de este bloque, que es la que nos interesa en esta ocasión, es la de seleccionar un conjunto de muestras dentro de un rango mayor.
El objetivo de esta acción es la de seleccionar, dentro del conjunto de la secuencia para las portadoras pilotos, aquellas muestras que vamos a usar para generar las portadoras pilotos continuas, las que vamos a utilizar para generar las portadoras pilotos dispersas y las que van a corresponder a las portadoras de los extremos.
Los parámetros que hemos empleado son:
• Index option: Al igual que antes, marcamos la opción Index Vector.
• Input port size: Define el tamaño del vector de entrada
• Index: Hemos dejado este parámetro para el final ya que es el único diferente en los tres bloques que tenemos. Como ya hemos comentado, con este campo vamos a seleccionar el subconjunto de muestras que nos interesan. Este dato es proporcionado por el estándar. Así, este nos dice que:
El número de portadoras pilotos en los extremos será 2.
El número de portadoras continuas para una FFT de 8k es 44.
Y el número de portadoras dispersas (scattered) viene dada por la siguiente expresión:
kmod(Dx·Dy) = Dx mod(l·Dy), para portadora normal
(k-kext)mod(Dx·Dy) = Dx mod(l·Dy), para portadora extendida
donde “l” es el símbolo OFDM, k є [kmin, kmax], y Dx y Dy valen para el patrón de pilotos PP7 (que recordamos que es el que estamos usando) 24 y 4, respectivamente. Ello nos lleva a 72 portadoras.
Así, el dato que tendremos que poner en cada uno de los bloques será, precisamente, el número de portadoras de cada tipo.
Desarrollo de un simulador DVB-T2 en Simulink 109
6.3.3.3.6.- Ganancia
El objetivo de este bloque es el de dar cierta ganancia a cada una de las subportadoras pilotos, datos todos ellos facilitados por el estándar. Haciendo un resumen, el estándar nos dice que la ganancia para cada tipo de portadoras pilotos es la siguiente:
Tipo de Portadora Piloto Ganancia
Portadoras Pilotos Continuas 7/3 Portadoras Pilotos Dispersas 8/3
Portadoras Pilotos en los Extremos /5
Será estos valores de ganancia los que tendremos que incluir en el parámetro “Gain” de este bloque. El resto de parámetros los dejamos tal cual.
6.3.3.4.- Matrix Concatenate
La función de este bloque es la misma que la que se explicó en el punto 6.3.1.5 en el bloque Vector Concatenate, es decir, su función es la de concatenar distintas tramas que tiene a la entrada. El orden es el siguiente: numerando las entradas de forma decreciente, primero extrae la entrada que se encuentra en la primera posición, luego la de la posición 2 y así sucesivamente.
Los parámetros son los mismos que los utilizados en el caso anterior. La única diferencia es que en el campo “;umber of Inputs” tendremos que poner el número de entradas en el bloque, esto es, 4.
6.3.3.5.- Seleccionador de Índices
En este apartado vamos a generar un subsistema que escoja, en cada intervalo de tiempo de símbolo (en nuestro caso 924 µs), un vector con las posiciones que deberán ocupar, tanto las portadoras pilotos como los datos transmitidos, en cada trama generada. Para realizar dicha función, nos ayudaremos de los siguientes bloques:
Desarrollo de un simulador DVB-T2 en Simulink 110
Fig. 6.13: Esquema del Seleccionador de Índices
Pasamos a describir las principales propiedades de estos bloques:
6.3.3.5.1.- Vector para ordenar los símbolos
Cada uno de estos cuatro bloques “Constant” va a indicar la posición tanto de las portadoras de datos como de las portadoras pilotos dentro de la trama. Los parámetros utilizados son:
• Constant Value: En este campo indicamos la posición tanto de las portadoras como de los datos. En nuestro caso, hemos indicado el nombre de las variables donde hemos almacenado estas posiciones. Se adjuntará posteriormente en el Anexo el valor de cada una de estas variables.
Los demás parámetros no son importantes.
Desarrollo de un simulador DVB-T2 en Simulink 111
6.3.3.5.2.- Multiport Switch
Este bloque será el encargado de seleccionar en cada intervalo de tiempo de símbolo una de las secuencias transmitidas por los bloques “Constant”. El “Multiport Switch” necesita para su funcionamiento una señal de control que le diga cuándo y cómo debe cambiar la entrada. Esta señal debe ser generada desde el exterior, como veremos en el siguiente punto.
En cuanto a los parámetros utilizados destacamos:
• ;umber of inputs: En este campo indicamos el número de señales a la entrada de este bloque. En nuestro caso será de 4.
• Used zero-based indexing: Con este campo indicamos si permitimos o no el instante cero dentro de la señal de control habilitando esta opción. Nosotros la hemos marcado.
• Sample Time: Por defecto, la dejamos a -1.
6.3.3.5.3.- Señal de Control
Con este bloque generamos una señal periódica e indicamos al bloque “Multiport Switch” cuando debe conmutar a una entrada. Lo que realmente estamos haciendo con esta función es generar los distintos tipos de símbolos OFDM que hay en una misma trama T2.
El bloque se ha configurado de la siguiente manera:
• Vector of outputs value: En este campo vamos a generar la señal que queremos que se repita en el tiempo. Queremos empezar transmitiendo el símbolo 1, luego nuestra señal será: [0 1 2 3], es decir, le estamos indicando que cada Sample Time, saque primero la secuencia que haya en el primer puerto, en segundo lugar la que haya en el segundo puerto y así sucesivamente.
• Sample Time: En este campo irá el tiempo en el que permanecerá constante la señal. Nos interesa que la entrada se mantenga constante cada 924 µs, es decir, cada Ts.
Desarrollo de un simulador DVB-T2 en Simulink 112
Llegados a este punto tenemos la señal perfectamente “ordenada”, es decir, los datos y la información piloto en sus respectivas portadoras, y lo único que falta para poder transmitir la señal es proceder a su modulación. Este apartado lo vemos a continuación.
6.3.3.6.- Variable Selector
Con este bloque queremos seleccionar y reordenar las filas de la señal de entrada de acuerdo a lo especificado por el puerto ldx, que en nuestro caso le estamos pasando las posiciones de los datos y de las portadoras pilotos para los distintos símbolos OFDM.
Los parámetros que hemos utilizado son los siguientes:
• ;umber of input signal: tenemos un vector a la entrada de este bloque, luego ponemos 1.
• Select: Tenemos un vector columna, luego nos interesa reordenar las filas. Seleccionamos Rows.
• Select mode: determina si el bloque usa los mismos índices para todas las entradas o si emplea diferentes índices, en función de la entrada. Hemos seleccionado la opción Variable.
• Index mode: Indicamos si queremos que la primera muestra se contabilice como índice 0 o índice 1. Marcamos la opción One-based.
6.3.4.- Modulación de la Señal
En este apartado vamos a ver la modulación de una señal T2. Hasta ahora, tenemos una señal con 6817 portadoras (6698 portadoras de datos, 2 portadoras pilotos de fin de símbolo, 44 portadoras pilotos continuas y 72 portadoras dispersas). Para realizar la modulación, los símbolos deben tener 8192 portadoras.
El esquema que hemos seguido para esta última parte del transmisor, es el siguiente:
Desarrollo de un simulador DVB-T2 en Simulink 113
Fig. 6.14: Modulación de la señal
Comparándolo con el esquema propuesto por el estándar:
Fig. 6.15: Esquema de Modulación de la señal propuesto por el estándar
Las diferencias más importantes entre ambos esquemas fueron descritas en el punto 6.3.3. Así, nosotros en nuestro esquema hemos considerado la inserción de pilotos dentro del esquema Generador de Tramas. Por lo demás, a grandes rasgos, ambos esquemas son idénticos.
Vamos a empezar a describir las principales características de cada uno de nuestros bloques.
6.3.4.1.- Zero Pad
Como hemos comenzado diciendo en el punto 6.3.4, tenemos, justo antes de realizar el proceso de modulación, una señal con 6817 portadoras. Sabemos que para poder aplicar la anti-transformada discreta de Fourier, el número de portadoras de los símbolos debe tener base 2. Por tanto, el objetivo de este bloque será añadir información (en nuestro caso, nos interesa que se añadan ceros) a la señal de entrada hasta alcanzar el tamaño deseado.
Desarrollo de un simulador DVB-T2 en Simulink 114
Hemos configurado el bloque con los siguientes valores:
• Pad over: Como trabajamos con vectores columnas, el valor de este campo no puede ser otro que Columns.
• Pad value source: Nos interesa indicarle dónde queremos que nos añada la información “extra”. Por ello seleccionamos la opción Especify via
dialog.
• Pad Value: Queremos que añada ceros.
• Output column mode: Con este parámetro le indicamos la cantidad de ceros que tiene que añadir. Hay dos opciones: o bien añade cero hasta la siguiente potencia de dos o bien le especificamos hasta qué valor tiene que añadir datos. Elegimos la segunda opción, luego marcamos User-
specified.
• Column size: Esta opción sólo aparece cuando en el campo anterior hemos marcado la segunda opción. Con este parámetro indicamos la longitud de la señal que queremos a la salida. En nuestro caso ponemos 8192.
• Pad signal at: Indica el lugar dentro de la trama donde queremos añadir los ceros. Nos interesa tenerlos al final, por lo que hemos marcado la opción End.
• Action when truncation occurs: En este caso, como estamos seguros de que no se va a producir, marcamos ;one.
6.3.4.2.- Selector
En el bloque anterior, lo que hicimos fue añadir ceros a la señal que ya teníamos. Estos ceros se añadieron al final de la trama. Sin embargo, esta posición de los ceros no nos interesa para que el espectro nos quede centrado. Así lo que haremos será situar estos ceros justo en las posiciones medias de los símbolos y los datos y portadoras pilotos en ambos extremos. Con esta nueva reordenación de las portadoras dentro de un símbolo estaremos obteniendo, al realizar la anti-transformada discreta de Fourier, una señal en banda base.
Los parámetros más importantes con los que hemos configurado el bloque “Selector” son:
Desarrollo de un simulador DVB-T2 en Simulink 115
• ;umber of inputs: Sólo tenemos un vector a la entrada, luego este valor será 1.
• Index mode: Seleccionamos si queremos empezar a contar el vector desde cero o desde uno. Nosotros hemos marcado la opción de One
based.
• Index Option. Como ya hemos explicado varias veces, elegimos la opción Index Vector, ya que con ella podemos “decirle” al bloque como queremos reordenar el vector de entrada.
• Index: En este campo determinamos la forma de reordenar el vector. Como queremos que los ceros insertados en el zero pad queden en el centro del símbolo, hacemos: [1:3408 6818:8192 3409:6817].
• Input port size: Seleccionamos el tamaño del vector de entrada. En nuestro caso, 8192.
6.3.4.3.- IFFT
Queda claro que con este bloque lo que vamos a realizar es la anti-transformada discreta de Fourier. Nuestro objetivo es pasar la señal del dominio de la frecuencia al dominio del tiempo; de esta forma la señal estaría lista para poder transmitirse por cualquier canal.
Los parámetros utilizados para este bloque son los que ya venían por defecto.
6.3.4.4.- Inserción del Intervalo de Guarda
El Intervalo de Guarda o Prefijo Cíclico es una copia de la última parte del símbolo OFDM que se antepone al símbolo OFDM. De esta forma, la señal que se transmite se vuelve periódica, lo que juega un papel decisivo para evitar la ISI (interferencia intersímbolo) y la ICI (interferencia inter portadoras), aunque conlleva una reducción en la relación señal a ruido (eficiencia).
Como comentamos al principio del capítulo, hemos elegido una duración del Intervalo de Guarda de 1/32 veces la duración del símbolo. Si nuestro símbolo tiene 8192 muestras, entonces nuestro intervalo de guarda va a tener 256 muestras.
Desarrollo de un simulador DVB-T2 en Simulink 116
El esquema que vamos a seguir para la inserción del Intervalo de Guarda es el siguiente:
Fig. 6.16: Esquema de la inserción del Intervalo de Guarda
La función de ambos bloques es la que venimos viendo con anterioridad. Así con el bloque “Zero Pad” se van a añadir tantos ceros a la señal de entrada como queramos; en nuestro caso la señal de entrada tiene 8192 muestras y necesitamos que a la salida haya 8448 (8192 + 256 del Intervalo de Guarda), es decir, el bloque añade 256 ceros.
La función del bloque “Selector”, que también hemos visto, es la de reordenar el vector que tiene a la entrada. Dijimos que nos interesaba insertar el Intervalo de Guarda antes de que empezara el símbolo y que éste era una copia de la última parte del símbolo. Por este motivo, en el campo Index pondremos: [7937:8192 1:8192]. Con ello le estamos indicando que ponga una copia de las últimas 256 muestras de la trama al principio del vector y que coloca las 8192 muestras que teníamos al principio justo detrás de estas primeras.
Llegados a este punto ya tenemos nuestra señal DVB-T2 perfectamente modulada y lista para transmitirse a través del canal.
En el siguiente punto veremos los bloques para la recepción perfecta de esta señal.
Desarrollo de un simulador DVB-T2 en Simulink 117
6.4.- Receptor
El receptor es el bloque encargado de extraer la señal transmitida del canal de comunicaciones. La finalidad de este bloque que presentamos a continuación, no es otra que la de recuperar los datos transmitidos inicialmente. Si los procesos de transmisión y de recepción se han realizado correctamente, los datos que obtenemos al finalizar todo el proceso de recepción deben ser iguales a los datos que se transmitieron en la primera etapa del transmisor, es decir, en el Generador de Datos.
El esquema que hemos venido siguiendo para realizar el conjunto de la recepción es:
Fig. 6.17: Esquema general del receptor
Haciendo un breve resumen de lo que veremos un poco después, nuestro receptor constará, de una etapa de demodulación, en la que la señal pasará del dominio del tiempo al de la frecuencia, una etapa de extracción de las portadoras pilotos introducidas durante la transmisión y una fase de decodificación de la señal.
Vamos a empezar a ver cada una de las etapas que componen la recepción profundizando en cada una de ellas.
Desarrollo de un simulador DVB-T2 en Simulink 118
6.4.1.- Demodulación OFDM
Realiza el proceso inverso al visto anteriormente en el punto 6.3.4, esto es, se va a encargar de realizar la demodulación de la señal, sabiendo que ésta va a llegar en símbolos de 8448 muestras, que recordemos que eran 8192 portadoras y 256 muestras del intervalo de guarda.
Lo primero que tendremos que hacer será “eliminar” el intervalo de guarda para proceder a la demodulación de la señal.
El esquema seguido es el siguiente:
Fig. 6.18: Esquema de Demodulación de la Señal
6.4.1.1.- Eliminación del Intervalo de Guarda
Como ya explicamos en el apartado dedicado al receptor, una vez procedíamos a la modulación de los datos, introducíamos un intervalo de guarda para reducir la ISI y la ICI. Pues bien, antes de demodular los datos de cada uno de los símbolos, es necesario eliminar este intervalo de guarda.
Para realizar esta función vamos a emplear un “Selector”. Los parámetros son los mismos que los que venimos explicando a lo largo de este Proyecto. La única salvedad está en el parámetro Index.
• Index: El intervalo de guarda ocupa las primeras 256 muestras de la señal recibida. Como nos interesa eliminarlo, seleccionamos todas las muestras a partir de la última muestra del intervalo de guarda, es decir, seleccionamos el rango [257 8448].
Desarrollo de un simulador DVB-T2 en Simulink 119
Así, a la salida de este bloque volvemos a tener una señal de 8192 muestras. Ahora sí, podemos proceder a su demodulación.
6.4.1.2.- FFT
Con el bloque “FFT” vamos a aplicar la Transformada Discreta de Fourier a la señal que tiene a la entrada. Con este bloque lo que estamos haciendo es pasar la señal que hemos transmitido del dominio del tiempo al dominio frecuencial, que es lo que nos interesa.
Los distintos campos los vamos a dejar con los valores indicados por Matlab, ya que no son muy relevantes.
Un dato importante a tener en cuenta con este bloque (y, por ende, también en el bloque IFFT) es que, a pesar de que la señal a su entrada se estructura en tramas, a la salida la señal pasa a estructurarse en muestras.
6.4.1.3.- Frame Conversion
Este bloque viene a solucionar el problema que acabamos de ver. Para poder operar con las distintas señales, como para aplicar retrasos sobre las mismas, éstas deben estar organizadas en tramas. Es por ello por lo que vamos a utilizar este bloque.
Para su uso correcto, tenemos que indicar el tipo de señal que queremos a su salida. En nuestro caso, tenemos que seleccionar Frame based.
6.4.1.4.- Eliminación de ceros
Llegados a este punto, tenemos que recordar que en la etapa de modulación de datos, para poder realizar correctamente el proceso de anti-Transformada Discreta de Fourier, tuvimos que añadir ceros de forma que el tamaño del vector fuese potencia de 2 (en nuestro caso, 8192 portadoras). También hay que tener en cuenta que colocamos
Desarrollo de un simulador DVB-T2 en Simulink 120
estos valores en las posiciones centrales de las diferentes tramas, de forma que tuviésemos una señal en banda base.
Lo que queremos realizar con este bloque es, precisamente, eliminar esta información “extra” que se añadió. Para ello empleamos un bloque “Selector”, de forma que podamos seleccionar los datos que realmente nos interesan.
Así, en el campo Index tenemos que indicarle a Simulink qué datos de la entrada queremos que nos saque a la salida. Teniendo en cuenta que los ceros que se añadieron están en las posiciones centrales, indicamos: [1:3408 4784:8192], es decir, de cada vector de entrada vamos a extraer las primeras 3408 muestras y las últimas 3407 muestras.
A la salida de esta etapa de Demodulación OFDM tendremos un vector de 6817 portadoras. Lo que buscaremos, a continuación, será eliminar las portadoras pilotos de cada símbolo OFDM.
6.4.2.- Eliminación de las portadoras Pilotos
En esta fase del receptor pretendemos, en primer lugar, eliminar de cada uno de los símbolos OFDM las distintas portadoras pilotos, que servían al receptor para facilitar la sincronización de trama, sincronización en frecuencia, sincronización en tiempo, estimación del canal y/o para la identificación del modo de transmisión. Otra función que vamos a realizar será el desentrelazado en frecuencia.
El esquema en el que nos vamos a apoyar es el siguiente:
Fig. 6.19: Esquema de Eliminación de las Portadoras pilotos
Desarrollo de un simulador DVB-T2 en Simulink 121
Pasamos a explicar los distintos bloques que componen esta nueva fase del receptor.
6.4.2.1.- Índice para ordenar
Tal y como hicimos en el punto 6.3.3.5, con este bloque pretendemos generar un vector para indicarle a Simulink como queremos que reordene la señal que entra en el bloque “Variable Selector”.
El esquema de este bloque es el siguiente:
Fig. 6.20: Esquema para generar los vectores de reordenación
Pasamos a describir cada uno de los elementos que componen esta fase.
Desarrollo de un simulador DVB-T2 en Simulink 122
6.4.2.1.1.- Vector para ordenar el símbolo
Cada uno de estos cuatro bloques “Constant” va a indicar la posición de los datos dentro de cada trama. Los parámetros utilizados son:
• Constant Value: En este campo indicamos la posición de los datos transmitidos dentro de cada símbolo.
Los demás parámetros no son relevantes.
6.4.2.1.2.- Multiport Switch
Este bloque será el encargado de seleccionar en cada intervalo de tiempo de símbolo una de las secuencias transmitidas por los bloques “Constant”. El “Multiport Switch” necesita para su funcionamiento una señal de control que le diga cuándo y cómo debe cambiar la entrada. Esta señal debe ser generada desde el exterior, como veremos en el siguiente punto.
En cuanto a los parámetros utilizados destacamos:
• ;umber of inputs: En este campo indicamos el número de señales a la entrada de este bloque. En nuestro caso será de 4.
• Used zero-based indexing: Con este campo indicamos si permitimos o no el instante cero dentro de la señal de control habilitando esta opción. Nosotros la hemos marcado.
• Sample Time: Por defecto, la dejamos a -1.
6.4.2.1.3.- Señal de Control
Con este bloque generamos una señal periódica e indicamos al bloque “Multiport Switch” cuándo debe conmutar a una entrada. Lo que realmente estamos haciendo con esta función es generar los distintos tipos de símbolos OFDM que hay que una misma trama T2.
Desarrollo de un simulador DVB-T2 en Simulink 123
El bloque se ha configurado de la siguiente manera:
• Vector of outputs value: En este campo vamos a generar la señal que queremos que se repita en el tiempo. Tenemos que repetir la misma secuencia que la que se usó en el transmisor, esto es [0 3 2 1].
• Sample Time: En este campo irá el tiempo en el que permanecerá constante la señal. Nos interesa que la entrada se mantenga constante cada 924 µs, es decir, cada Ts.
6.4.2.2.- Variable Selector
Con este bloque queremos seleccionar y reordenar las filas de la señal de entrada de acuerdo a lo especificado por el puerto ldx. En nuestro caso le vamos a indicar las posiciones de los datos para los distintos símbolos OFDM.
Los parámetros que hemos utilizado son los siguientes:
• ;umber of input signal: Tenemos un vector a la entrada de este bloque, luego ponemos 1.
• Select: Tenemos un vector columna, luego nos interesa reordenar las filas. Seleccionamos Rows.
• Select mode: Determina si el bloque usa los mismos índices para todas las entradas o si emplea diferentes índices, en función de la entrada. Hemos seleccionado la opción Variable.
• Index mode: Indicamos si queremos que la primera muestra se contabilice como índice 0 o índice 1. Marcamos la opción One-based.
6.4.2.3.- Desentrelazado en Frecuencia
El objetivo del desentrelazado en frecuencia es, precisamente, invertir el entrelazado que se realizó entre los datos de un símbolo OFDM, como vimos en el punto 6.3.3.2.
Para llevar a cabo esta función de manera adecuada, haremos uso del bloque “General Block Deinterleaver”.
Desarrollo de un simulador DVB-T2 en Simulink 124
Es muy importante que le pasemos la misma información que al bloque que realiza el entrelazado (en este caso, a ambos bloques les pasamos el vector des/entrelazador). En caso contrario, los datos que se obtendrían tras la recepción serían diferentes a los transmitidos.
6.4.2.4.- Frame Allignement
Este es uno de los bloques más importantes de toda la etapa de recepción. En primer lugar vamos a explicar qué es lo que hace para posteriormente hablar de la finalidad del bloque.
Este bloque lo que hace es retrasar la señal que tiene a su entrada un número de muestras determinado, que será especificado por el usuario.
Los parámetros con los que se ha configurado dicho bloque son:
• Delay units: En este campo especificamos si queremos retrasar la señal en muestras (samples) o en tramas (Frames). Nosotros hemos seleccionado la opción Samples.
• Delay (samples): Tenemos que indicar el número de muestras en los que se retrasará la señal.
• Initial Conditions: Especificamos lo que queremos que se transmita mientras se lleva a cabo el retraso de la señal de entrada.
El resto de parámetros no son relevantes.
El motivo por el que añadimos este bloque es el siguiente: el buffer que incluimos en la etapa de Adición de Portadoras Pilotos (ver punto 6.3.3) lo que hacía era almacenar la trama FEC procedente de la etapa de Codificación de Datos. Pues bien, mientras en el buffer se almacenan todos los datos, éste va transmitiendo aquellos que tenía pre-cargado (en nuestro caso, dijimos que los valores iniciales del buffer valían cero), con lo que se genera un vector de ceros del tamaño de salida del buffer, esto es, de tamaño 6698. Esto implica que existe una diferencia entre el conjunto de datos ya codificados en el transmisor y el conjunto de datos que se obtienen tras realizar el proceso de eliminación de las portadoras pilotos de 6698 muestras. Esto es muy importante tenerlo en cuenta para el bloque siguiente, un buffer que almacena las muestras de los distintos símbolos OFDM en una trama FEC de 32400 elementos. Al tener un vector de 6698 muestras que no teníamos en el transmisor, las tramas FEC en recepción no van a coincidir con las tramas FEC de transmisión, o dicho de otro modo, los datos que se van a recibir no van a ser los mismos que fueron transmitidos.
Desarrollo de un simulador DVB-T2 en Simulink 125
Así, al retrasar la señal una cantidad de muestras igual a 25702, o lo que es lo mismo, añadiendo 25702 ceros al inicio del primer vector que llega, tendremos una primera trama FEC de 32400 ceros, pero el resto de tramas sí que van a coincidir con las que se transmitieron. Somos conscientes de que estamos añadiendo un retraso a la señal, pero en contrapartida, nos estamos asegurando que la señal recibida va a coincidir con la transmitida.
6.4.2.5.- Buffer
Este buffer se va a encargar de almacenar los datos de los símbolos que le van llegando, 6698, y sacar tramas de 32400 elementos. Ya a partir de este bloque vamos a dejar de trabajar a nivel de símbolos para volver a trabajar con tramas FEC (FECFRAME).
Los parámetros utilizados son:
• Output Buffer size: Ya hemos dicho que este valor será 32400.
• Buffer Overlap: Queremos que la información salga por vectores pero que ésta no se repita. Por tanto, el valor de este campo será cero.
• Initial Conditions: se pondrá a cero, ya que no queremos que se transmita nada mientras el Buffer se llena.
Haciendo un breve resumen de lo visto hasta ahora en el receptor, hemos realizado la demodulación de la señal recibida y nos hemos quedado sólo con los datos, es decir, hemos eliminado las distintas portadoras pilotos. A partir de este momento dejamos de hablar de símbolos OFDM ya que vamos a trabajar a nivel de trama FEC.
En la siguiente etapa del receptor, se procede a la decodificación de la trama FEC.
Desarrollo de un simulador DVB-T2 en Simulink 126
6.4.3.- Decodificación y Demodulación de Datos
Una vez hemos llevado a cabo todo el proceso de eliminación de portadoras pilotos y nos encontramos trabajando con tramas FEC en lugar de símbolos OFDM, tenemos que proceder a la decodificación y demodulación de estas tramas.
En primer lugar, las tramas pasan por una fase de desentrelazado. Recordamos que el entrelazado se llevó a cabo durante la etapa de Codificación y Modulación de Datos con el fin de dispersar posibles errores que dañaran la trama.
Una vez realizado este desentrelazado, se procederá a la demodulación de la señal para acabar decodificando la trama recibida.
El esquema que se ha venido siguiendo durante toda esta etapa es el siguiente:
Fig. 6.21: Esquema del proceso de Decodificación de datos
Aunque la gran mayoría de los bloques ya se han visto, vamos a comentar la función de los mismos y los parámetros más importantes con los que los hemos configurado.
6.4.3.1.- Desentrelazado en Tiempo
Si recordamos el funcionamiento del entrelazador en tiempo (ver punto 6.3.2.5), lo que este bloque hacía era colocar los datos que recibía en una matriz por columnas y leerlos por filas.
Pues bien, parece claro que en esta ocasión debemos actuar de forma complementaria. Para ello, vamos a utilizar el bloque “Matriz Interleaver”. Este bloque rellena una matriz por filas y envía el contenido de dicha matriz leído por columnas.
Desarrollo de un simulador DVB-T2 en Simulink 127
Los valores para estos campos son los mismos que para el bloque que usamos con anterioridad. Esto es:
• ;umber of rows: 6840.
• ;umber of columns: 5.
Otra solución por la que podríamos haber optado era la de haber usado el mismo bloque que en la etapa de Codificación, pero invirtiendo los parámetros; es decir, en ;umber of rows haber puesto 5 y en ;umber of columns 6840. El resultado no hubiese variado.
6.4.3.2.- Desentrelazador de células
Nos encontramos con un caso muy parecido que al del punto anterior. Necesitamos contrarrestar el entrelazado que realizamos durante la fase de Codificación.
Para llevar a cabo la función de aleatorizar las células que componen una trama hicimos uso del bloque “General Block Interleaver”. Lo que nosotros estamos buscando ahora es realizar el proceso opuesto: queremos “devolver” cada célula a su posición inicial. Por ello en esta ocasión emplearemos el bloque “General Block Deinterleaver”. Como elementos, tendremos que pasarle el mismo vector que para realizar el entrelazado de la trama. Como bien se indicó con anterioridad, le pasamos el nombre del vector que tenemos implementado en nuestro fichero de variables y que se adjuntará en el Anexo.
6.4.3.3.- Demodulador
El objetivo de toda demodulación es recuperar la señal transmitida originariamente.
Para conseguir ésto, hemos utilizado el bloque “General QAM Demodulator BaseBand”, ya que nuestra señal modulada era una 4-QAM.
Los parámetros con los que se ha configurado dicho bloque han sido:
Desarrollo de un simulador DVB-T2 en Simulink 128
• Signal Constellation: Le damos a este campo las posiciones para una constelación QPSK, ya normalizada, de acuerdo al mapeado indicado en el estándar.
• Output type: Indicamos el tipo de los elementos de salida. En este caso van a tratarse de enteros.
• Output data type: Como el bloque “LDPC Decoder” necesitan que los datos a su entada sean del tipo double, seleccionamos esta opción.
6.4.3.4.- Integer to Bit converter
Como su nombre hace intuir, este bloque se va a encargar de realizar la conversión de enteros a bits.
Una vez demodulada la señal, hemos obtenido un vector de números enteros, representando cada uno de ellos a un símbolo (al ser una señal 4-QAM, estos símbolos van del 0 al 3). Con este conversor, pasamos a trabajar a nivel de bits.
Los parámetros con los que se ha configurado dicho bloque han sido:
• ;umber of bits per Integer: ya hemos comentado que se trata de una señal 4-QAM, luego el número de bits por símbolo es 2.
• Output data type: Al igual que en el bloque anterior, seleccionamos la opción double.
6.4.3.5.- Mapeador de Datos
Su objetivo no es otro que el de mapear los distintos bits de entrada para “crear” una nueva salida.
Los valores que le hemos dado a dicho bloque son los siguientes:
• Vector of input values: Como tenemos un vector binario, los datos sólo pueden tomar dos valores: ó 0 ó 1. Así nuestro vector será [0 1].
Desarrollo de un simulador DVB-T2 en Simulink 129
• Table data: En ella escribimos la conversión que queremos de los datos. En nuestro caso nos interesa [1 0], es decir transformamos los ceros en unos y viceversa.
• Lookup method: Describe el método para realizar el mapeado. Nosotros hemos utilizado Interpolation-Extrapolation.
• Sample time: -1, por defecto.
Necesitamos este bloque para realizar la decodificación de la señal de manera correcta. Sin él, nuestro decodificador no funcionaría correctamente y a la salida no obtendríamos los datos esperados. De hecho, los datos que obtendríamos presentan la misma secuencia que antes de realizar la codificación LDPC de los mismos pero con los valores invertidos, es decir, donde ahora obtenemos un uno antes de la codificación había un cero y viceversa.
6.4.3.6.- Decodificación LDPC
Su función es la de eliminar los bits de comprobación de paridad, que se encuentran al final de la trama y que permitían al sistema conocer si se habían producido errores durante la transmisión.
Para este bloque, y al igual que para la Codificación LDPC (ver punto 6.3.2.1.2) nos hemos apoyado en una serie de funciones que ya venían implementadas en Matlab (versión R2007b). De esta forma, sólo hemos tenido que indicar el nombre de la función, pasándole la tasa de codificación LDPC que hemos empleado durante la simulación (en nuestro caso 1/2).
Los parámetros para este bloque son los siguientes:
• Parity check matrix: Aquí nos apoyamos en la función que ya se encuentra implementada en Matlab. Así escribimos: dvbt2ldpc (1/2).
• Output format: Sólo queremos obtener la información de la trama codificada, luego marcamos Information part.
• Decision type: Marcamos la opción Hard decisión.
• Output data type: Vamos a trabajar a partir de ahora con números binarios, por lo que marcamos boolean.
Desarrollo de un simulador DVB-T2 en Simulink 130
6.4.3.7.- BCH Decoder
La función de este bloque también es la de eliminar parte de la información que se generó durante la Codificación BCH para hacer que la señal que se estaba transmitiendo fuera más robusta.
Para llevar a cabo esta función hemos utilizado un bloque que utiliza una función que ya venía implementada en Matlab. Se trata de una S-function y se denomina scomberlekamp. Nosotros sólo hemos tenido que pasarle los valores adecuados, según lo especificado por dicha función.
Con esto ya tenemos finalizada la fase de Decodificación y Demodulación de datos. Recordamos que a partir de este momento dejamos de trabajar con FECFRAMEs para trabajar a nivel de BBFRAMEs.
6.4.4.- Extracción de datos
En estos momentos, nuestra BBFRAME está perfectamente preparada para que podamos acceder a la información transmitida durante la etapa de Generación de datos, en el transmisor (ver punto 6.3.1).
Para poder recuperar esta información, la fase de extracción de datos va a contar de los siguientes elementos:
Fig 6.22: Esquema de la etapa Extracción de datos
Desarrollo de un simulador DVB-T2 en Simulink 131
6.4.4.1.- Descrambler
Utilizamos este bloque para invertir el proceso de aleatorización llevado a cabo en la etapa de Generación de datos sobre la BBFRAME.
Los parámetros que debemos utilizar para este bloque tienen que ser los mismos que los que empleamos para la aleatorización. Son los siguientes:
• Calculation base: Como estamos trabajando con señales binarias, este campo valdrá 2.
• Scramble polynomial: En este parámetro introducimos el polinomio de des-aleatorización que viene indicado en el estándar. Así tendremos el vector 1100000000000001.
• Initial states: Es la condición inicial para los registros internos. Volvemos a poner las mismas condiciones iniciales que marcamos para el Scrambler: 100101010000000.
6.4.4.2.- Selector
Una vez hemos procedido a la aleatorización de la BBFRAME, hemos de recordar que durante la transmisión de los datos, procedimos a la inserción tanto de una cabecera en banda base, que describía el formato de los datos que se transmitían, como de información “extra” (que se añadieron en forma de ceros) para que la señal tuviera las dimensiones indicadas por el estándar.
Esta información deberá ser eliminada de nuestra señal. Ése es el objetivo de este nuevo bloque: eliminar todo aquello que no sea información útil.
Convenimos en su momento que la información “extra” se iba a añadir al final de la señal, mientras que la cabecera, obviamente, deberá ir al principio. Esto es muy importante tenerlo en cuenta a la hora de seleccionar el rango de la señal con la que nos interesa quedarnos.
Como la configuración de este bloque ya se ha repetido en numerosas ocasiones a lo largo de este Proyecto, sólo nos vamos a fijar en el campo Index. Necesitamos eliminar las primeras 20 muestras de la señal, ya que éstas pertenecían a la cabecera de la misma; por otra parte, necesitamos que a la salida haya 31584 (si hacemos memoria, es el resultado que se obtenía cuando pasábamos a bits los 3948 datos que
Desarrollo de un simulador DVB-T2 en Simulink 132
transmitíamos). Con todos estas consideraciones, extraemos la señal que se encuentra en el rango [81 31664].
6.4.4.3.- Bit to Integer Converter
El fin de este bloque es pasar de la secuencia de bits que tenemos a una secuencia de bytes.
Los parámetros de este bloque van a ser, por tanto:
• ;umber of bits per Integer: Como ya hemos dicho, queremos pasar de bits a bytes, luego este valor es 8.
• Output data type: Como tenemos enteros, nosotros hemos seleccionado la opción uint8 (enteros sin signos), pero no es un parámetro muy relevante.
Con este bloque finalizamos la etapa de recepción. Si todo ha ido de forma correcta, la señal que tenemos que recibir en este punto, aunque retrasada en el tiempo, tiene que ser igual a la señal que transmitimos. Estos retrasos, como ya vimos en su momento, vienen ocasionados por los buffers, que envían los datos que éstos tuvieran almacenados en el momento en que se inicia la transmisión. Esto no imposibilita la recepción óptima de los datos; no obstante sí es muy importante conocer el retraso introducido por el sistema para poder indicar a nuestro equipo cuándo deben empezar a leer los datos.
A continuación, mostraremos los resultados que hemos obtenido durante la etapa de Simulación.
Desarrollo de un simulador DVB-T2 en Simulink 133
6.4.5.- Resultados
Durante el desarrollo de esta memoria hemos estado viendo tanto el desarrollo teórico como la implementación, mediante Simulink, de un sistema de comunicaciones basado en el nuevo estándar para la televisión digital, DVB-T2.
En este apartado lo que queremos es presentar los resultados que hemos ido obteniendo durante el desarrollo práctico del sistema.
Para obtener las imágenes que más nos interesa mostrar nos hemos apoyado en un par de bloques, que pasamos a enunciar:
• Por un lado, para poder representar las constelaciones recibidas y transmitidas, utilizamos el bloque “Discrete – Time Scatter Plot Scope”.
• Para representar el espectro en frecuencia de la señal transmitida, usamos el bloque de Simulink “Spectrum Scope”.
Otro bloque bastante interesante para nosotros es “To simout”. Este bloque tiene la característica de almacenar en una variable los datos de la señal que tiene a su entrada, con la que después podremos trabajar.
Para verificar que nuestra simulación ha sido correcta, presentaremos los resultados de tres formas distintas.
6.4.5.1.- Constelaciones y Espectro
La primera forma que se nos ocurre de poder verificar que nuestra simulación ha sido correcta, es a través de las constelaciones de las señales transmitidas y recibidas, así como a través del espectro de la señal.
Venimos comentando a lo largo de la memoria que la señal que nosotros hemos modulado es una señal QSPK. Luego la constelación de las diferentes señales que recibimos deben tener la siguiente forma:
Desarrollo de un simulador DVB-T2 en Simulink 134
Fig. 6.23: Esquema de una señal QPSK
Las constelaciones que nosotros hemos obtenido, en régimen permanente de la señal, han sido:
Fig. 6.24: Constelaciones de las señales transmitidas y recibidas
Como puede verse claramente, ambas constelaciones son idénticas a la constelación de una señal QPSK ideal.
Otro elemento que nos indica si la simulación se ha realizado correctamente o no es el espectro de frecuencia de la señal transmitida. El estándar define el siguiente espectro de frecuencia para señales de intervalo de guarda igual a 1/8.
Desarrollo de un simulador DVB-T2 en Simulink 135
Fig. 6.25: Espectro teórico para una señal DVB-T2
Nosotros, durante el proceso de simulación, hemos obtenido el siguiente espectro:
Fig. 6.26: Espectro en frecuencia de la señal transmitida
Desarrollo de un simulador DVB-T2 en Simulink 136
Comparando ambas figuras, vemos que ambos espectros son casi idénticos.
6.4.5.2.- Variables
Otra forma que tenemos para poder comprobar que los datos recibidos son idénticos a los transmitidos es a través de las variables generadas por los bloques “To simout”.
Para que la comparación entre ambas señales sea lo más real posible, lo que hemos hecho ha sido retrasar la señal de entrada al simout del transmisor el mismo número de muestras que sabemos que lo está la señal recibida.
Una forma de comparar ambas señales es viendo el conjunto de datos que contienen, a través del Workspace de Matlab. En él podemos encontrar toda la información referente a las variables que está utilizando el programa en ese momento. No obstante la tarea de comparar uno a uno todos los datos de ambas variables resulta una tarea demasiado tediosa.
Para realizar esta tarea de una manera mucho más rápida lo que vamos a hacer es trabajar con las variables que se generan. Así, si restamos ambas variables, si todo ha ido correcto, deberíamos obtener un vector de ceros. Para comprobar que efectivamente obtenemos un vector de ceros calculamos el máximo y el mínimo de ese vector.
Los resultados que hemos obtenido, como era de esperar, han sido:
max (recibida1 –transmitida1) = 0
y
min (recibida1 –transmitida1) = 0
siendo recibida1 y transmitida1 las variables generadas por los bloques “To simout” del receptor y del transmisor, respectivamente.
Desarrollo de un simulador DVB-T2 en Simulink 137
6.4.5.3.- BER
La última forma de demostrar que nuestra simulación se ha realizado de manera correcta es a través de la tasa de bits erróneos, es decir, de la BER.
Para calcular la BER de nuestro sistema nos ayudaremos de los siguientes bloques:
• Bloque “Error Rate Calculation”. Como es de esperar, este bloque se encarga de calcular la tasa de error del sistema comparando los datos recibidos con los datos de la señal transmitida retrasada. La señal de salida estará constituida por tres elementos: la tasa de error seguida del número de datos erróneos detectados y el número total de datos comparados. El campo más importante que tendremos que configurar en este bloque es Receive delay, es decir, el retraso de la señal. Nosotros, como le hemos añadido a la señal transmitida un retraso antes de entrar en este bloque, ponemos en este campo 0.
• Una vez calculada la tasa de error de nuestro sistema, para poder visualizarla, utilizaremos el bloque “Display”, que nos permitirá poder ver simultáneamente los diferentes valores, esto es, tasa de error, número de datos erróneos y número total de datos comparados.
A continuación mostraremos los valores que hemos obtenido para diferentes intervalos de la simulación:
Fig. 6.27: BER a los 4.48·10^(-3) seg.
Fig. 6.28: BER a los 0.2 seg
Desarrollo de un simulador DVB-T2 en Simulink 138
Fig. 6.29: BER a los 0.4 seg.
Observando las distintas figuras, vemos que en todas ellas el número de datos erróneos que se detecta, y por tanto también valor de la BER, es cero.
Luego, con las distintas demostraciones que hemos realizado, todas con el mismo resultado, concluimos que nuestro sistema de comunicaciones funciona de acuerdo a lo especificado en el estándar.
Desarrollo de un simulador DVB-T2 en Simulink 139
7.- CONCLUSIONES Y LÍNEAS FUTURAS
Al comenzar este Proyecto Fin de Carrera, se proponía la implementación de un sistema de comunicaciones basado en el nuevo estándar europeo para la transmisión digital, DVB-T2. A partir de ahí, capítulo tras capítulo, se han ido formando las bases para llevar a cabo tal objetivo. Así se ha visto, con más o menos profundidad, las funciones del principal organismo regulador y sus principales estándares; se ha hablado en profundidad de los fundamentos teóricos de este nuevo estándar; hemos comentado la modulación OFDM y algunos de los principales inconvenientes que nos podíamos encontrar en su implementación; también hemos dado pequeñas nociones sobre el programa que hemos utilizado para realizar la simulación, y hemos hablado sobre ésta, comentando las principales características de los distintos bloques que hemos venido utilizando y hemos ilustrado sobre los resultados que habíamos obtenido. Todo ello, distribuido en capítulos y apartados, comentando las conclusiones parciales que hemos obtenido.
Sin embargo, son muchas las puertas que se dejan abiertas con respecto al estudio de algunos de los temas que se han tratado en este Proyecto y que podrían significar la continuación para distintos proyectos en el futuro.
Con respecto a los sistemas OFDM, se han publicado numerosos artículos y obras que dedican buena parte de su contenido a explicar los distintos aspectos que llevan asociados dichos sistemas, tales como los transmisores óptimos, el sincronismo, las portadoras pilotos, etc. Sin embargo no debemos olvidar que su uso en la vida cotidiana es cada vez más importante (un claro ejemplo lo acabamos de ver nosotros con la televisión digital), por lo que un estudio en profundidad debe ser el primer paso para poder diseñar sistemas que mejoren en prestaciones a los ya existentes. Así cualquier investigación futura relacionada con la modulación OFDM, si bien será difícil encontrar algún punto de mejora en su propia definición, deberá partir de los conocimientos ya existentes.
Otras mejoras que se pueden llevar a cabo están más relacionadas con la implementación del sistema de comunicaciones. Nosotros, durante la elaboración de este Proyecto, venimos suponiendo, por un lado, que únicamente se van a transmitir datos útiles; por otro lado, ya hemos visto que la simulación se ha realizado teniendo en cuenta la presencia de un canal ideal, lo cual sabemos que es imposible de conseguir en la realidad.
Sería interesante estudiar cómo se comportaría este mismo sistema ante la presencia de un canal no ideal. El transmisor sería el mismo que el utilizado en este caso, pero lo que sí tendría que implementarse es tanto el canal y, fundamentalmente, el receptor, ya que habría que tenerse en cuanta tanto el ruido que podría añadir por el canal como los efectos que éste ocasionaría en las señales transmitidas. Además,
Desarrollo de un simulador DVB-T2 en Simulink 140
también tendría tenerse en cuenta la posible utilización de un ecualizador, para procesar las distintas señales.
Otra mejora bastante interesante podría consistir en añadir a lo que se ha hecho en este Proyecto la transmisión de los símbolos de señalización P1 y P2, tal y como vienen definidos en el estándar. La implementación del símbolo P1 resulta muy sencilla, no así la del símbolo P2, ya que éste tiene un comportamiento bastante diferente a los símbolos de datos.
Otra posible mejora podría ser la de llevar a la práctica lo que hemos expuesto en este Proyecto. Esto es, la implementación física de un transmisor y de un receptor que, con las características que aquí hemos comentado, funcionase para una señal DVB-T2.
Hasta aquí hemos comentado una serie de posibles trabajos relacionados con algunos temas tratados en este Proyecto. Pero éstas son sólo algunas proposiciones que realizamos. Basta con analizar la bibliografía relacionada con estos temas para darse cuenta de la importancia y el alcance de los temas aquí tratados. Temas que, sin duda alguna, gozan, a día de hoy, de un primer plano en el panorama de la investigación de los sistemas de telecomunicaciones actuales y del futuro.
Desarrollo de un simulador DVB-T2 en Simulink 141
8.- BIBLIOGRAFÍA
Referencias
[1] G.D. Forney. “The Viterbi Algorithm”.
[2] S.M Alamouti. “A simple transmit diversity technique for wireless communication, IEEE Journal Select”.
[3] D.R. Saltzberg. “Performance of an efficient parallel data transmission system”.
[4] S.B.Weinstein, P.M. Ebert. “Data transmission by frequency Division Multiplexing using the discrete Fourier Transform”.
[5] Abraham Peled, Antonio Ruiz. “Frequency data transmission using reduced computational complexity algorithms”.
[6] W.D. Warner, C. Leving. “OFDM/FM frame synchronization for mobile radio data communication”.
[7] P.J Tourtier, R. Monrier, P. Lopez. “Multicarrier modem for digital HDTV terrestrial broadcasting”.
Artículos
• Edfor, Ove; Sandell, Magnus; Van de Beek, Jan-Jaap y Landström, Daniel: “An Introduction to Orthogonal Frequency-Division Multiplexing”.
• Pérez Gutiérrez, Alejandro: “Transmisión de señales de televisión digital en el estándar terreno DVB-T”.
• “Implementation guidelines for a second generation digital terrestrial television broadcasting system (DVB-T2)”.
• “Digital Video Broadcasting (DVB): Framing structure, channel coding and modulation for digital terrestrial television”.
• “Implementation guideline for DVB-T transmission aspects”
• “DVB-T2 Fact Sheet” – Abril 2009.
Desarrollo de un simulador DVB-T2 en Simulink 142
• Tutoriales de Simulink.
Páginas Web
• http://www.dvb.org
• http://www.mathworks.com/access/helpdesk_r13/help/toolbox/simulink/
• http://es.wikipedia.org
• http://www.coyan.es
• http://www.dvb-h.org
• http://en.wikipedia.org
• http://www.etsi.org
Desarrollo de un simulador DVB-T2 en Simulink 143
ANEXO
En esta parte del proyecto vamos a definir las variables y las funciones que hemos utilizado a lo largo del Proyecto.
Variables
%%%%%%%%%%%%%%%%%%%%% %Periodo de muestreo% %%%%%%%%%%%%%%%%%%%%%
T=1.09375e-007;
%%%%%%%%%%%%%%%%%%%%%%%% %Duración de un símbolo% %%%%%%%%%%%%%%%%%%%%%%%%
Ts=896e-006;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Polinomio generador para el código BCH% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BCH_datos = [1 0 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 0 0 0
0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0
0 0 1 0 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 0 0 1 1
0 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 0 0 0 0
0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0
0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1];
BCH_datos = logical(fliplr(BCH_datos));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Desarrollo de un simulador DVB-T2 en Simulink 144
%Datos para realizar el BCH Decoder% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
kBCH = 32208; nBCH = 32400; tBCH = 12;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Inserción de portadoras pilotos en los símbolos de datos. Se van a %
%definir las posiciones de estas portadoras para los cuatro tipos de %
%símbolos que % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Edge = [0 6816]+1;
continuals = [0 264 360 1848 2088 2112 2160 2256 2280 3936 3960 3984
5016 5136 5208 5664 116 430 518 601 646 1022 1296 1368 1369 1495 2833
3024 4416 4608 4776 5710 5881 6168 485 1636 4040 4181 4987 6418 2503
3655 5350 6295 196 562 456 480 2261 6072 4444 1008 6120 898]+1;
scattered3 = [0 96 192 288 384 480 576 672 768 864 960 1056 1152 1248
1344 1440 1536 1632 1728 1824 1920 2016 2112 2208 2304 2400 2496 2592
2688 2784 2880 2976 3072 3168 3264 3360 3456 3552 3648 3744 3840 3936
4032 4128 4224 4320 4416 4512 4608 4704 4800 4896 4992 5088 5184 5280
5376 5472 5568 5664 5760 5856 5952 6048 6144 6240 6336 6432 6528 6624
6720 6816]+1;
scattered1 = scattered3(1:end-1)+48; scattered2 = scattered3(1:end-1)+72; scattered4 = scattered3(1:end-1)+24;
%Posiciones de los pilotos en los distintos símbolos existentes sym1 = [edge,continuals,scattered1]; sym2 = [edge,continuals,scattered2]; sym3 = [edge,continuals,scattered3]; sym4 = [edge,continuals,scattered4];
%Escribimos las posiciones de los datos, seguidos de las posiciones de
%las portadoras pilotos, teniendo en cuenta que el número de
%portadoras activas para el patrón de pilotos PP7 es de 6698 y el
%número de portadoras activas para el modo 8k es de 6817
Pdat = 1:6698; Ppilotos = 6699:6826; Ppilotos1_2_4 = Ppilotos(1:end-1); datos = 1:6817;
%Ponemos a cero las posiciones correspondientes a las portadoras
%pilotos. Procedemos a su ordenación según lo indicado en el estándar.
Desarrollo de un simulador DVB-T2 en Simulink 145
P1a = datos; P1a(sym1)= 0; P1a = find(P1a~=0); P1 = zeros(1,6817); P1(sym1) = Ppilotos1_2_4; P1(P1a) = Pdat;
P2a = datos; P2a(sym2) = 0; P2a = find(P2a~=0); P2 = zeros(1,6817); P2(sym2) = Ppilotos1_2_4; P2(P2a) = Pdat;
P3a = datos; P3a(sym3) = 0; P3a = find(P3a~=0); P3 = zeros(1,6817); P3(sym3) = Ppilotos; P3(P3a) = Pdat;
P4a = datos; P4a(sym4) = 0; P4a = find(P4a~=0); P4 = zeros(1,6817); P4(sym4) = Ppilotos1_2_4; P4(P4a) = Pdat;
%%%%%%%%%%%%%%%%%%% % Constelacion QAM% %%%%%%%%%%%%%%%%%%%
DVBT2_QAM= [ 1 + 1i 1 - 1i -1 + 1i -1 - 1i];
dvbt2_qam=DVBT2_QAM/sqrt(2);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Frequency Interleaver para símbolos de datos% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Mmax = 8192; Nr = log2(Mmax); Nmax = 6698; q = 0;
h = zeros(1,Mmax); R = zeros(1,Nr);
Desarrollo de un simulador DVB-T2 en Simulink 146
for indx =0:Mmax-1 if (indx == 2) R(1) = 1; end if(mod(indx,2)==0)
Rsum = R(1)*2^7+R(2)*2+R(3)*2^4+R(4)*2^2+R(5)*2^9+R(6)*2^6+R(7)*2^8 +R(8)*2^10+R(9)*2^0+R(10)*2^3+R(11)*2^11+R(12)*2^5;
h(q+1) = mod(indx,2)*2^(Nr-1)+Rsum; if(h(q+1)<Nmax) q = q+1; end R = [R(2:Nr-1) xor(xor(R(1),R(2)),xor(R(5),R(7)))]; else
Rsum=R(1)*2^11+R(2)*2^4+R(3)*2^9+R(4)*2^3+R(5)*2+R(6)*2^2+R(7)*2^5+
+R(8)*2^0+R(9)*2^6+R(10)*2^7+R(11)*2^10+R(12)*2^8; h(q+1)=mod(indx,2)*2^(Nr-1)+Rsum; if(h(q+1)<Nmax) q=q+1; end R = [R(2:Nr-1) xor(xor(R(1),R(2)),xor(R(5),R(7)))]; end end
dvb_sym_int_table = h(1:Nmax)+1;
dvb_sym_int_table = dvb_sym_int_table(:);
%%%%%%%%%%%%%%%%%%%% %%CELL INTERLEAVER%% %%%%%%%%%%%%%%%%%%%%
Ncells = 32400; Nr = 6480; Nd = 15; q=0;
S = zeros(1,Nd);
%Generamos la secuencia Lo(q) for index=0:2^(Nd) S = [S(2:Nd) xor(xor(S(1),S(3)),xor(S(5),S(6)))]; if index==2 S(1) = 1; end
Lo(q+1)=S(1)*2+S(2)*2^2+S(3)*2^3+S(4)*2^4+S(5)*2^5+S(6)*2^6+S(7)*2^7+ +S(8)*2^8+S(9)*2^9+S(10)*2^10+S(11)*2^11+S(12)*2^12+S(13)*2^(13)+ +S(14)*2^(14)+S(15)*2^(15);
if(Lo(q+1)<Ncells) q=q+1;
Desarrollo de un simulador DVB-T2 en Simulink 147
end S = [S(2:Nd) xor(xor(S(1),S(2)),xor(S(3),S(13)))]; end
Cell_interleaver=Lo(1:Ncells); Cell_interleaver=mod(Cell_interleaver,Ncells);
Función dvbt2ldpc
Como ya hemos dicho en alguna otra ocasión, esta función ya viene implementada en Matlab.
function H = dvbt2ldpc(R)
R=1/2; lenCodeWord = 64800; % Longitud a la salida de bloque para DVB-T2 NB = 360;
numInfoBits = lenCodeWord * R; numParityBits = lenCodeWord - numInfoBits;
[ct1, ct2] = getchecknodetable(R);
ck1 = nodeindices(ct1, numParityBits, NB); ck2 = nodeindices(ct2, numParityBits, NB);
d = [size(ck1,2) size(ck1,1) size(ck2,2) size(ck2,1) numParityBits-1 2
1 1]; r = [ck1(:); ck2(:); 0; reshape(ones(2,1)*(1:numParityBits-1),[],1)]; S = zeros(length(r),1); numGroup = length(d)/2; n = 0; ncol = 1; for i = 1:numGroup p = d(2*i-1)*d(2*i); S(n+1:n+p) = reshape(ones(d(2*i),1)*(ncol:ncol+d(2*i-1)-1),p,1); ncol = ncol + d(2*i-1); n = n + p; end
% Parity check matrix (sparse) for DVB-T.2 H = logical(sparse(double(r+1), S, 1));
%---------------------------------------------------------------------
-----
Desarrollo de un simulador DVB-T2 en Simulink 148
function ck = nodeindices(ct, M, NB) % ct: Posiciones para los bits de paridad para una longitud del código
% de 64800.
% M: Número de bits de paridad % NB: Tamaño del Bloque [N, D] = size(ct); q = (M/NB); b = (1:NB); bq = (b-1).'*q; ck = zeros(D, NB*N); for r=1:N ck(:, NB*(r-1)+1:NB*r) = mod(addcr(bq, ct(r,:)), M)'; end %--------------------------------------------------------------------
------ function A = addcr(c, r) M = length(c); N = length(r); A = zeros(M, N); for m = 1:M A(m, :) = r + c(m); end
%---------------------------------------------------------------------
----- function [ct1, ct2] = getchecknodetable(R) % Devuelve la matriz de posiciones de los bits de paridad para la
% codificación LDPC. Estas posiciones vienen recogidas en el
% Anexo A del estándar DVB-T2. % R = code rate. switch R
case 1/2 ct1 = [54 9318 14392 27561 26909 10219 2534 8597 55 7263 4635 2530 28130 3033 23830 3651
56 24731 23583 26036 17299 5750 792 9169
57 5811 26154 18653 11551 15447 13685 16264
58 12610 11347 28768 2792 3174 29371 12997
59 16789 16018 21449 6165 21202 15850 3186
60 31016 21449 17618 6213 12166 8334 18212
61 22836 14213 11327 5896 718 11727 9308
62 2091 24941 29966 23634 9013 15587 5444
63 22207 3983 16904 28534 21415 27524 25912
64 25687 4501 22193 14665 14798 16158 5491
65 4520 17094 23397 4264 22370 16941 21526
66 10490 6182 32370 9597 30841 25954 2762
67 22120 22865 29870 15147 13668 14955 19235
68 6689 18408 18346 9918 25746 5443 20645
69 29982 12529 13858 4746 30370 10023 24828
70 1262 28032 29888 13063 24033 21951 7863
71 6594 29642 31451 14831 9509 9335 31552
72 1358 6454 16633 20354 24598 624 5265
73 19529 295 18011 3080 13364 8032 15323
74 11981 1510 7960 21462 9129 11370 25741
75 9276 29656 4543 30699 20646 21921 28050
76 15975 25634 5520 31119 13715 21949 19605
77 18688 4608 31755 30165 13103 10706 29224
78 21514 23117 12245 26035 31656 25631 30699
79 9674 24966 31285 29908 17042 24588 31857
80 21856 27777 29919 27000 14897 11409 7122
81 29773 23310 263 4877 28622 20545 22092
82 15605 5651 21864 3967 14419 22757 15896
83 30145 1759 10139 29223 26086 10556 5098
84 18815 16575 2936 24457 26738 6030 505
85 30326 22298 27562 20131 26390 6247 24791
86 928 29246 21246 12400 15311 32309 18608
87 20314 6025 26689 16302 2296 3244 19613
88 6237 11943 22851 15642 23857 15112 20947
Desarrollo de un simulador DVB-T2 en Simulink 149
89 26403 25168 19038 18384 8882 12719 7093];
ct2=[0 14567 24965 1 3908 100
2 10279 240
3 24102 764
4 12383 4173
5 13861 15918
6 21327 1046
7 5288 14579
8 28158 8069
9 16583 11098
10 16681 28363
11 13980 24725
12 32169 17989
13 10907 2767
14 21557 3818
15 26676 12422
16 7676 8754
17 14905 20232
18 15719 24646
19 31942 8589
20 19978 27197
21 27060 15071
22 6071 26649
23 10393 11176
24 9597 13370
25 7081 17677
26 1433 19513
27 26925 9014
28 19202 8900
29 18152 30647
30 20803 1737
31 11804 25221
32 31683 17783
33 29694 9345
34 12280 26611
35 6526 26122
36 26165 11241
37 7666 26962
38 16290 8480
39 11774 10120
40 30051 30426
41 1335 15424
42 6865 17742
43 31779 12489
44 32120 21001
45 14508 6996
46 979 25024
47 4554 21896
48 7989 21777
49 4972 20661
50 6612 2730
51 12742 4418
52 29194 595
53 19267 20113];
case 3/5 %Table B.4: rate 3/5 nldpc = 64 800) ct1 = [22422 10282 11626 19997 11161 2922 3122 99 5625 17064 8270 179 25087 16218 17015 828 20041 25656 4186 11629 22599 17305 22515 6463
11049 22853 25706 14388 5500 19245 8732 2177 13555 11346 17265 3069
16581 22225 12563 19717 23577 11555 25496 6853 25403 5218 15925 21766
16529 14487 7643 10715 17442 11119 5679 14155 24213 21000 1116 15620
5340 8636 16693 1434 5635 6516 9482 20189 1066 15013 25361 14243
18506 22236 20912 8952 5421 15691 6126 21595 500 6904 13059 6802
8433 4694 5524 14216 3685 19721 25420 9937 23813 9047 25651 16826
21500 24814 6344 17382 7064 13929 4004 16552 12818 8720 5286 2206
22517 2429 19065 2921 21611 1873 7507 5661 23006 23128 20543 19777
1770 4636 20900 14931 9247 12340 11008 12966 4471 2731 16445 791
6635 14556 18865 22421 22124 12697 9803 25485 7744 18254 11313 9004
19982 23963 18912 7206 12500 4382 20067 6177 21007 1195 23547 24837
756 11158 14646 20534 3647 17728 11676 11843 12937 4402 8261 22944
9306 24009 10012 11081 3746 24325 8060 19826 842 8836 2898 5019
Desarrollo de un simulador DVB-T2 en Simulink 150
7575 7455 25244 4736 14400 22981 5543 8006 24203 13053 1120 5128
3482 9270 13059 15825 7453 23747 3656 24585 16542 17507 22462 14670
15627 15290 4198 22748 5842 13395 23918 16985 14929 3726 25350 24157
24896 16365 16423 13461 16615 8107 24741 3604 25904 8716 9604 20365
3729 17245 18448 9862 20831 25326 20517 24618 13282 5099 14183 8804
16455 17646 15376 18194 25528 1777 6066 21855 14372 12517 4488 17490
1400 8135 23375 20879 8476 4084 12936 25536 22309 16582 6402 24360
25119 23586 128 4761 10443 22536 8607 9752 25446 15053 1856 4040
377 21160 13474 5451 17170 5938 10256 11972 24210 17833 22047 16108
13075 9648 24546 13150 23867 7309 19798 2988 16858 4825 23950 15125
20526 3553 11525 23366 2452 17626 19265 20172 18060 24593 13255 1552
18839 21132 20119 15214 14705 7096 10174 5663 18651 19700 12524 14033
4127 2971 17499 16287 22368 21463 7943 18880 5567 8047 23363 6797
10651 24471 14325 4081 7258 4949 7044 1078 797 22910 20474 4318
21374 13231 22985 5056 3821 23718 14178 9978 19030 23594 8895 25358
6199 22056 7749 13310 3999 23697 16445 22636 5225 22437 24153 9442
7978 12177 2893 20778 3175 8645 11863 24623 10311 25767 17057 3691
20473 11294 9914 22815 2574 8439 3699 5431 24840 21908 16088 18244
8208 5755 19059 8541 24924 6454 11234 10492 16406 10831 11436 9649
16264 11275 24953 2347 12667 19190 7257 7174 24819 2938 2522 11749
3627 5969 13862 1538 23176 6353 2855 17720 2472 7428 573 15036];
ct2 = [0 18539 18661 1 10502 3002
2 9368 10761
3 12299 7828
4 15048 13362
5 18444 24640
6 20775 19175
7 18970 10971
8 5329 19982
9 11296 18655
10 15046 20659
11 7300 22140
12 22029 14477
13 11129 742
14 13254 13813
15 19234 13273
16 6079 21122
17 22782 5828
18 19775 4247
19 1660 19413
20 4403 3649
21 13371 25851
22 22770 21784
23 10757 14131
24 16071 21617
25 6393 3725
26 597 19968
27 5743 8084
28 6770 9548
29 4285 17542
30 13568 22599
31 1786 4617
32 23238 11648
33 19627 2030
34 13601 13458
35 13740 17328
36 25012 13944
37 22513 6687
38 4934 12587
39 21197 5133
40 22705 6938
41 7534 24633
42 24400 12797
43 21911 25712
44 12039 1140
45 24306 1021
46 14012 20747
47 11265 15219
48 4670 15531
49 9417 14359
50 2415 6504
51 24964 24690
52 14443 8816
53 6926 1291
54 6209 20806
Desarrollo de un simulador DVB-T2 en Simulink 151
55 13915 4079
56 24410 13196
57 13505 6117
58 9869 8220
59 1570 6044
60 25780 17387
61 20671 24913
62 24558 20591
63 12402 3702
64 8314 1357
65 20071 14616
66 17014 3688
67 19837 946
68 15195 12136
69 7758 22808
70 3564 2925
71 3434 7769];
case 2/3 %Table B.4: rate 2/3 nldpc = 64 800) ct1 = [0 10491 16043 506 12826 8065 8226 2767 240 18673 9279 10579 20928 1 17819 8313 6433 6224 5120 5824 12812 17187 9940 13447 13825 18483
2 17957 6024 8681 18628 12794 5915 14576 10970 12064 20437 4455 7151
3 19777 6183 9972 14536 8182 17749 11341 5556 4379 17434 15477 18532
4 4651 19689 1608 659 16707 14335 6143 3058 14618 17894 20684 5306
5 9778 2552 12096 12369 15198 16890 4851 3109 1700 18725 1997 15882
6 486 6111 13743 11537 5591 7433 15227 14145 1483 3887 17431 12430
7 20647 14311 11734 4180 8110 5525 12141 15761 18661 18441 10569 8192
8 3791 14759 15264 19918 10132 9062 10010 12786 10675 9682 19246 5454
9 19525 9485 7777 19999 8378 9209 3163 20232 6690 16518 716 7353
10 4588 6709 20202 10905 915 4317 11073 13576 16433 368 3508 21171
11 14072 4033 19959 12608 631 19494 14160 8249 10223 21504 12395 4322];
ct2 = [12 13800 14161 13 2948 9647
14 14693 16027
15 20506 11082
16 1143 9020
17 13501 4014
18 1548 2190
19 12216 21556
20 2095 19897
21 4189 7958
22 15940 10048
23 515 12614
24 8501 8450
25 17595 16784
26 5913 8495
27 16394 10423
28 7409 6981
29 6678 15939
30 20344 12987
31 2510 14588
32 17918 6655
33 6703 19451
34 496 4217
35 7290 5766
36 10521 8925
37 20379 11905
38 4090 5838
39 19082 17040
40 20233 12352
41 19365 19546
42 6249 19030
43 11037 19193
44 19760 11772
45 19644 7428
46 16076 3521
47 11779 21062
48 13062 9682
49 8934 5217
50 11087 3319
51 18892 4356
52 7894 3898
53 5963 4360
Desarrollo de un simulador DVB-T2 en Simulink 152
54 7346 11726
55 5182 5609
56 2412 17295
57 9845 20494
58 6687 1864
59 20564 5216
0 18226 17207
1 9380 8266
2 7073 3065
3 18252 13437
4 9161 15642
5 10714 10153
6 11585 9078
7 5359 9418
8 9024 9515
9 1206 16354
10 14994 1102
11 9375 20796
12 15964 6027
13 14789 6452
14 8002 18591
15 14742 14089
16 253 3045
17 1274 19286
18 14777 2044
19 13920 9900
20 452 7374
21 18206 9921
22 6131 5414
23 10077 9726
24 12045 5479
25 4322 7990
26 15616 5550
27 15561 10661
28 20718 7387
29 2518 18804
30 8984 2600
31 6516 17909
32 11148 98
33 20559 3704
34 7510 1569
35 16000 11692
36 9147 10303
37 16650 191
38 15577 18685
39 17167 20917
40 4256 3391
41 20092 17219
42 9218 5056
43 18429 8472
44 12093 20753
45 16345 12748
46 16023 11095
47 5048 17595
48 18995 4817
49 16483 3536
50 1439 16148
51 3661 3039
52 19010 18121
53 8968 11793
54 13427 18003
55 5303 3083
56 531 16668
57 4771 6722
58 5695 7960
59 3589 14630];
case 3/4 %Table B.4: rate 3/4 nldpc = 64 800) ct1 = [0 6385 7901 14611 13389 11200 3252 5243 2504 2722 821 7374 1 11359 2698 357 13824 12772 7244 6752 15310 852 2001 11417
2 7862 7977 6321 13612 12197 14449 15137 13860 1708 6399 13444
3 1560 11804 6975 13292 3646 3812 8772 7306 5795 14327 7866
4 7626 11407 14599 9689 1628 2113 10809 9283 1230 15241 4870
5 1610 5699 15876 9446 12515 1400 6303 5411 14181 13925 7358
Desarrollo de un simulador DVB-T2 en Simulink 153
6 4059 8836 3405 7853 7992 15336 5970 10368 10278 9675 4651
7 4441 3963 9153 2109 12683 7459 12030 12221 629 15212 406
8 6007 8411 5771 3497 543 14202 875 9186 6235 13908 3563
9 3232 6625 4795 546 9781 2071 7312 3399 7250 4932 12652
10 8820 10088 11090 7069 6585 13134 10158 7183 488 7455 9238
11 1903 10818 119 215 7558 11046 10615 11545 14784 7961 15619
12 3655 8736 4917 15874 5129 2134 15944 14768 7150 2692 1469
13 8316 3820 505 8923 6757 806 7957 4216 15589 13244 2622
14 14463 4852 15733 3041 11193 12860 13673 8152 6551 15108 8758];
ct2=[15 3149 11981 16 13416 6906
17 13098 13352
18 2009 14460
19 7207 4314
20 3312 3945
21 4418 6248
22 2669 13975
23 7571 9023
24 14172 2967
25 7271 7138
26 6135 13670
27 7490 14559
28 8657 2466
29 8599 12834
30 3470 3152
31 13917 4365
32 6024 13730
33 10973 14182
34 2464 13167
35 5281 15049
36 1103 1849
37 2058 1069
38 9654 6095
39 14311 7667
40 15617 8146
41 4588 11218
42 13660 6243
43 8578 7874
44 11741 2686
0 1022 1264
1 12604 9965
2 8217 2707
3 3156 11793
4 354 1514
5 6978 14058
6 7922 16079
7 15087 12138
8 5053 6470
9 12687 14932
10 15458 1763
11 8121 1721
12 12431 549
13 4129 7091
14 1426 8415
15 9783 7604
16 6295 11329
17 1409 12061
18 8065 9087
19 2918 8438
20 1293 14115
21 3922 13851
22 3851 4000
23 5865 1768
24 2655 14957
25 5565 6332
26 4303 12631
27 11653 12236
28 16025 7632
29 4655 14128
30 9584 13123
31 13987 9597
32 15409 12110
33 8754 15490
34 7416 15325
35 2909 15549
Desarrollo de un simulador DVB-T2 en Simulink 154
36 2995 8257
37 9406 4791
38 11111 4854
39 2812 8521
40 8476 14717
41 7820 15360
42 1179 7939
43 2357 8678
44 7703 6216
0 3477 7067
1 3931 13845
2 7675 12899
3 1754 8187
4 7785 1400
5 9213 5891
6 2494 7703
7 2576 7902
8 4821 15682
9 10426 11935
10 1810 904
11 11332 9264
12 11312 3570
13 14916 2650
14 7679 7842
15 6089 13084
16 3938 2751
17 8509 4648
18 12204 8917
19 5749 12443
20 12613 4431
21 1344 4014
22 8488 13850
23 1730 14896
24 14942 7126
25 14983 8863
26 6578 8564
27 4947 396
28 297 12805
29 13878 6692
30 11857 11186
31 14395 11493
32 16145 12251
33 13462 7428
34 14526 13119
35 2535 11243
36 6465 12690
37 6872 9334
38 15371 14023
39 8101 10187
40 11963 4848
41 15125 6119
42 8051 14465
43 11139 5167
44 2883 14521];
case 4/5 %Table B.4: rate 4/5 nldpc = 64 800) ct1 = [0 149 11212 5575 6360 12559 8108 8505 408 10026 12828 1 5237 490 10677 4998 3869 3734 3092 3509 7703 10305
2 8742 5553 2820 7085 12116 10485 564 7795 2972 2157
3 2699 4304 8350 712 2841 3250 4731 10105 517 7516
4 12067 1351 11992 12191 11267 5161 537 6166 4246 2363
5 6828 7107 2127 3724 5743 11040 10756 4073 1011 3422
6 11259 1216 9526 1466 10816 940 3744 2815 11506 11573
7 4549 11507 1118 1274 11751 5207 7854 12803 4047 6484
8 8430 4115 9440 413 4455 2262 7915 12402 8579 7052
9 3885 9126 5665 4505 2343 253 4707 3742 4166 1556
10 1704 8936 6775 8639 8179 7954 8234 7850 8883 8713
11 11716 4344 9087 11264 2274 8832 9147 11930 6054 5455
12 7323 3970 10329 2170 8262 3854 2087 12899 9497 11700
13 4418 1467 2490 5841 817 11453 533 11217 11962 5251
14 1541 4525 7976 3457 9536 7725 3788 2982 6307 5997
15 11484 2739 4023 12107 6516 551 2572 6628 8150 9852
16 6070 1761 4627 6534 7913 3730 11866 1813 12306 8249
17 12441 5489 8748 7837 7660 2102 11341 2936 6712 11977];
Desarrollo de un simulador DVB-T2 en Simulink 155
ct2 = [18 10155 4210 19 1010 10483
20 8900 10250
21 10243 12278
22 7070 4397
23 12271 3887
24 11980 6836
25 9514 4356
26 7137 10281
27 11881 2526
28 1969 11477
29 3044 10921
30 2236 8724
31 9104 6340
32 7342 8582
33 11675 10405
34 6467 12775
35 3186 12198
0 9621 11445
1 7486 5611
2 4319 4879
3 2196 344
4 7527 6650
5 10693 2440
6 6755 2706
7 5144 5998
8 11043 8033
9 4846 4435
10 4157 9228
11 12270 6562
12 11954 7592
13 7420 2592
14 8810 9636
15 689 5430
16 920 1304
17 1253 11934
18 9559 6016
19 312 7589
20 4439 4197
21 4002 9555
22 12232 7779
23 1494 8782
24 10749 3969
25 4368 3479
26 6316 5342
27 2455 3493
28 12157 7405
29 6598 11495
30 11805 4455
31 9625 2090
32 4731 2321
33 3578 2608
34 8504 1849
35 4027 1151
0 5647 4935
1 4219 1870
2 10968 8054
3 6970 5447
4 3217 5638
5 8972 669
6 5618 12472
7 1457 1280
8 8868 3883
9 8866 1224
10 8371 5972
11 266 4405
12 3706 3244
13 6039 5844
14 7200 3283
15 1502 11282
16 12318 2202
17 4523 965
18 9587 7011
19 2552 2051
20 12045 10306
Desarrollo de un simulador DVB-T2 en Simulink 156
21 11070 5104
22 6627 6906
23 9889 2121
24 829 9701
25 2201 1819
26 6689 12925
27 2139 8757
28 12004 5948
29 8704 3191
30 8171 10933
31 6297 7116
32 616 7146
33 5142 9761
34 10377 8138
35 7616 5811
0 7285 9863
1 7764 10867
2 12343 9019
3 4414 8331
4 3464 642
5 6960 2039
6 786 3021
7 710 2086
8 7423 5601
9 8120 4885
10 12385 11990
11 9739 10034
12 424 10162
13 1347 7597
14 1450 112
15 7965 8478
16 8945 7397
17 6590 8316
18 6838 9011
19 6174 9410
20 255 113
21 6197 5835
22 12902 3844
23 4377 3505
24 5478 8672
25 4453 2132
26 9724 1380
27 12131 11526
28 12323 9511
29 8231 1752
30 497 9022
31 9288 3080
32 2481 7515
33 2696 268
34 4023 12341
35 7108 5553];
case 5/6 %Table B.4: rate 5/6 nldpc = 64 800) ct1 = [0 4362 416 8909 4156 3216 3112 2560 2912 6405 8593 4969 6723 1 2479 1786 8978 3011 4339 9313 6397 2957 7288 5484 6031 10217
2 10175 9009 9889 3091 4985 7267 4092 8874 5671 2777 2189 8716
3 9052 4795 3924 3370 10058 1128 9996 10165 9360 4297 434 5138
4 2379 7834 4835 2327 9843 804 329 8353 7167 3070 1528 7311
5 3435 7871 348 3693 1876 6585 10340 7144 5870 2084 4052 2780
6 3917 3111 3476 1304 10331 5939 5199 1611 1991 699 8316 9960
7 6883 3237 1717 10752 7891 9764 4745 3888 10009 4176 4614 1567
8 10587 2195 1689 2968 5420 2580 2883 6496 111 6023 1024 4449
9 3786 8593 2074 3321 5057 1450 3840 5444 6572 3094 9892 1512
10 8548 1848 10372 4585 7313 6536 6379 1766 9462 2456 5606 9975
11 8204 10593 7935 3636 3882 394 5968 8561 2395 7289 9267 9978
12 7795 74 1633 9542 6867 7352 6417 7568 10623 725 2531 9115
13 7151 2482 4260 5003 10105 7419 9203 6691 8798 2092 8263 3755
14 3600 570 4527 200 9718 6771 1995 8902 5446 768 1103 6520];
ct2 = [15 6304 7621 16 6498 9209
17 7293 6786
18 5950 1708
Desarrollo de un simulador DVB-T2 en Simulink 157
19 8521 1793
20 6174 7854
21 9773 1190
22 9517 10268
23 2181 9349
24 1949 5560
25 1556 555
26 8600 3827
27 5072 1057
28 7928 3542
29 3226 3762
0 7045 2420
1 9645 2641
2 2774 2452
3 5331 2031
4 9400 7503
5 1850 2338
6 10456 9774
7 1692 9276
8 10037 4038
9 3964 338
10 2640 5087
11 858 3473
12 5582 5683
13 9523 916
14 4107 1559
15 4506 3491
16 8191 4182
17 10192 6157
18 5668 3305
19 3449 1540
20 4766 2697
21 4069 6675
22 1117 1016
23 5619 3085
24 8483 8400
25 8255 394
26 6338 5042
27 6174 5119
28 7203 1989
29 1781 5174
0 1464 3559
1 3376 4214
2 7238 67
3 10595 8831
4 1221 6513
5 5300 4652
6 1429 9749
7 7878 5131
8 4435 10284
9 6331 5507
10 6662 4941
11 9614 10238
12 8400 8025
13 9156 5630
14 7067 8878
15 9027 3415
16 1690 3866
17 2854 8469
18 6206 630
19 363 5453
20 4125 7008
21 1612 6702
22 9069 9226
23 5767 4060
24 3743 9237
25 7018 5572
26 8892 4536
27 853 6064
28 8069 5893
29 2051 2885
0 10691 3153
1 3602 4055
2 328 1717
3 2219 9299
4 1939 7898
5 617 206
Desarrollo de un simulador DVB-T2 en Simulink 158
6 8544 1374
7 10676 3240
8 6672 9489
9 3170 7457
10 7868 5731
11 6121 10732
12 4843 9132
13 580 9591
14 6267 9290
15 3009 2268
16 195 2419
17 8016 1557
18 1516 9195
19 8062 9064
20 2095 8968
21 753 7326
22 6291 3833
23 2614 7844
24 2303 646
25 2075 611
26 4687 362
27 8684 9940
28 4830 2065
29 7038 1363
0 1769 7837
1 3801 1689
2 10070 2359
3 3667 9918
4 1914 6920
5 4244 5669
6 10245 7821
7 7648 3944
8 3310 5488
9 6346 9666
10 7088 6122
11 1291 7827
12 10592 8945
13 3609 7120
14 9168 9112
15 6203 8052
16 3330 2895
17 4264 10563
18 10556 6496
19 8807 7645
20 1999 4530
21 9202 6818
22 3403 1734
23 2106 9023
24 6881 3883
25 3895 2171
26 4062 6424
27 3755 9536
28 4683 2131
29 7347 8027];
otherwise error('comm:dvbt2ldpc:UnsupportedCodeRate', ... 'Code rate not supported'); end