2 votos

DSP en la Raspberry Pi

Para un proyecto en el que estoy trabajando actualmente, necesito monitorizar un canal de radiofrecuencia (RF) VHF, utilizando una radio definida por software (SDR) que está conectada a una Raspberry Pi 3B.

He implementado con éxito el receptor, utilizando los comandos de terminal proporcionados por la herramienta rtl_fm. Además de esto, me gustaría llevar a cabo el procesamiento digital de señales (DSP) en forma de filtros FIR e IIR, para mejorar la calidad de la señal, sin embargo, no estoy seguro de cómo proceder, y cómo implementar estos (qué herramientas utilizar) ya que el Pi tiene recursos limitados.

También me gustaría guardar estas señales de RF recibidas como archivos de audio, para escucharlas más tarde.

Espero que todos ustedes puedan ofrecer algún consejo sobre las herramientas DSP a utilizar para el filtrado digital en sistemas de bajos recursos como el Pi.

0 votos

Voto por cerrar esta pregunta como off-topic porque es una tarea puramente de software sin ningún componente de ingeniería eléctrica, porque incluso en Stackoverflow donde eso sería on topic, sigue siendo "too board" para la misión de Stack Exchange, y porque es una petición prohibida de recomendaciones de herramientas o librerías.

0 votos

FFT en raspberry pi: aholme.es/GPU_FFT/Main.htm

4voto

DmitrySandalov Puntos 129

Así que, en primer lugar, soy parcial. Mantengo la Radio GNU código fuente.

Por lo tanto, lo que quieres hacer lo cumple perfectamente GNU Radio

  • Para una conexión flexible de los pasos de procesamiento de la señal, se utilizaría el paradigma de "diagrama de flujo de procesamiento de la señal compuesto por bloques de procesamiento de la señal existentes" de GNU Radio, junto con los excelentes bloques de filtro FIR (tal vez el gr_filter_design ) para ... filtrar cosas, el Bloque de Fichero para guardar en un archivo, etc.
  • Para el procesamiento en tiempo real de datos de gran ancho de banda (es decir, > 10 MS/s en un RPi3) necesitarías un código optimizado para la CPU: Las versiones actuales de GNU Radio utilizan los núcleos optimizados de VOLK; y gracias a Albin Stigö, éstos incluyen versiones optimizadas para el procesador de la Pi.

Así que, en mi humilde opinión, dado que parece que ya sabes lo que es un filtro FIR: sumérgete directamente en el Tutoriales guiados de GNU Radio Comienza con el capítulo "0" sobre por qué quieres GNU Radio y ve subiendo.

Si ejecuta Ubuntu o Debian en una versión actual en el Pi (no tanto: Raspbian), puede instalar fácilmente una versión muy reciente de GNU Radio en que simplemente a través de una instalación por apt .

¡Anímate! A menudo es una buena idea grabar y hacer un prototipo del procesamiento de la señal en un PC antes de trasladar todo a la Pi. GNU Radio lo hace fácil.

1voto

user79089 Puntos 48

Yo no llamaría a la Rpi "de bajos recursos". Se pueden hacer bastantes cálculos numéricos con bastante rapidez. El cuello de botella está en el rendimiento en tiempo real de cualquier procesamiento que se aplique, que es más un artefacto del sistema operativo utilizado que del propio hardware de la Rpi. Yo empezaría por buscar una solución basada en los paquetes SciPy y Numpy de Python. Puedes hacer un prototipo de la mayor parte de tu sistema en tu máquina normal y probarlo en la Pi después. No estoy muy familiarizado con la radio definida por software, pero imagino que los datos que recibirás serán algo parecido a un flujo de datos del espectro de radio a una velocidad de muestreo de unos cientos de hercios. Una implementación de python debería manejar eso bien con la sobrecarga del intérprete siempre y cuando su tasa de datos sea baja. Ahora bien, donde el real el problema puede estar en la latencia de la comunicación con el dongle SDR, pero las pruebas son realmente la única manera de averiguarlo. espero que esto ayude

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X