filtro FPGA - onda sinusoidal a frecuencia de reloj observada en la señal filtrada

0

Estoy usando un FPGA para implementar filtros FIR, específicamente para esta pregunta, he implementado un filtro de promedio móvil de 12 puntos. En este momento, solo estoy usando un generador de señal como entrada al FPGA y conectando una onda sinusoidal pura en varias frecuencias. Ahora, mi filtro funciona como se esperaba y tiene la frecuencia esperada y la respuesta de fase, sin embargo, en mi señal de salida, veo otra sinusoide en torno a la frecuencia de reloj del FPGA que estoy usando. He configurado el reloj en el FPGA para que sea 40MHz y 10MHz y la sinusoide en la señal filtrada ocurrió en alrededor de 40MHz y 10MHz respectivamente en estos 2 casos, por lo que definitivamente es proporcional a la frecuencia del reloj.

Me preguntaba si alguien podría explicar por qué esto podría ser y qué podría hacer para eliminarlo. (Podría usar un filtro de paso bajo analógico después de mi filtro para filtrarlo, por ejemplo [aunque prefiero eliminarlo por completo, ya que para mi aplicación es ideal un bajo nivel de ruido y agregar más componentes agregará ruido])

He subido un par de videos de youtube de lo que veo en el osciloscopio cuando coloco una señal sinusoidal generada por un generador de señal (que se muestra en amarillo en el video) y lo que veo fuera de mi filtro FPGA (que se muestra en azul).

pregunta que acompaña al video 1 para stackoverflow

Otra cosa interesante que observé, que puede ayudar a diagnosticar lo que está sucediendo, fue que en ciertas frecuencias esta segunda señal desaparece completamente, en el siguiente video el reloj FPGA está configurado a 40MHz y configuro el generador de señales para generar 11MHz, Ondas sinusoidales de 10Mhz y 9MHz. (La frecuencia aproximada de la onda se puede ver en la parte inferior derecha de la pantalla) A 10MHz, puede ver que esta señal de alta frecuencia parece desaparecer. (Esto también coincide con un punto de atenuación muy alta: la señal filtrada es muy plana)

Pregunta que acompaña al video 2 para stackoverflow

Si alguien tiene alguna sugerencia sobre qué podría estar causando esto o cómo deshacerse de él, sería muy apreciado.

Información adicional según lo solicitado: Estoy usando un NI 5781 porque mi ADC y DAC tiene una entrada de 14 bits y una salida de 16 bits. La hoja de datos está vinculada aquí: ni.com/datasheet/pdf/en/ds-212.

Estoy colocando una sinusoide que tiene 1V pico a pico y un desplazamiento de 0.5V DC, es decir, una onda sinusoidal entre 0V y 1V.

    

1 respuesta

2

Las señales se propagan accidentalmente a través de los pines adyacentes y la PCB, lo que se denomina fuga y es más o menos inevitable en los circuitos; puede reducir la cantidad de fugas mediante un buen diseño, blindaje y separación de PCB.

En las regiones de RF en las que se lleva a cabo su reloj, una regla de oro es que si tiene una supresión de potencia de más de 50 dB entre las señales armónicas transportadas en el mismo PCB FR4, lo está haciendo relativamente bien.

Entonces, eso explica que inevitablemente veas el reloj en tu señal.

La pregunta de por qué no lo ves a 10 MHz es probablemente simple:

considera lo que es un reloj de 40MHz:

idealmente es una onda cuadrada con un período de 40 MHz. Confío en que, como físico aleatorio, sepa cómo lidiar con la transformada de Fourier, y puedo ver fácilmente que una señal de onda cuadrada perfectamente periódica tiene una transformada de Fourier discreta con impulsos dirac de una "amplitud" decreciente cada 40 MHz.

El componente de frecuencia principal que debería ver es el tono de 40 MHz en sí. Ahora bien, eso es un armónico de la señal de 10 MHz, y la fuga del reloj en el propio ADC podría provocar una "falta de observación" de la entrada de 10MHz como entrada de 10 MHz + 4. sobretono - y su filtro de 12 toques simplemente cancela ambos, de modo que, si se observa aleatoriamente en un "punto dulce", ambos se cancelan simultáneamente.

    
respondido por el Marcus Müller

Lea otras preguntas en las etiquetas