¿Cómo implementar un ADPLL en Verilog que se enlaza con una onda sinusoidal arbitraria?

0

No puedo descubrir cómo implementar un ADPLL en un FPGA que puede tomar una entrada periódica arbitraria y bloquear su frecuencia (cierto rango finito está bien) y la fase. Una salida de onda cuadrada servirá.

Como primer paso, pensé en asumir que la entrada es una onda sinusoidal. Sé cómo digitalizar el mismo utilizando el ADC a bordo. ¿Cómo procedo desde aquí?

Todos los enlaces a los repositorios de código existentes que implementan todo o parte de esto son bienvenidos.

    
pregunta thebionicandroid

1 respuesta

0

Las ondas sinusoidales son fáciles.

Obviamente, su PLL comprende un detector de fase / frecuencia, un filtro de bucle y un oscilador. Su NCO proporciona salidas I y Q, que facilitan la medición de fase de la señal de entrada. (Dos operaciones de multiplicación)

Piense en esta medida como un vector, y lo más importante es el ángulo de este vector (operación atan2). Este vector girará (la fase aumenta o disminuye de una muestra a la siguiente) si hay un error de frecuencia; la dirección de la rotación le indica si la frecuencia es demasiado alta o demasiado baja. Una vez que obtenga la frecuencia coincidente, puede llevar la fase de salida a la relación deseada con la fase de entrada.

¿Es esto un consejo suficiente para ponerte en camino?

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas