Problema de precisión de un DDS a frecuencias muy bajas

8

Es la primera vez en mi vida que uso este DDS chip (AD9850) para crear una onda sinusoidal a una frecuencia deseada, donde subo el código de la tabla de búsqueda y la frecuencia deseada. comando a través de un con microcontrolador. Así que mi conocimiento en este momento es muy limitado.

La cosa parece estar bien hasta ahora, pero el problema es a frecuencias muy bajas. A 1Hz e incluso 0.5Hz parece estar bien. Pero también necesito bajar a 0.1Hz.

Aquí está la salida de DDS cuando envío el número 0.1 al DDS a través del microcontrolador:

Enmicódigo,envíoelcomandodePCamicrocomocadenayloconviertoadoble.Peroparasimplificaryverificar,uso este código , y para 0.1Hz establezco sendFrequency ( 0.1) en el bucle.

Pero como ves, el período es de alrededor de 11.5 segundos en lugar de 10 segundos para el comando de 0.1Hz.

Espero poder explicar bien el tema. ¿Hay alguna forma de calibrar o ajustar esto para que tenga un resultado más preciso? ¿O debería vivir con la exactitud? Por cierto, ¿en qué parte de la hoja de datos se puede referir a tal incertidumbre relativa?

    
pregunta user1234

2 respuestas

9

No es una cosa de precisión, es resolución.

La parte frontal de la hoja de datos especifica una resolución de sintonización de 0.0291Hz con un reloj de 125MHz.

\ $ 0.0291 \ approx \ dfrac {125 \ times 10 ^ {6}} {2 ^ {32}} \ $ Hz (ya que el acumulador de fase es 32 bits)

Eso es aproximadamente el 30% de la frecuencia de salida deseada. Esto se debe al resultado de agregar el LSB de la palabra de sintonización al acumulador de fase a 125MHz, para una frecuencia de reloj determinada, es inherente al chip y la cantidad de bits que eligieron para el acumulador de fase y la palabra de ajuste.

Puede intentar reducir la frecuencia del reloj; el mínimo es 1MHz, por lo que debería poder mejorar la resolución en más de dos órdenes de magnitud, a aproximadamente +/- 0.23% a 0.1Hz.

\ $ 0.23 \ times 10 ^ {- 3} \ approx \ dfrac {1 \ times 10 ^ {6}} {2 ^ {32}} \ $ Resolución de Hz con un reloj de 1MHz

Desafortunadamente, otras cosas tendrán que cambiar para un rendimiento óptimo (especialmente el filtro de salida, que generalmente es un filtro LC elíptico de séptimo orden en estos módulos).

Si nunca necesita ir por encima, digamos, 1Hz, simplemente puede agregar un filtro RC con un corte de, digamos, 100Hz a la salida existente y será aceptable para muchos propósitos.

    
respondido por el Spehro Pefhany
7

Lo que está buscando en la hoja de datos es la resolución de sintonización de frecuencia. Para este chip es de 0.0291 Hz para una entrada de reloj de referencia de 125 MHz. Su frecuencia se redondeará a un múltiplo de este número. Este número se basa en la frecuencia de la entrada de reloj del chip.

Por ejemplo, 0.1 Hz se redondeará a 0.0873 Hz (0.0291 * 3). El período de 0.0873 Hz es de 11.5 segundos, que es lo que estás viendo.

Una frecuencia de reloj de entrada más baja dará mayor precisión a frecuencias más bajas. Por lo tanto, si desea una mayor precisión en las frecuencias más bajas, reduzca la frecuencia del reloj.

    
respondido por el Pangus

Lea otras preguntas en las etiquetas