Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Medición de rango dinámico sin espurios (SFDR)

Este ejemplo muestra cómo analizar un oscilador controlado numéricamente (NCO) de un convertidor descendente digital (DDC) implementado en la aritmética de punto fijo. El ejemplo mide el rango dinámico libre espurio (SFDR) del inserto y explora los efectos de la adición de tramadesora de fase. El número de bits de tramado afecta a las opciones de implementación de hardware. El ejemplo muestra las compensaciones entre el nivel del suelo de ruido, los efectos espurios y el número de bits de tramado. El DDC en el ejemplo, diseñado para cumplir con la especificación GSM, modela el Graychip 4016.

Introducción

Los osciladores controlados numéricamente (CNO) son un medio eficiente de generar señales sinusoidales, y son útiles cuando se requiere una señal sinusoidal de fase continua con frecuencia variable.

Un DDC es un componente clave de las radios digitales. Traduce las frecuencias de muestreo de alta entrada de una radio digital a tasas de muestreo más bajas (banda base) para un procesamiento más y más fácil. Nuestro DDC tiene una velocidad de entrada de 69.333 MHz y tiene la tarea de convertir la velocidad a 270.833 KHz de acuerdo con las especificaciones GSM.

El DDC consiste en un suboficial y un mezclador para cuadrar hacia abajo convertir la señal de entrada a banda base. Un Cascaded Integrator-Comb (CIC) filtra la señal de banda base, y junto con dos filtros de diezmar FIR reducen la muestra de la señal para lograr la baja frecuencia de muestreo deseada, que luego está lista para su posterior procesamiento. La etapa final, dependiendo de la aplicación, a menudo incluye un remuestreador que interpola o diezma la señal para lograr la frecuencia de muestreo deseada. Se puede lograr un filtrado adicional con el remuestreador. Consulte el diagrama de bloques de un DDC típico, a continuación. Tenga en cuenta que Simulink® maneja señales complejas, por lo que no tenemos que tratar los canales I y Q por separado.

Mientras que este ejemplo se centra en el análisis del nCO, un ejemplo titulado "Implementación de la cadena de filtros de un convertidor descendente digital", centrándose en el diseño de la cadena de filtros de tres etapas, multitasa, punto fijo y la generación de código HDL está disponible en el sistema DSP Caja de herramientas™.

El oscilador controlado numéricamente

La sección del mezclador digital del DDC incluye un multiplicador y un nCO, que proporcionan selección de canales o sintonización para la radio. El mezclador es básicamente un generador de coseno-seno, creando valores complejos para cada par de coseno-seno. El nCO típico tiene cuatro componentes: el acumulador de fase, el adder de fase, el generador de tramado y la tabla de búsqueda de coseno de seno.

Aquí está un circuito típico de NCO modelado en Simulink, similar a lo que usted podría ver en la hoja de datos de Graychip.

open_system('ddcncomodel') 

En función de la frecuencia de entrada, el acumulador de fase del NCO produce valores que abordan una tabla de búsqueda de coseno de seno. El adder de fase especifica un desplazamiento de fase que modula la salida del acumulador de fase. El generador dither proporciona tramado de fase para reducir el ruido de cuantificación de amplitud y mejorar el SFDR del nCO. El bloque Búsqueda de seno/coseno produce la señal sinusoidal compleja real, y la salida se almacena en la variable nco_nodither.

En el Graychip, la frecuencia de ajuste se especifica como un valor normalizado en relación con la velocidad de reloj del chip. Así que para una frecuencia de ajuste de F, la frecuencia normalizada es F/Fclk, donde Fclk es la velocidad de reloj del chip. El desplazamiento de fase se especifica en radianes, que van de 0 a 2pi. En este ejemplo, la frecuencia de sintonización normalizada se establece en 5/24 mientras que el desplazamiento de fase se establece en 0. La frecuencia de ajuste se especifica como una palabra de 32 bits y el desplazamiento de fase se especifica como una palabra de 16 bits.

Puesto que el nCO se implementa utilizando aritmética de punto fijo, experimenta efectos de cuantificación de amplitud indeseables. Estas distorsiones numéricas se deben a los efectos de la longitud de la palabra finita. Básicamente, los sinusoides se cuantifican creando errores acumulativos, deterministas y periódicos en el dominio de tiempo. Estos errores aparecen como espectros de línea o espolones en el dominio de frecuencia. La cantidad de atenuación desde el pico de la señal de interés al espolón más alto es el SFDR.

El SFDR del Graychip es 106 dB, pero la especificación GSM requiere que el SFDR sea mayor que 110 dB. Hay varias maneras de mejorar el SFDR, y explorará la adición de trama de fase al nCO.

