Mi primer Receptor "Software Defined Radio" (SDR) - 3ª Parte
Demodulación
1ª Parte - Etapa de Captura
2ª Parte - Downconverter
3ª Parte - Demodulación
Apéndice - Espectrograma
Diagrama del proceso de demodulación:
Demodulación
3.1 - Fichero .wav
Partimos del fichero radio-downconverter-28000-sps-162-khz.wav obtenido mediante baudline en la parte anterior del artículo.
Puedes obtener una copia aquí: Download Page
Nombre:
radio-downconverter-28000-sps-162-khz.wav.gz
(!)
Tamaño: 4298000 bytes
Muestreo: 28000 Sps
Duración: 2 min 34 seg
Rango: 154492 Hz a 168464 Hz
Adquisición: 00:30h 06-Junio-2004
Lugar: Tarragona (España)
(!) Por algún motivo, el IExplorer no almacena correctamente el nombre del archivo en el disco duro y le pone ".wav.wav" al final del nombre. Si te sucede eso, debes renombrarlo y ponerle ".wav.gz" al final del nombre y descomprimirlo con cualquier herramienta ZIP.
Para la etapa demoduladora utilizaremos dos programas diferentes: Linrad y SDRadio. Linrad es una herramienta compleja ideal para personas experimentadas y SDRadio es un programa compacto de fácil manejo. Con ellos obtendremos el mismo resultado (demodular) pero con métodos diferentes.
En el caso de Linrad, podemos procesar directamente el fichero .wav en la máquina Linux donde hemos realizado la conversión previa pero SDradio funciona bajo MS Windows y esto nos obliga a llevar la señal hasta otro PC (ver diagrama anterior).
3.2 - SDRadio
SDRadio (http://www.sdradio.org/) es un excelente programa demodulador que utiliza la tarjeta de sonido bajo MS Windows. No requiere configuración previa: se selecciona mediante el mezclador de Windows la entrada de señal y se arranca SDradio.
En mi caso, he reproducido el fichero .wav con la señal original desde mi máquina de pruebas Linux de la siguiente manera:
# sox -t .wav radio-downconverter-28000-sps-162-khz.wav -t ossdsp /dev/dsp3
(/dev/dsp3 es mi tarjeta de sonido Sound Blaster)
Mediante un cable he conectado la salida (Line Out) a la entrada (Line In) del la máquina MS Windows (ver diagrama anterior).
En la máquina Windows selecciono la entrada de sonido activa:
Y arranco SDRadio:
Solo falta: Pulsar Rx, seleccionar el modo AM, centrar la frecuencia y ajustar el ancho de banda.
3.3 - I/Q
SDRadio utiliza como fuente una señal compleja, es decir: asigna a un lado del estereo de la entrada de sonido, el componente I y al otro lado el Q. El fichero .wav original es una señal real (mono) y el comando SOX envía el mismo sonido a cada lado de la salida del PC Linux. ¿Funciona entonces? Os aseguro que si. He escuchado perfectamente por mis altavoces la emisora de radio difusión.
3.4 - AM, USB, LSB
En modo AM la emisora se recibe perfectamente pero para mi sorpresa también se puede escuchar (con calidad aceptable) en USB y LSB. ¿Doble banda lateral?.
3.5 - ¿Puedo demodular con SDRadio al mismo tiempo que proceso la captura con baudline?
Teóricamente si, pero sería necesaria una máquina potente que le permita a baudline trabajar en tiempo real. La formula sería:
# sox -t .wav radio-capture-896000.wav -t sw - | ./baudline -stdin -samplerate 896000 -stdout | sox -r 28000 -w -t sw - -t ossdsp /dev/dsp3
Siendo /dev/dsp3 la tarjeta de sonido de la máquina Linux.
3.6 - Linrad
Linrad (http://antennspecialisten.se/~sm5bsz/linuxdsp/linrad.htm) es una herramienta SDR amateur de características profesionales. Esta especializado en la recepción de "señales débiles" y CW pero incluye AM, SSB y FM. La principal ventaja en este caso es que permite procesar el fichero .wav directamente bajo Linux.
3.7 - ¿Puede Linrad conectarse directamente al Bt878A?
Linrad puede conectarse a cualquier periférico de sonido montado bajo Linux pero por ahora presenta problemas de compatibilidad con btaudio. El escollo principal es que este modulo no implementa la función SNDCTL_DSP_SETFRAGMENT del OSS.
3.8 - Proceso .wav en diferido
Una vez instalado y configurado Linrad con nuestra tarjeta de sonido como salida, podemos demodular una señal partiendo de un fichero .wav. Para hacerlo, primero debemos crear un fichero llamado adwav en la raíz del directorio principal de Linrad. El fichero debe incluir una sola línea con la ruta y nombre del fichero .wav que queremos procesar y un nombre (el que deseemos) para el fichero de parámetros. Podemos crear adwav así:
# echo "radio-downconverter-28000-sps-162-khz.wav radio-downconverter-28000-sps-162-khz.par" > adwav
Arrancamos Linrad. En el menu principal seleccionamos la opción "2=Process first file named in 'adwav'". La primera vez, el programa nos preguntara los parámetros para realizar la demodulación y acto seguido arrancara la ventana con el analizador de espectro y el demodulador.
¡Necesito ayuda para completar este punto!
¿Eres un experto de Linrad?
3.9 - ¿Puedo demodular con Linrad al mismo tiempo que capturo con SOX?
Teóricamente si. Linrad no incorpora la función sdtin pero podemos utilizar un fichero fifo de la siguiente manera:
# cd linrad
# mkfifo fifo.wav
# echo "fifo.wav fifo.par" > adwav
# ./linrad
Linrad arranca y seleccionamos la opción para procesar el primer fichero .wav de la lista.
Abrimos otra consola (CTRL+ALT+F2) y:
# cd linrad
# sox -r 896000 -w -t ossdsp /dev/dsp1 -t .wav fifo.wav
Volvemos al la consola del Linrad (CTRL+ALT+F1) y si todo ha ido bien estaremos procesando el stream con apenas unos segundos de retraso.
En mi caso no he podido verificar completamente este método por falta de
memoria debido al numero elevado de Sps. Linrad me dice: "Out of memory. Try
less demanding parameters" en todas las configuraciones que he probado.
Actualización 09-2004 eMail de Erik Olson (Extracto del email original) ... I downloaded the file: http://www.domenech.org/homebrew-sdr/radio-downconverter-28000-sps-162-khz.wav.gz and listened to it in baudline. I was able to demodulate the AM signal and listen to it with baudline. I heard a techno song and then a male and female announcer talking in French. This is how I demodulated and listened: In baudline's Play Deck window. Modify: shift slider set to -6469 Hz high pass filter (HPF) enable and set to 164 Hz Digital Gain set to +48 dB Then play. You can use the left and right arrow keys to fine tune the slider values. You can also change these settings while baudline is playing. ... |
- Agradecimientos:
Erik Olson
Michael Oexner
Eduardo Alonso
Luis Padilla
Gerd Knorr
- Autor:
Juan Domenech Fernandez
http://www.domenech.org
v0.1 04-septiembre-2004
v0 11-junio-2004