¿Es el flip flop D equivalente al mezclador de frecuencia (frecuencia de diferencia) para ondas cuadradas?

Estaba tratando de hacer un mezclador de frecuencia (solo frecuencia de diferencia) para dos ondas cuadradas (PWM1, PWM2, ambas en el rango de 0.5-4KHz) usando SOLO Arduino debido.

Soy nuevo en el procesamiento de señales, y la única forma en que puedo pensar en hacer una frecuencia diferencial es puramente matemática, y solo para ondas sinusoidales:

s i norte ( A B ) = s i norte A C o s B C o s A s i norte B

El término cos es un problema porque implica un cambio de fase de 90 grados, por lo que no puedo usar operadores lógicos para expresar la función.

Sin embargo, durante la búsqueda en Google, vi una declaración de que el flip flop D se puede usar para producir solo el término de diferencia en la mezcla de frecuencia .

Es decir, si lo entiendo correctamente, adjuntando una interrupción al borde ascendente de PWM1, en el ISP lea el valor de PWM2 y escríbalo en el pin de salida.

Tiene sentido ya que cuanto más cerca están las frecuencias de PWM1 y PWM2, menor es la frecuencia de la onda de salida. Sin embargo, parece demasiado bueno para ser verdad y no puedo entender cómo esto es matemáticamente equivalente a la parte de la diferencia del producto de las dos señales.

¿Obtendré una mayor precisión si uso un flip flop D real?

Aclaración:

Para 'mezclador de frecuencia' me refiero al producto de dos señales.

2 C o s A C o s B = C o s ( A + B ) + C o s ( A B )
Para 'la parte de diferencia del mezclador de frecuencia' me refiero solo al término con frecuencia diferencial (AB).

Vuelva a intentarlo con Google usando el término "CORDIC" y vea si eso ayuda.
No creo que sea muy preciso porque la latencia de interrupción no es constante. Pero si las frecuencias de las señales PWM son muy pequeñas, entonces quizás... ¿Pero estás pensando en esto de la manera correcta? ¿Qué es lo que realmente estás tratando de lograr? Si usted mismo hace las señales PWM, entonces seguramente conoce sus frecuencias y puede calcular la diferencia....?
@PkP PWM1 y PWM2 son de un reloj externo no tan estable, la salida debe tener la fase correcta.
si desea ayuda, entonces debe responder las preguntas que la gente le hace.... mire las preguntas de @EugeneSh nuevamente... no las respondió
Siento que es el mismo principio utilizado por los codificadores FM, usando interruptores para mezclar frecuencias

Respuestas (3)

Una puerta XOR es un buen mezclador, ya que produce la suma y la diferencia de dos ondas cuadradas de entrada. Si solo desea el término de diferencia, entonces la salida debe tener un filtro de paso bajo, por lo que está en el dominio analógico. Este método es capaz de producir una buena señal de diferencia incluso cuando las señales de alta frecuencia tienen fluctuaciones debido al filtro de paso bajo de salida. Si desea una salida digital, debe seguir el filtro de paso bajo con un búfer de entrada Schmitt.

Un D-latch que toma una señal como D y la otra como reloj puede producir una especie de diferencia de frecuencia, pero sería muy susceptible a la fluctuación de fase en las entradas, cuando las dos señales de entrada están aproximadamente en la misma fase, y su configuración y los tiempos de espera están siendo violados. Con señales limpias, puede obtener transiciones razonables. Con señales nerviosas, obtendría muchas transiciones aleatorias de salida arriba/abajo en lugar de una limpia en cada cambio de estado de salida.

Lo que acabo de escribir sobre un D-latch es cierto si las dos señales de entrada son asíncronas. En el caso específico de que ambas sean señales PWM generadas desde el mismo microcontrolador por contadores PWM internos, este método de generación podría significar que las señales siempre cumplirán los tiempos de configuración y espera en el D-latch, lo que haría que funcionara perfectamente.

Tiene razón con su propia señal PWM, funciona bien, pero con relojes externos (incluso si está limpio), la salida siempre salta entre dos frecuencias cercanas a la frecuencia correcta. Solo estoy trabajando con señales por debajo de 1 KHz, pero el salto puede ser tan alto como 10 Hz. ¿Hay alguna manera de deshacerse de él digitalmente con MCU? Mis pensamientos iniciales son que, dado que estoy trabajando con baja frecuencia, una MCU podría ser aceptable.

El AD FF por sí solo no es un mezclador, sino un CD4046 PLL que utiliza flip flops y compuertas con salidas de drenaje abiertas para hacer un mezclador de fase/frecuencia Comp II”, pero tiene más ruido que otros pero tiene el rango de captura más amplio

El mezclador XOR produce frecuencias de suma y diferencia como pulsos, por lo que incluye armónicos.

He estado haciendo la misma pregunta durante meses: ¿cómo implemento Heterodyning en ondas cuadradas?

Hay mucha documentación académica sobre heterodino analógico pero nada sobre heterodino digital. Espero que los siguientes esquemas te sean útiles

https://www.gaudi.ch/OpenTheremin/index.php/opentheremin-v3/schematics

es la arquitectura de un Theremin digital donde la señal del oscilador controlado a mano se mezcla digitalmente con un oscilador fijo interno mediante un D-Type Latch en un chip 74HC74. La onda cuadrada del oscilador variable se aplica a la entrada D, mientras que la onda cuadrada de frecuencia fija se aplica a la entrada del reloj. En la salida Q, debería captar la diferencia (en frecuencia) de las dos señales de entrada. Sé que funciona, pero todavía no he encontrado ninguna documentación académica que indique que este es el enfoque correcto para implementar la heterodinación digital.

Espero eso ayude