La medida del ruido solar de fondo con un SDR

Para la medida del ruido solar de fondo (Solar Radio Noise) durante el eclipse total de sol del 12-8-2026 se usará un dispositivo SDR y programas Phyton

Hardware

Se ha elegido un doggle o pincho SDR por ser un dispositivo muy popular y que está al alcance de todos

En las primeras pruebas por disponibilidad se ha usado un RTL-SDR V4, pero dado que se va a realizar la medida en la frecuencia de 29 MHZ podría usarse un clon como por ejemplo el NEWGEN.RTL2832SDR (NSENDATO)

Para las primeras pruebas se usó un macOS, pero una vez depurados los programas se ejecutará en una raspberry pi

Software

Tanto para el RTL-SDR como para sus clones existen librerias que nos facilitan el desearrollo de los programas de medida del ruido de fondo

Un ejemplo de scrip en Python que usa pyrtlsdr es el siguiente

from rtlsdr import RtlSdr
import numpy as np
import time
import csv
frecuencia = 100e6  # 100 MHz
intervalo = 5       # segundos entre mediciones
duracion = 3600     # duración total, e.g. 1 hora (3600 s)
sdr = RtlSdr()
sdr.sample_rate = 2.4e6
sdr.center_freq = frecuencia
sdr.gain = 'auto'
with open("señal_ruido.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(["timestamp", "power_dB"])
    inicio = time.time()
    while time.time() - inicio < duracion:
        muestras = sdr.read_samples(256*1024)
        potencia = 10*np.log10(np.mean(np.abs(muestras)**2))
        writer.writerow([time.strftime("%Y-%m-%d %H:%M:%S"), potencia])
        print(f"{time.strftime('%H:%M:%S')} – Potencia: {potencia:.2f} dB")
        time.sleep(intervalo)

sdr.close()

Tambien existe la posibilidad de usar programs como Radio-Sky Spectrograph que funciona sobre Windows pero que se alejaba de nuestro objetivo

Se pensó en desarrollar dos programas:
  • noise_logger.py
    • Este programa que maneja el SDR para medir el ruido de fondoplot_noise.py en una frecuencia (29 MHz) con un ancho de banda (1 MHz) en intervalos (2s) durante un periodo de tiempo (2h30) que lo almacenara en un fichero en formato cvs. Durante las pruebas se vio que el nombre del fichero fuera dinamico y guardara fecha y hora de inicio
  • plot_noise.py
    • Este programa lee el fichero en formato cvs (que tambien podria importarse desde una hoja de calculo tipo excel o similar) y lo representara en una gráfica. Durante las pruebas se vio la necesidad de desarrollar un segundo programa que comparara dos ficheros uno de referencia y otro de la observación (plot_noise_dual.py)
Para la programación se uso la inestimable ayuda de la IA (Gemini y Claude)

Las versiones mas recientes de los programas estan en Las versiones actualizadas de ambos programas se pueden dscargar desde https://github.com/joanpao/solareclipse-hf-noiselogger bajo licencia MIT 

Ejecución del programa noise_logger.py en un entorno macOs

Abrir terminal

Ejecutar

pip3 install pyrtlsdr numpy

Si contesta
[notice] A new release of pip is available: 25.3 -> 26.1.2
[notice] To update, run: pip install --upgrade pip

Entonces ejecutar
pip install --upgrade pip

Crear directorio

mkdir ~/eclipse_sdr && cd ~/eclipse_sdr

Crear el fichero del script py y copiar el programa, o descargarlo directamente desde GitHub

nano noise_logger.py

Si se copia el programa, salir del editor nano con CTRL+o INTRO CRTL-X

Para macOS incluir en el principio del programa

import ctypes # Parche global para bibliotecas librtlsdr antiguas en macOS / Python 3.14 _original_getitem = ctypes.CDLL.__getitem__ def _patched_getitem(self, name_or_ordinal): try: return _original_getitem(self, name_or_ordinal) except AttributeError: # Si la función C no existe en el sistema, devuelve una función dummy que no rompe el programa return ctypes.CFUNCTYPE(ctypes.c_int)(lambda *args: 0) ctypes.CDLL.__getitem__ = _patched_getitem

Ejecutar

python3 noise_logger.py


Ejecución del programa plot_noise.py en un entorno macOs

Para ejecutar el programa de represntación grafica debemos crear un fichero para el script Python en el mismo directorio donde estén los ficheros generados por noise_logger.py y copiar el programa, o descargarlo directamente desde GitHub

nano plot_noise.py

Copiar programa, salir con CTRL+o INTRO CRTL-X. Tras lo cual se instalan la librerias de la aplicación de representación y ejcutar

pip3 install pandas matplotlib

Validar el fuente

python3 plot_noise.py test

Ejecutar el fuente

python3 plot_noise.py

Grafica de pruebas


Prueba de funcionamiento correcto de los programas

Una primera prueba que debemos ahcer es comprobamos el correcto funcionamiento de la instalación (Antena, cable de alimenación, SDR y programas) haciendo que reciba la señal de una estación de radiodifusión de FM en este caso en la frecuencia de 98 MHz, quitando la antena en algun momento.

python3 noise_logger.py
Found Rafael Micro R828D tuner RTL-SDR Blog V4 Detected Exact sample rate is: 1000000.026491 Hz --- Conectado con éxito al RTL-SDR --- Frecuencia central : 98.000 MHz Ganancia fija : 25.4 dB Guardando datos en : eclipse_ruido_29_2.csv [2026-07-24 21:34:09] Potencia de ruido: -14.96 dB [2026-07-24 21:34:29] Potencia de ruido: -15.11 dB [2026-07-24 21:34:49] Potencia de ruido: -15.09 dB [2026-07-24 21:35:10] Potencia de ruido: -36.01 dB [2026-07-24 21:35:30] Potencia de ruido: -45.10 dB [2026-07-24 21:35:50] Potencia de ruido: -45.09 dB ^C [!] Medición detenida por el usuario. [+] Dispositivo SDR liberado correctamente.
Prueba de funcionamiento del programa
Se sintoniza una emisora en FM y despues se quita la antena al SDR, viendose una caída clara del ruido

A continuación repetimos la prueba con la frecuencia de 29MHz y vemos si reacciona como en el caso anterior cuando quitamos la antena.


Prueba de funcionamiento del programa
Se sintoniza la frecuencia de 29MHz y despues es quita la antena al SDR, viendose una caida del ruido de unos 0,2 dB

Una prueba mas real es ver como varia el ruido solar de fondo en el amaencer y en el anochecer.

Prueba de funcionamiento del programa
Se sintoniza la frecuencia de 29MHz durante el amanecer viendo como el ruido aumenta durante el dia frente a la noche

Prueba de funcionamiento del programa
Se sintoniza la frecuencia de 29MHz durante el anochecer viendo como el ruido disminuye cuando entra la noche 

Para valorar el entorno de ruido artificial en el que se desarrollarán las medidas y que pueden influir en el dia del eclipse podemos hacer pruebas encendiendo luces, electrodomesticos, etc. Por ejemplo personalmente descubrí el hecho de que el nivel de ruido medido variaba según si el macBook estaba o no conectado a la red elécrica. Recuerde que las luces LED generan ruido radioeléctrico

Ejemplo de como puede modificarse el ruido recibido con una antena interior cambiando la alimentación del ordenador de externa a bateria (casi 3 dB menos ruido)  y de nuevo a externa 

Consideraciones prácticas

Frecuencia central

Se prueba con frecuencias centrales en 28,5 y 29,0 MHz para un ancho de banda de 1 MHz siendo los resultados los siguientes
fc: 28,5 MHz = -15 dB
fc: 29.0 MHz = -44.7 dB 

Parece que se tiene una banda mas limpia con la fc=29,0 MHz por lo que es la que se elige.

Esta prueba debe hacerse en cada entorno.

Antena

Se ha usado hasta el momento una End-Fed de 16,2m con UNUn 9:1 y contrantena de 2,5m

COmo es una medida relativa, no se piensa tocar

Condiciones de la medida

Durante el periodo de medida hay que mantener las condiciones del entorno fijas, para no distorsionarla.


Referencias

Advertencia importante

Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.


© 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.

No hay comentarios:

Publicar un comentario

KiwiSDR + WSPR Daemon

Existe la posibilidad de usar de forma conjunta KiwiSDR con el programa  WSPR Daemon  instalado en un entorno LINUX (p.e. Raspberry Pi) y c...