# Oscilador controlado numéricamente

Un oscilador controlado numéricamente (OCN) es un generador de señales digitales que crea una representación sincrónica (es decir, sincronizada), en tiempo discreto y con valores discretos de una forma de onda, normalmente sinusoidal. Los OCN suelen utilizarse junto con un convertidor digital-analógico (DAC) a la salida para crear un sintetizador digital directo (DDS).
Los osciladores controlados numéricamente ofrecen varias ventajas sobre otros tipos de osciladores en términos de agilidad, precisión, estabilidad y fiabilidad. Los NCO se utilizan en muchos sistemas de comunicaciones, incluidos los convertidores de lazo de seguimiento de fase digitales utilizados en sistemas inalámbricos 3G y de radio por software, bucles digitales de enganche de fase, sistemas de radar, controladores para transmisiones ópticas o acústicas y moduladores/demoduladores FSK/PSK multinivel.

## Operación

Un OCN suele constar de dos partes:
* Un acumulador de fase (PA), que añade al valor mantenido en su salida un valor de control de frecuencia en cada muestra de reloj.
* Un convertidor de fase a amplitud (PAC), que utiliza la palabra de salida del acumulador de fase (palabra de fase) normalmente como un índice en una tabla de consulta (LUT) de forma de onda para proporcionar una muestra de amplitud correspondiente. A veces se utiliza la interpolación con la tabla de consulta para proporcionar una mayor precisión y reducir el ruido de error de fase. Se pueden utilizar otros métodos de conversión de fase a amplitud, incluyendo algoritmos matemáticos como series de potencia, particularmente en un NCO de software.
Cuando se sincroniza, el acumulador de fase (PA) crea una forma de onda de diente de sierra modulo-2$^N$ que luego es convertida por el convertidor de fase a amplitud (PAC) en una sinusoide muestreada, donde N es el número de bits que lleva el acumulador de fase. N establece la resolución de frecuencia del NCO y normalmente es mucho mayor que el número de bits que definen el espacio de memoria de la tabla de consulta del PAC. Si la capacidad del PAC es de 2$^M$, la palabra de salida del PA debe truncarse a M bits como se muestra en la Figura 1. Sin embargo, los bits truncados pueden utilizarse para la interpolación. El truncamiento de la palabra de salida de fase no afecta a la precisión de la frecuencia, pero produce un error de fase periódico variable en el tiempo que es una fuente primaria de productos espurios. Otro mecanismo de generación de productos espurios son los efectos de longitud de palabra finita de la palabra de salida PAC (amplitud).
La precisión de la frecuencia relativa a la frecuencia del reloj sólo está limitada por la precisión de la aritmética utilizada para calcular la fase. Los NCO son ágiles en fase y frecuencia, y pueden modificarse trivialmente para producir una salida modulada en fase o frecuencia mediante la suma en el nodo apropiado, o proporcionar salidas en cuadratura como se muestra en la figura.

## Acumulador de fase

Un acumulador de fase binario consiste en un sumador binario de N bits y un registro configurado como se muestra en la Figura 1. Cada ciclo de reloj produce una nueva salida de N bits consistente en la salida anterior obtenida del registro sumada con la palabra de control de frecuencia (FCW) que es constante para una frecuencia de salida dada. La forma de onda de salida resultante es una escalera con tamaño de paso $\Delta F$, el valor entero del FCW. En algunas configuraciones, la salida de fase se toma de la salida del registro, lo que introduce una latencia de un ciclo de reloj pero permite que el sumador funcione a una velocidad de reloj superior.
El sumador está diseñado para desbordarse cuando la suma del valor absoluto de sus operandos supera su capacidad (2$^N$-1). El bit de desbordamiento se descarta para que la anchura de la palabra de salida sea siempre igual a la anchura de la palabra de entrada. El resto $\phi _{n}$ llamado residuo, se almacena en el registro y el ciclo se repite, partiendo esta vez de $\phi _{n}$(véase la Figura 2). Dado que un acumulador de fase es una máquina de estado finito, en algún momento el residuo en alguna muestra K debe volver al valor inicial $\phi _{0}$. El intervalo K se denomina tasa de repetición general (GRR) y viene dado por:
${\mbox{GRR}}={\frac {2^{N}}{{\mbox{GCD}}(\Delta F,2^{N})}}$
Donde GCD es la función del máximo común divisor. La GRR representa la verdadera periodicidad para un determinado $\Delta F$ que para un NCO de alta resolución puede ser muy largo. Normalmente nos interesa más la frecuencia de funcionamiento determinada por la tasa media de desbordamiento, dada por:
$F_{out}={\frac {\Delta F}{2^{N}}}F_{clock}$ (1)
La resolución de frecuencia, definida como el menor cambio incremental posible en la frecuencia, viene dada por:
$F_{res}={\frac {F_{clock}}{2^{N}}}$ (2)
La ecuación (1) muestra que el acumulador de fase puede considerarse como un divisor de frecuencia no entero programable de relación de división $\Delta F/2^{N}$.

