Un sintetizador computacional digital (DDS ), también conocido como circuito de síntesis digital directa (DDS), es un dispositivo electrónico diseñado para sintetizar formas de onda y frecuencias arbitrarias a partir de una única frecuencia de referencia suministrada por un generador de reloj . Un rasgo característico del DDS es que las muestras de la señal sintetizada se calculan mediante métodos digitales, luego de lo cual se transfieren a un convertidor de digital a analógico (DAC), donde se convierten en una forma analógica ( voltaje o corriente ) .
En esto, el DDS se diferencia de los sintetizadores de frecuencia basados en otros principios, por ejemplo, PLL .
Los principales bloques funcionales de un DDS son: un acumulador de fase, un convertidor de fase a amplitud, un DAC y un filtro de paso bajo . Asimismo, el DDS contiene cierta cantidad de memoria que sirve para almacenar los parámetros de la señal sintetizada, como frecuencia , fase , amplitud , forma, etc.
En cada ciclo de la frecuencia de referencia, el acumulador de fase (generalmente un contador binario) aumenta su valor por el valor escrito en la celda de memoria, el número escrito en el que generalmente se llama el incremento de fase. Como resultado, el valor del acumulador de fase aumenta linealmente con el tiempo. Luego, el valor de fase así calculado en cada ciclo se convierte en un valor de amplitud. En principio, esta transformación puede ser arbitraria y depende de la aplicación. En el caso más común en la práctica, para la síntesis de oscilaciones armónicas, se calcula el seno del valor de fase actual. El resultado del cálculo se alimenta a la entrada del DAC, cuya señal de salida se suaviza de los pasos de muestreo mediante un filtro de paso bajo.
Una de las características importantes de tales dispositivos es la alta resolución de establecer los valores de frecuencias reproducibles y su precisión absoluta (suponiendo que el oscilador maestro sea ideal). Los dispositivos están disponibles con un paso de sintonía de menos de 0,00001 Hz, con frecuencias de salida desde cero hercios hasta cientos de megahercios y una frecuencia de referencia del orden de un gigahercio [1] [2] .
La velocidad (tiempo) de sintonización de la frecuencia de salida de un valor a otro es muy alta y estable, y está determinada principalmente solo por la duración de la respuesta de impulso del filtro de recuperación analógico en la salida del sintetizador; la reestructuración en sí tiene lugar prácticamente al instante. El tiempo de sintonía no depende de la diferencia entre las frecuencias inicial y final. Algunos sintetizadores de este tipo proporcionan, entre otras cosas, incremento lineal automático o salto de frecuencia . En este caso, el incremento de fase no es constante, sino que varía según una ley dada.
Como desventaja, se puede señalar un mayor consumo de energía en comparación con las soluciones PLL debido a la gran cantidad de cálculos y un mayor nivel de componentes espurias no armónicas en el espectro de la señal sintetizada.
Un claro ejemplo de la implementación del principio descrito puede ser el siguiente código en lenguaje C :
#incluir <matemáticas.h> int next_amp ( int dph ) { fase int estática = 0 ; amplificador int ; fase += dph ; amp = 511.5 * sin ( 2 * M_PI * fase / 0x100000000L ); volver &erio ; }Aquí dph es el incremento de fase, fase es la fase actual (instantánea), amp es la amplitud actual (instantánea) de la señal armónica sintetizada. Si se llama a la función next_amp con frecuencia de reloj , sus valores de retorno serán muestras de una señal sinusoidal con una frecuencia y amplitud de 511,5 (a pesar de que los valores de retorno en sí mismos son números enteros). Esta amplitud corresponde al rango de entrada de un DAC de 10 bits.
La propiedad de periodicidad de la función seno también se usa aquí, es decir, el hecho de que cuando el acumulador de fase se desborda , su valor cambia en 2 32 y el argumento del seno cambia en 2π, lo que no afecta el resultado.