El suboficial del Graychip contiene un generador de tramado de fase que es básicamente un generador entero aleatorio utilizado para mejorar la pureza de salida del oscilador. El tramado hace que las periodicidades no deseadas del ruido de cuantificación (que hace que los "picos" en los espectros y, por lo tanto, el SFDR pobre) se extiendan a través de un amplio espectro, reduciendo eficazmente estos picos espectrales no deseados. La conservación de la energía se aplica, sin embargo, por lo que la propagación eleva eficazmente el suelo de ruido general. Es decir, el tramado es bueno para SFDR, pero sólo hasta un punto.

Vamos a ejecutar el modelo de nCO y analizar su salida en el espacio de trabajo de MATLAB. Este modelo no utiliza tramado.

sim('ddcncomodel') whos nco* 
  Name              Size                  Bytes  Class     Attributes    nco_nodither      1x1x20545            328720  double    complex     

La siguiente gráfica muestra la parte real de las primeras 128 muestras de la salida del NCO, almacenada sin la variable, nco_nodither.

plot(real(squeeze(nco_nodither(1:128)))) grid title('Real Part of NCO Output - No Dithering') ylabel('Amplitude') xlabel('Samples') 

SFDR de salida de ncos

Echemos un vistazo al SFDR de la salida del nCO.

Calcular y trazar el SFDR de la salida de nÓcteo

Fs = 69.333e6; sfdr(real(nco_nodither),Fs); 

Como era de esperar, la gráfica del espectro de potencia muestra un pico de 14,44 MHz, que es la frecuencia de sintonización del nócto, 5/24*Fs a 14.444 MHz.

El SFDR, sin embargo, es de aproximadamente 106.17 dB, que es demasiado alto para cumplir con la especificación GSM, que requiere 110 dB o más. Podemos mejorar este rango dinámico mediante el uso de tramado de fase.

Explorar los efectos del tramado

Para explorar la adición de tramado al inco, el circuito de nCO mostrado arriba se ha encapsulado en un subsistema y duplicado tres veces. Se seleccionó una cantidad diferente de tramado para cada nómero. Aunque el NCO permite especificar un rango de 1 a 19 bits de tramado, intentará pocos valores. La ejecución de este modelo producirá tres salidas de nCO diferentes basadas en la cantidad de tramado añadido.

open_system('ddcncowithdithermodel') 

La ejecución de la simulación producirá tres señales en el espacio de trabajo de MATLAB que puede analizar utilizando el algoritmo de análisis espectral definido anteriormente. Puede ejecutar la simulación desde el modelo o desde la línea de comandos mediante el comando sim.

sim('ddcncowithdithermodel') 

Después de que la simulación complete usted se deja con las señales que son la salida de los NO. Cada señal muestra una cantidad diferente de tramado.

whos nco* 
  Name              Size                  Bytes  Class     Attributes    nco_dither3       1x1x20501            328016  double    complex      nco_dither5       1x1x20501            328016  double    complex      nco_dither7       1x1x20501            328016  double    complex      nco_nodither      1x1x20545            328720  double    complex     

Calcular y trazar el SFDR después de agregar 3 bits de tramado.

figure sfdr(real(nco_dither3),Fs) 
 ans =    107.6285  

Con tres bits de trama añadidos, el espolón más alto es ahora de -112 dB. El SFDR es 107.63 dB. Todavía no cumple con la especificación GSM.

Ahora agregue 5 bits de tramado.

figure sfdr(real(nco_dither5),Fs) 
 ans =    123.4065  

Con cinco bits de trama añadidos, el espolón más alto es ahora de -127 dB.

El SFDR es de 123,41 dB, superando la especificación GSM.

Parece que más tramada da mejores resultados, así que agregue 7 bits de tramado.

figure sfdr(real(nco_dither7),Fs) 
 ans =    113.7189  

Tenga en cuenta que nuestro SFDR calculado se degradó a 113,72 dB. Esto se debe al ruido de banda ancha generado por el tramado que comienza a superar la potencia del contenido no esencial.

El uso de 7 bits de tramado cumple con la especificación GSM, pero no es tan eficaz como el uso de 5 bits de tramado.

Comparación de resultados

Tabular el SFDR para cada salida de NCO contra las cantidades de tramado para cada salida de nÓcto.

Number of     Spur Free Dynamic Dither bits   Range(dB)
   0            106.17
   3            107.63
   5            123.41
   7            113.72

Resumen

En este ejemplo se analizó la salida de un nCO utilizado en un convertidor descendente digital para una aplicación GSM. El análisis espectral se utilizó para medir el SFDR, la diferencia entre el espolón más alto y el pico de la señal de interés. Los espolones son errores periódicos deterministas que resultan de efectos de cuantificación. El ejemplo también exploró los efectos de añadir tramado en el suboficial, que añade datos aleatorios al suboficial para mejorar su pureza. Encontramos que el uso de cinco bits de tramado logró el SFDR más alto.