Mi primer Receptor "Software Defined Radio" (SDR) - 3ª Parte

Demodulación

full-spectrum-peq


1ª Parte - Etapa de Captura
2ª Parte - Downconverter
3ª Parte - Demodulación

Apéndice - Espectrograma

 

English Version

Diagrama del proceso de demodulación:

non-realtime-sdr-demodulation-diagram

 

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:

sdradio-windows-wave-in-mixer

Y arranco SDRadio:

sdradio-screenshoot

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.

linrad-screenshoot

¡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.
 

3.10 - Demodular con baudline

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
 

English Version

v0.1 04-septiembre-2004
v0 11-junio-2004