Necesitamos un reloj pseudoaleatorio con una longitud de N
, de tal manera que de cada N
pulso de reloj, M
de ellos se conviertan aleatoriamente en cero ( M<<N
). Lo que queremos hacer es muestrear una señal de forma aleatoria. Lo que significa que, de todos N
los puntos de muestra (de la cuadrícula de Nyquist) necesitamos tomar M
muestras. N-M
Luego, a través de algunos procesamientos y suposiciones sobre la estructura de la señal, se recuperan otros puntos (muestras) no muestreados . Ahora estoy usando registros de desplazamiento lineal, algo como a continuación:
simular este circuito : esquema creado con CircuitLab
Funciona bien, sin embargo, no quiero una distribución equitativa para 1 y 0, quiero decir que quiero que el 20% de los ciclos de reloj sean 1 y el 80% sean cero. Para lograr eso, realicé la AND
salida de dos circuitos como el anterior para cambiar la probabilidad del 50 % para los 1 y los ceros al 25 % para los 1 y el 75 % para los ceros (en la figura a continuación, con diferentes semillas).
Es bueno a costa de duplicar la potencia y el área del chip :( . Estoy buscando una manera de hacer que el sistema funcione con solo 1 circuito generador de reloj aleatorio, no dos.
Estaba pensando en almacenar una secuencia binaria aleatoria (con una longitud de N
) en una ROM y luego And
su salida con el reloj para hacer un reloj aleatorio.
Piense en el contenido del LFSR de N bits como un número entero de N bits. Este número tendrá una distribución uniforme de valores de 1 a 2 N - 1. Puede generar una densidad variable de bits de máscara comparando este número con un umbral que también varíe de 1 a 2 N - 1. La salida de este comparador es la máscara de reloj que buscas.
tom carpintero
b degnan
mimsaad
Tony Estuardo EE75
david tweed
mimsaad
mimsaad
tubo
mimsaad