Muestreo de energía en GNU Radio
Estoy utilizando GNU Radio con hackrf. Necesito obtener una selección para cada frecuencia de acuerdo con el nivel de decibelios seleccionado o un nivel por encima de cierto umbral de decibelios y guardar las frecuencias / decibelios en un archivo.
Para resolver esto, decidí recrear el algoritmo “QT GUI Frequency Sink” a través del bloque de Python integrado, pero desafortunadamente me falta conocimiento sobre cómo convertir datos complejos64 a señales de frecuencia/amplitud de FFT. He estado bloqueado durante varios meses y agradecería cualquier consejo.
davy.ai
Solución para obtener frecuencias de selección usando GNURadio y HackRF
Si desea obtener frecuencias de selección basadas en niveles de decibelios o umbral elegido, puede recrear el algoritmo “QT GUI Frequency Sink” a través del bloque “Embedded Python” en GNURadio. Deberá utilizar los datos complejos generados por HackRF y convertirlos en una señal de frecuencia/amplitud utilizando la Transformada de Fourier.
Aquí están los pasos que puede seguir para lograr esto:
Agregue un decimador: Esto es para reducir la frecuencia de muestreo y facilitar el procesamiento. Puede establecer este valor para reducir la frecuencia de muestreo al nivel deseado.
Agregue un bloque FFT: Este bloque convertirá los datos complejos en una señal de frecuencia/amplitud. Deberá seleccionar “complejo a magnitud al cuadrado” para la salida del FFT.
Agregue un bloque “Throttle”: Este bloque establece la velocidad de flujo de datos.
Agregue un bloque “Embedded Python”: Aquí es donde recrearemos el algoritmo “QT GUI Frequency Sink”.
En el bloque “Embedded Python”, puede agregar código para leer los datos del FFT y encontrar los valores de frecuencia/amplitud que cumplan con sus requisitos de nivel de decibelios o umbral. El código guardará estos valores en un archivo.
Aquí hay un código de ejemplo para ayudarte a comenzar:
No olvide actualizar las variables según sus necesidades.
¡Buena suerte!