La Radio Definida por Software (SDR) es un método que reemplaza el trabajo del metal (lo cual, en principio, es beneficioso para la salud) por el dolor de cabeza de la programación. Se prevé un gran futuro para la SDR, y su principal ventaja es la eliminación de limitaciones en la implementación de protocolos de radio. Un ejemplo es el método de modulación OFDM (Multiplexión por División de Frecuencia Ortogonal), que solo se hizo posible a través de la SDR. Pero también hay otra posibilidad puramente ingenieril en la SDR: la capacidad de controlar y visualizar la señal en cualquier punto arbitrario con el mínimo esfuerzo.
Uno de los estándares de comunicación interesantes es la televisión terrestre DVB-T2.
¿Por qué? Por supuesto, se puede encender el televisor sin levantarse, pero no hay nada que ver y esto ya no es mi opinión, sino un hecho médico.
En serio, DVB-T2 fue desarrollado con un conjunto de características muy amplias, que incluyen:
- aplicación interior
- modulación de QPSK a 256QAM
- ancho de banda de 1,7 MHz a 8 MHz
Existen experiencias de recepción de televisión digital basadas en el principio de SDR. El estándar DVB-T está en el conocido proyecto GNURadio. Hay un bloque gr-dvbs2rx para el estándar DVB-T2 (todo para el mismo GNURadio), pero requiere la sincronización previa de la señal y es inspirador (gracias a Ron Economos).
¿Qué tenemos?
Hay un estándar ETSI EN 302 755, que describe detalladamente la transmisión, pero no la recepción.
La señal en el aire con una frecuencia de muestreo de 9,14285714285714285714 MHz, modulada por COFDM con 32768 portadoras, en un ancho de banda de 8 MHz.
Se recomienda recibir tales señales con el doble de la frecuencia de muestreo (para no perder nada) y en una frecuencia intermedia mayor que el ancho de banda (recepción superheterodina) para evitar distorsiones por corriente continua (DC) y el "deslizamiento" del oscilador local (LO) en la entrada del receptor. Los dispositivos que cumplen con estas condiciones son demasiado caros para una mera curiosidad.
SdrPlay con 10Msps 10bit o AirSpy con características similares son mucho más económicos. Aquí no se habla de duplicar la frecuencia de muestreo, y la recepción solo se puede realizar con conversión directa (Zero IF). Por lo tanto, por razones financieras, nos pasamos al lado de los adeptos del SDR "puro" con el mínimo de conversión de hardware.
Era necesario resolver dos tareas:
- Sincronización. Determinar la desviación exacta de la frecuencia de radio con precisión de fase y la desviación de la frecuencia de muestreo.
- Reescribir el estándar DVB-T2 de atrás hacia adelante.
La segunda tarea requiere mucho más código, pero se puede resolver con perseverancia y se verifica fácilmente con señales de prueba.
Las señales de prueba están disponibles en el servidor de BBC ftp://ftp.kw.bbc.co.uk/t2refs/ con instrucciones detalladas.
La solución de la primera tarea depende en gran medida de las características del dispositivo SDR y de las capacidades de control. Usar las funciones de control de frecuencia recomendadas, como se dice, no tuvo éxito, pero proporcionó mucha experiencia en la lectura de documentación técnica, programación, visualización de series, la resolución de cuestiones filosóficas..., en resumen, no se logró abandonar el proyecto.
La fe en el «pure SDR» solo se ha fortalecido.
Tomamos la señal tal como es, la interpolamos prácticamente hasta un análogo y extraemos ya un discreto, pero similar a la real.
Diagrama de bloques de sincronización:

Aquí todo está según el libro. A partir de aquí es un poco más complicado. Es necesario calcular las desviaciones. Hay mucha literatura y artículos de investigación que comparan las ventajas y desventajas de diferentes métodos. De la clásica, está «Michael Speth, Stefan Fechtel, Gunnar Fock, Heinrich Meyr, Optimum Receiver Design for OFDM-Based Broadband Transmission – Parte I y II». Solo que no he conocido a ningún ingeniero que sepa y quiera calcular, por lo que se aplicó un enfoque ingenieril. Con el mismo método de sincronización se introdujeron desajustes en la señal de prueba. Mediante la comparación de diferentes métricas con desviaciones conocidas (yo mismo las introduje) se eligieron las mejores para el rendimiento y la simplicidad de implementación. La desviación de la frecuencia de recepción se calcula comparando el intervalo de protección y su parte repetitiva. La fase de la frecuencia de recepción y la frecuencia de muestreo se evalúan según la desviación de fase de las señales piloto y se utiliza en el ecualizador OFDM de forma simple y lineal.
Característica del ecualizador:

Y todo esto funciona bien si se sabe cuándo comienza el cuadro DVB-T2. Para ello, en la señal se transmite el símbolo de la preámbulo P1. El método para detectar y decodificar el símbolo P1 está descrito en la Especificación Técnica ETSI TS 102 831 (allí también hay muchas recomendaciones útiles sobre la recepción).
Autocorrelación de la señal P1 (el punto más alto del inicio del cuadro):

La primera imagen (solo quedan seis meses antes de la imagen en movimiento...):

Y es aquí donde descubrimos qué es el desequilibrio de IQ, el desplazamiento de DC y la fuga de LO. Generalmente, la compensación de estas distorsiones específicas de la conversión directa se realiza en el controlador del dispositivo SDR. Por eso, ha llevado tiempo entender que disparar estrellas de una constelación amigable QAM64 es el trabajo de las funciones de compensación. Tuve que desconectar todo y escribir mi propia solución.
Y así, la imagen comenzó a moverse:

Modulación QAM64 con un giro específico de la constelación en el estándar DVB-T2:

En resumen, es el resultado de pasar la carne picada de nuevo a través de la picadora. El estándar prevé cuatro tipos de entrelazado:
- entretenimiento de bits (entretenimiento de bits con torsiones en columnas)
- entretenimiento de celdas (entretenimiento de celdas en el bloque de codificación)
- entretenimiento temporal (también en el grupo de bloques de codificación)
- entretenimiento de frecuencia (entretenimiento de frecuencias en el símbolo OFDM)
Al final, tenemos esta señal de entrada:

Todo esto es una lucha por la resistencia a interferencias de la señal codificada.
Summary
Ahora podemos ver no solo la señal en sí y su forma, sino también la información de servicio.
En el aire hay dos multiplexores. En cada uno, hay dos canales físicos (PLP).
Una rareza se notó en el primer multiplexor: el primer PLP tiene la etiqueta 'multiple', lo cual es lógico, ya que no está solo en el multiplexor, mientras que el segundo PLP tiene la etiqueta 'single' y eso es cuestionable.
Aún más interesante es la segunda rareza en el segundo multiplexor: todos los programas están en el primer PLP, y en el segundo PLP a baja velocidad hay una señal de naturaleza desconocida. Al menos, el reproductor VLC, que entiende alrededor de una docena de formatos de video y tanto de audio, no la reconoce.
.
El proyecto fue creado con el objetivo de determinar la posibilidad de decodificar DVB-T2 usando SdrPlay (y ahora también AirSpy), por lo que esta es incluso una versión no alfa.
P.D. Mientras se escribía este artículo con dificultad, logré integrar PlutoSDR en el proyecto.
Alguien dirá de inmediato que ahí solo hay 6Msps para la señal IQ en la salida USB2.0, mientras que se necesitan al menos 9,2Msps, pero eso ya es otro tema.
Fuente: habr.com
