¿Cómo puedo encontrar una frecuencia específica después de hacer FFT?

3

Tengo algunas muestras de un SDR que ejecuto a través de FFT y quiero detectar la presencia de una señal específica, exactamente 148.369MHz.

La frecuencia de muestreo máxima del dispositivo es de 2Mhz, esto es algo más que no entiendo, ¿cómo puedo detectar la señal de 100Mhz + si la frecuencia de muestreo máxima es de 2Mhz?

De todos modos, si entiendo correctamente, la frecuencia máxima en FFT es de 1Mhz, a través de nyquist, mi pregunta es, ¿cómo puedo encontrar el recipiente que corresponde a la señal de 148Mhz? Puedo ver un pico que corresponde a la señal pero quiero poder indexar en los contenedores y encontrarlo.

Gracias

Editar: Este es un gráfico de la señal utilizando el bloque FFT de GNU Radio, estoy tratando de lograr los mismos resultados con mi código

    
pregunta mux

2 respuestas

2
  

La frecuencia de muestreo máxima del dispositivo es 2Mhz, esto es solo algo   otra cosa que no entiendo, ¿cómo puedo detectar la señal de 100Mhz + si el   La frecuencia máxima de muestreo es de 2Mhz?

No puede, al menos no sin ambigüedades si hay otras señales que tienen una frecuencia más baja en la entrada.

  

De todos modos, si entiendo correctamente, la frecuencia máxima en FFT es   1Mhz, a través de nyquist, mi pregunta es, ¿cómo puedo encontrar el contenedor que   ¿Corresponde a la señal de 148Mhz? Puedo ver un pico que corresponde   a la señal pero quiero ser capaz de indexar en los contenedores y encontrar   it.

Probablemente la razón por la que vea un pico que corresponde a la señal es porque está experimentando aliasing . No hay forma de detectar de forma inequívoca la señal \ $ 148.369 \ text {MHz} \ $ sin una frecuencia de muestreo suficientemente alta. En realidad podría ser una señal de frecuencia mucho más baja.

Por ejemplo, si intento muestrear una señal de onda sinusoidal \ $ 2 \ text {kHz} \ $ con una tasa de muestreo de \ $ 1.5 \ text {kHz} \ $, la reconstrucción de la señal por el ADC podría terminar realmente \ $ 0.5 \ text {kHz} \ $, por lo que no hay manera de saber la diferencia entre una señal \ $ 2 \ text {kHz} \ $ o una \ $ 0.5 \ text {kHz} \ $ usando solo los datos adquiridos por un ADC. Es por eso que los ADC a menudo se usan con un filtro analógico de antialias de paso bajo para evitar el problema.

Si desea detectar esta señal \ $ 148.369 \ text {MHz} \ $, necesita muestrear la señal a más del doble de esa frecuencia (cuanto más, mejor) o usar una estrategia alternativa que no implique buscando directamente la señal \ $ 148.369 \ text {MHz} \ $.

Por ejemplo, puede mezclar la señal con otra señal (sinusoidal) generada por un oscilador local y buscar Frecuencias de ritmo en lugar de las señales \ $ 148.369 \ text {MHz} \ $. Luego puede usar un filtro de filtro antialiasing y ADC para buscarlos. Una elección adecuada de la frecuencia del oscilador local crearía frecuencias de batido mucho menores que la frecuencia de muestreo del sistema.

Esta es realmente la técnica utilizada en algunas radios (¿todas?) para sintonizar una frecuencia específica, llamada heterodinos .

    
respondido por el In silico
0

Está utilizando un front-end basado en el sintonizador RTL para su aplicación SDR. Esta combinación le da un SDR. El conjunto de chips RTL es bastante capaz de muestrear a 2.4MSPS a una resolución de 8 bits, lo que le da muestras de I & Q a 1.2 MHz a cada lado de su frecuencia de sintonización central.

Entonces, si el RTL SDR está sintonizado a 148MHz, entonces en el resultado FFT puede buscar los 148.369MHz deseados en el intervalo que corresponda a -369kHz de la frecuencia de muestreo. Si ejecuta una FFT de 1024 puntos en la señal muestreada de 2.4MSPS, supongo que obtendrá aproximadamente 23437Hz por contenedor (2.4MSPS / 1024). Entonces, en una conjetura, mirarías en el contenedor unos 16 a la izquierda del centro (15.744 contenedores).

    
respondido por el Rick M

Lea otras preguntas en las etiquetas