¿Cómo puedo mantener mi sinusoide en fase con su entrada después del filtrado?

Una sección de un circuito con el que estoy trabajando crea una sinusoide a partir de una onda cuadrada al pasarla a través de un filtro de octavo orden ( MAX293 ). Hasta ahora, todo estaba bien, pero recientemente me dijeron que la entrada (onda cuadrada) y la salida (sinusoide) deben estar en fase. Debido al LPF, agrega un cambio de fase y debido a que la frecuencia de entrada es variable (0-5khz), el cambio de fase también es variable.

¿Cómo puedo mantenerlos en fase para toda la región de frecuencia en la que operan? ¿Qué debería estar mirando?

Solo para estar seguro, estás hablando de un solo tono puro, ¿verdad? Eso no es trivial de todos modos, creo que necesitarás un PLL.
Sí, sería solo una frecuencia única. ¿Un PLL no me daría una onda cuadrada? Tan pronto como lo filtro, la fase se apaga. Me imagino que mi compensación tendría que ocurrir después del filtrado y usar algún tipo de comparación con la señal de referencia; tal vez mire su cruce por cero y detenga la onda sinusoidal hasta que coincida con el cruce por cero. :S
¿Está diciendo que su circuito NECESITA tener entrada y salida en fase O está diciendo que alguien le dijo que el filtro no funcionará si no están en fase?
El circuito NECESITA tener entrada y salida en fase. El circuito no es adecuado para su propósito si no lo están.
Mi idea es que su pll use como entrada la onda cuadrada y como entrada de "error" la onda sinusoidal. Supongo que usa el cruce por cero o algo similar.
Es una idea. Nunca usé un PLL antes, pero lo investigaré ahora y veré si puedo hacer algo con él. ¿Funciona PLL con baja frecuencia? La frecuencia máxima sería de unos 5Khz.
Sí, creo que sí... ¿Por qué no de todos modos? Tal vez haya una mejor manera, puede ecualizar la fase con otro filtro después del MAX, pero si tiene especificaciones de fase estrictas, me temo que el control de bucle cerrado es obligatorio, y PLL es el camino a seguir.
Echa un vistazo aquí
Creo que puede tener razón con el PLL. Me topé con el siguiente enlace, y parece algo que estoy tratando de lograr. maximintegrated.com/en/app-notes/index.mvp/id/4504
1. ¿Cuánta fluctuación de fase puede soportar entre la onda cuadrada y la onda sinusoidal? 2. ¿Cuánto contenido armónico puedes soportar en la onda sinusoidal? 3. ¿Cuál es la onda sinusoidal de frecuencia más baja que necesita generar? 4. ¿Cuánta variación de amplitud puedes soportar en la onda sinusoidal en su rango de frecuencia? 5. Cuando la onda cuadrada cambia de frecuencia, ¿cuánto tiempo puedes esperar antes de que la onda sinusoidal te alcance? 6. ¿Cuál será la mayor tasa de cambio de frecuencia de la onda cuadrada?
3. ~0 Hz. En este momento tengo alrededor de 0.1Hz. 4. Preferiblemente, poco o nada. Podría compensar cualquier variación con otra parte del circuito que controla la amplitud. El resto de las preguntas no las puedo contestar correctamente. Estoy interactuando con una caja negra y no tengo otra información que no sea: tengo que intentar ver qué sucede. Obviamente, la mejor respuesta sería, lo más pequeña posible, pero no estoy seguro de cuánta complejidad agregará.
@efox29: ¿Es posible que genere la onda cuadrada o es algo que sale de la caja negra sobre la que no tiene control?

Respuestas (2)

Tiene dos opciones además del PLL (que puede o no cumplir con sus requisitos: inevitablemente habrá retrasos entre la entrada y la salida si la frecuencia cambia, mientras que el PLL se establece en la nueva frecuencia. Teniendo en cuenta los comentarios, un PLL capaz de rastrear hasta 0.1Hz será una bestia para hacerlo bien)

1) Retrasar la señal de entrada de la misma manera que el filtro retrasa la salida.

Esto es más fácil si el filtro es un filtro de fase lineal como Bessel, o puede usar filtros digitales como un filtro FIR y un retardo digital correspondiente.

De lo contrario, no es imposible: puede diseñar una "red de paso total", también conocida como "ecualizador de retardo de grupo" con las mismas características de retardo (respuesta de fase) que el filtro: sin embargo, después de esto, la onda cuadrada generalmente ya no será una onda cuadrada. Si eso importa o no, no puedo decirlo, no conozco la aplicación.

Dado un filtro de fase lineal, el ecualizador de retardo de grupo debe ser relativamente simple y preservar la onda cuadrada.

2) Generar una forma de onda a partir de la otra sin filtrar.

Es posible generar una forma de onda triangular a partir de un cuadrado por integración (esto genera un cambio de fase de 90 grados, por lo que es posible que deba generar dos ondas cuadradas en cuadratura). Desde el triángulo, puede usar una red no lineal (resistencias y diodos, como un "recortador suave) para aproximar una onda sinusoidal. Es mejor que sea posible un contenido armónico del 2%: consulte el "ICL8038" para ver un ejemplo antiguo de esta técnica Esto solo funciona bien si la amplitud de la onda cuadrada es constante.

Pero es mucho más sencillo generar un cuadrado a partir de un seno, si tu aplicación lo permite...

Si está utilizando un filtro simétrico, la fase no debería cambiar. Sin embargo, para filtros no simétricos (p. ej., Butterworth), debe ejecutar el filtro dos veces para recuperar la fase. Una vez en los datos originales (esto cambiaría la fase), luego en los datos filtrados pero en orden inverso (esto cambia la fase de regreso al original), es decir:

  1. datos_filtrados(1:N)=Filtro(datos(1:N))
  2. samePhase_filtered_data=Filtrar(filtered_data(N:1))
  3. mismaPhase_filtered_data_rightOrder=mismaPhase_filtered_data(N:1)