¿Cuál podría ser la fuente de esta distorsión de onda sinusoidal, visible como líneas igualmente espaciadas en FFT?

1

Tengo una MCU que controla un DAC de 16 bits a través de SPI (y una salida LDAC adicional, que activa la actualización de la salida DAC). La MCU tiene una onda sinusoidal de 1120Hz precalculada en un búfer de 364 bytes de longitud (todos los cálculos en float32, redondeados a uint16 para la salida DAC), muestreados a 29120Hz. En una interrupción de temporizador, la actualización del DAC se activa a través de LDAC y luego se carga un nuevo valor desde el búfer y se envía a través de SPI. La actualización al último valor se activa al principio para reducir el jitter debido a las carreras de acceso de memoria contra DMA. La interrupción tiene una prioridad suficientemente alta para no retrasarse.

Aunque visualmente el seno se ve bien , FFT de mi Rigol DS1054Z detrás del DAC (antes del filtro de reconstrucción) muestra una distorsión significativa:

Elpicomásaltoeselrequeridode1120Hz,otrosestánespaciadosporiguala260Hz.¡Elpicocorrectopareceestarsolo5dBpordebajodelprincipal!

EljitterenelpinLDACesdelordende+/-0.25us,loqueconsideraríaaceptablefrentealtiempodemuestreode34.3us.EltemporizadorseejecutadesdeelcristaldeMCUydeberíaserlosuficientementeestable.

¿Quétipodeproblemallevaríaatalpatróndedistorsión?¿Cuálespodríanserlasformasdediagnosticarloyreducirlo?

Soloenelcasorelevante:elDACesunAD5686,lareferenciaaescalacompletaes5V,laamplitudsinusoidales25mV,loquehacequeaproximadamentelos10bitsmásbajosse"cambien".

    
pregunta Maverick

1 respuesta

2

He conectado un generador de señales de laboratorio a la entrada del alcance para compararlo con la señal medida y sorprendentemente vi el mismo espectro en su FFT. Al aumentar la frecuencia, los subarmónicos desaparecieron a 1250 Hz. Cambiar la profundidad de la memoria en la configuración de "Aquire" de Auto a 6K eliminó el efecto. Parece que está ocurriendo algún tipo de problema de alias en la FFT de la DS1054Z.

===

EDITAR: Si observa detenidamente la imagen, verá una frecuencia de muestreo de 5 kHz en la ventana de FFT. Hubiera sido demasiado menos para muestrear la salida DAC antes del filtro. Es sorprendente que aún se vea igual si se le proporciona una señal limpia de 1120Hz, ya que todavía está por debajo de la frecuencia de niquist.

    
respondido por el Maverick

Lea otras preguntas en las etiquetas