## Convertidor de fase a amplitud

El convertidor fase-amplitud crea la forma de onda en el dominio de la muestra a partir de la palabra de salida de fase truncada recibida del PA. El PAC puede ser una simple memoria de sólo lectura que contenga 2$^M$ de muestras contiguas de la forma de onda de salida deseada, que normalmente es una sinusoide. Sin embargo, a menudo se emplean varios trucos para reducir la cantidad de memoria necesaria. Esto incluye varias expansiones trigonométricas, aproximaciones trigonométricas y métodos que aprovechan la simetría de cuadratura exhibida por los sinusoides. Alternativamente, el PAC puede consistir en una memoria de acceso aleatorio que puede llenarse como se desee para crear un generador de forma de onda arbitraria.

## Productos espurios

Los productos espurios son el resultado de la distorsión armónica o no armónica en la creación de la forma de onda de salida debido a efectos numéricos no lineales en la cadena de procesamiento de la señal. Aquí sólo se tratan los errores numéricos. Para otros mecanismos de distorsión creados en el convertidor digital-analógico, consulte la sección correspondiente en el artículo del sintetizador digital directo.

### Espuelas de truncamiento de fase

El número de bits del acumulador de fase de un NCO (N) suele estar entre 16 y 64. Si la palabra de salida PA se utilizara directamente para indexar la tabla de consulta PAC, se requeriría una capacidad de almacenamiento insosteniblemente alta en la ROM. Como tal, la palabra de salida PA debe ser truncada para abarcar un espacio de memoria razonable. El truncamiento de la palabra de fase provoca una modulación de fase de la sinusoide de salida que introduce una distorsión no armónica proporcional al número de bits truncados. El número de productos espurios creados por esta distorsión viene dado por:
$n_{W}={\frac {2^{W}}{{\mbox{GCD}}(\Delta F,2^{W})}}-1$ (3)
Donde W es el número de bits truncados.
Para calcular el rango dinámico libre de espurias, nos interesa el producto espurio de mayor amplitud respecto al nivel de salida de la portadora dado por:
$\zeta _{max}=2^{-M}{\frac {\pi {\mbox{GCD}}(\Delta F,2^{W})}{\sin \left(\pi \cdot 2^{-P}{\mbox{GCD}}(\Delta F,2^{W})\right)}}$
Donde P es el tamaño en bits de la tabla de consulta del convertidor de fase a amplitud, es decir, M en la figura 1. Para W >4,
$\zeta _{max}\approx -6.02\cdot P\;{\mbox{dBc}}.$
Otro método de generación de espurios relacionado es la ligera modulación debida a la GRR descrita anteriormente. La amplitud de estos espolones es baja para N grandes y su frecuencia suele ser demasiado baja para ser detectable, pero pueden causar problemas en algunas aplicaciones.
Una forma de reducir el truncamiento en la búsqueda de direcciones es tener varias tablas de búsqueda más pequeñas en paralelo y utilizar los bits superiores para indexar en las tablas y los bits inferiores para pesarlos para la interpolación lineal o cuadrática. Por ejemplo, usar un acumulador de fase de 24 bits para buscar en dos LUTS de 16 bits. Dirección en el truncado 16 MSB, y que más 1. Interpolar linealmente usando los 8 LSB como pesos. (Se podrían utilizar 3 LUTs e interpolar cuadráticamente). Esto puede resultar en una menor distorsión para la misma cantidad de memoria a costa de algunos multiplicadores.

### Espuelas de truncamiento de amplitud

Otra fuente de productos espurios es la cuantización de amplitud de la forma de onda muestreada contenida en la(s) tabla(s) de búsqueda PAC. Si el número de bits DAC es P, el nivel de espurio AM es aproximadamente igual a -6,02 P - 1,76 dBc.

### Técnicas de mitigación

Las espuelas de truncamiento de fase pueden reducirse sustancialmente mediante la introducción de ruido blanco gaussiano antes del truncamiento. El llamado ruido dither se suma en los W+1 bits inferiores de la palabra de salida PA para linealizar la operación de truncado. A menudo, la mejora puede lograrse sin penalización porque el ruido de fondo del DAC tiende a dominar el rendimiento del sistema. Las espuelas de truncamiento de amplitud no se pueden mitigar de esta manera. La introducción de ruido en los valores estáticos guardados en las ROM del PAC no eliminaría la ciclicidad de los términos de error de truncamiento y, por lo tanto, no lograría el efecto deseado.