2 votos

Contador de frecuencias recíprocas Media

He diseñado un circuito contador de frecuencia de alta precisión. Lo estoy utilizando para medir una frecuencia de alrededor de 35kHz que es estable a 0,1mHz. Puedo medir la frecuencia usando un Stanford Research Systems SR620 y los únicos dígitos que cambian son 0.000XXX. Mi contador de frecuencia varía alrededor de 1Hz con la misma señal. El SR620 utiliza algún tipo de cálculo de la media para proporcionar un resultado más preciso. Estoy buscando cómo aprender a hacer lo mismo.

Cómo funciona el circuito

Hay dos contadores. Un contador de cuenta atrás y un contador de cuenta arriba. El contador de cuenta atrás se carga con la frecuencia base (o frecuencia de entrada perfecta esperada) multiplicada por el tiempo de muestreo en segundos. El contador descendente disminuye en cada periodo de la entrada de 35kHz. El contador de cuenta ascendente cuenta una señal de 2GHz mientras el contador de cuenta descendente cuenta hasta cero. El contador de cuenta ascendente se detiene cuando el contador de cuenta descendente llega a cero.

Entonces la frecuencia = (frecuencia base * tiempo de muestreo en segundos) / (contador ascendente / 2GHz) o (contador descendente cuenta de inicio) / (contador ascendente / 2GHz)

Mi circuito utiliza un chip PLL bloqueado a un OCXO de 10ppb y 100MHz para generar una señal de 2GHz. Usando un estándar de rubidio de 1pps de salida mi contador tiene una precisión de 2.000.000.000 +-15 para una lectura de 1 segundo. Necesito ser capaz de leer una señal de 35kHz y tener una precisión de 100uHz para una lectura de 1 segundo. La señal de 35kHz puede variar hasta 31kHz y hasta 39kHz pero mis lecturas no se realizan mientras la frecuencia está cambiando.

¿Qué tipo de cálculo haría que estas lecturas fueran más precisas y alguien conoce algún recurso que lo explique?

Mi solución

Mi problema terminó siendo un problema de lógica de circuito a software. Mi desviación estándar pasó de 1Hz a 100uHz después de la corrección. No necesité modificar las matemáticas de mi firmware.

1voto

Spehro Pefhany Puntos 90994

No sé cómo lo hace el SR620, pero así es como sugiero hacerlo.

Supongamos que quieres al menos 10 lecturas por segundo. Divide la frecuencia de 35000+/- por unos 3500. Tal vez elijas 4096 o 2048, digamos esto último. Eso te da un borde cada 58,514285714 ms, dividiendo por 2^n donde n = 11.

Utiliza eso con un reloj razonable, digamos Fosc = 25MHz. Tendrás 1462857 relojes por ciclo, lo que te dará una resolución sólida de 6 dígitos a una frecuencia de muestreo de 17Hz. Si necesitas más resolución, aumenta n o Fosc. Si aumentas n reduces la tasa de muestreo, por supuesto. Si aumentas Fosc la lógica tiene que trabajar más rápido y la nitidez de los bordes en tus 35kHz se vuelve más importante.

Para obtener la frecuencia medida F a partir del número de relojes k,

F = \$\frac{F_{OSC}\cdot 2^n}{k}\$


Veo que has añadido la frecuencia de reloj a tu pregunta: a 2GHz, los bordes de la señal de entrada tienen que ser muy nítidos, el comparador muy rápido, la tensión de referencia y la amplitud de la señal muy estables, etc., para sacar todo el provecho de la alta frecuencia de reloj.

1voto

Henry Crun Puntos 455

Un simple contador recíproco debería dar una resolución de F-Clock/T-Measurement, es decir, 0,0035Hz/segundo con un reloj de 10MHz. Un pic/avr debería lograr esto mediante un simple conteo recíproco con sus registros de captura de temporizador.

Eso es lo que deberías conseguir.

Sus mediciones deben ser coherentes para que la precisión aumente linealmente, es decir, el contador de captura debe estar funcionando continuamente para contar de N a M bordes múltiples de la señal de entrada. Si promedia las mediciones incoherentes, la precisión sólo aumenta en sqrt()


hace tiempo utilizaban un interpolador analógico {rampa lineal y muestreadores) para ir entre la resolución del reloj, por ejemplo para añadir 3 dígitos de resolución p.e. 100M reloj =11 dígitos/segundo

Para frecuencias estables o casi conocidas, se puede mezclar y luego medir el período de la frecuencia de batido. esto aumenta la resolución dramáticamente de hecho hasta el límite de ruido de fase/varianza de la fuente de reloj, incluso sólo usando un uP ordinario como el contador

1voto

Alex Andronov Puntos 178

Dada una base de tiempo estable, un intervalo de lectura deseado igual a N ciclos de esa base de tiempo, y una señal de entrada estable cuya frecuencia es igual al menos al doble de la frecuencia de lectura, se puede medir con relativa facilidad la frecuencia con una fracción de incertidumbre de 3/N.

Cada vez que se produce un pulso de entrada, muestrea la hora y el número de pulsos que se han producido hasta la fecha. En cada intervalo de lectura, capture los valores de tiempo y recuento muestreados. Divida la diferencia de recuentos por la diferencia de tiempo, y eso será la frecuencia. Para cualquier señal cuya frecuencia sea mayor que algún número entero K veces la frecuencia de lectura, el intervalo que se mide será al menos (K-1)/(K+1) del intervalo de lectura. En el peor de los casos, en el que la frecuencia de entrada es justo inferior a 3 veces la frecuencia de lectura, el intervalo será algo más de 1/3 del periodo de lectura.

0voto

tapkin Puntos 132

Aquí hay un artículo de Arxiv que debería ser útil. Ofrece una visión general de la medición de la frecuencia de precisión y, a continuación, propone un nuevo método de medición mejorado basado en la estadística.

Del documento:

Se obtiene una mayor resolución midiendo fracciones del período del reloj con un interpolador adecuado. Los interpoladores simples y precisos interpoladores sólo funcionan a frecuencia fija. Las técnicas más técnicas más utilizadas se describen a continuación. Sorprendentemente, todas ellas son bastante antiguas y presentan una resolución de rango de picosegundos.

0voto

NuSkooler Puntos 2679

HP utilizó la interpolación analógica de carga en un contador recíproco de pulsos de tiempo en la década de 1960. Los transistores eran 2N5179.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X