Circuito para determinar la media dc de una forma de onda

1

Necesito encontrar la media de DC de una forma de onda cuyos valores máximo y mínimo variarán. La señal de entrada tiene un rango de frecuencia de 0 - 3Hz y tendrá un rango de voltaje de 0 - 5V. Me gustaría encontrar la media DC de la forma de onda después de que la forma de onda haya pasado por tres ciclos. La forma de onda de la que quiero encontrar la media de DC se muestra a continuación:

¿Alguienpuedesugerirmeuncircuitoparaimplementarestasolución,porfavor?

Editar-RM::Estoyagregandoesta"descripción". Por favor, elimine / enmiende según corresponda.

El requisito se relaciona con la medición de la presión arterial.
 Cada ciclo es un período de pulso o latido del corazón, por lo general, alrededor de 1 segundo / 60 BPM (latidos por minuto), pero puede durar hasta 2 segundos / 30 BPM o tan rápido como 1/4 segundo / 240 BPM (aunque los valores en cualquiera de esos extremos serían muy raros.) (p. ej., súper atleta en reposo y súper atleta bajo un esfuerzo extremo).

Idealmente, el sistema adquirirá el valor medio después de un solo ciclo válido y,
 eligió 1 -

  • Actualízalo ciclo por ciclo a partir de entonces

  • Síguelo de manera continua a lo largo del último ciclo completo para que los datos se actualicen instantáneamente durante el último período de pulso.

  • Síguelo de manera continua durante los últimos N ciclos completos, de modo que los datos se actualicen instantáneamente durante los últimos periodos de pulso N.

  • Otro ...

pregunta D Brown

4 respuestas

1

Esto es fácil. Esto es exactamente lo que hace un filtro de paso bajo. Usted tiene que decidir en qué escala de tiempo desea encontrar la media. Por poco tiempo, desea obtener el promedio. A lo largo de los tiempos largos, desea que este "promedio" varíe. Sólo tú puedes decir dónde debería estar esta transición. Una vez que sepa el período de transición, lo utilizará para ajustar la constante de tiempo del filtro de paso bajo.

Hay muchos tipos de filtros de paso bajo, pero el R-C simple debería funcionar bien. La conexión en cascada de varios filtros R-C permitirá una transición más abrupta entre los regímenes rápidos de "encontrar el promedio" y los lentos de "seguir el promedio".

Si proporciona más detalles, puedo proporcionar una respuesta más específica.

Añadido:

Ahora que ha agregado significativamente más detalles, está claro que un simple filtro analógico de paso bajo no será suficiente. En particular, no cumplirá con el requisito de encontrar el promedio de cada ciclo y después de un solo ciclo.

Hay técnicas analógicas como un integrador cerrado, pero esto será mucho más simple en un microcontrolador. Usted dice que su micro no tiene entrada A / D adicional, pero eso no es un argumento. Primero, ciertamente puede obtener uno que tenga más entradas A / D. En segundo lugar, como estaba dispuesto a agregar componentes electrónicos analógicos, también puede agregar un micro dedicado exclusivamente a esta tarea. Luego puede informar el promedio a través de una interfaz digital simple, como un UART, a la micro principal. En tercer lugar, originalmente solicitó una solución analógica, entonces, ¿cómo esperaba obtener esta información en el micro principal sin un convertidor A / D? Si una señal analógica proporcional al promedio tiene que ir a otra parte, entonces esa señal puede ser fácilmente producida por el micro adicional que hace el promedio. En el peor de los casos, obtienes un circuito que toma la señal de pulso analógica y produce el promedio analógico tal como lo pediste originalmente. Simplemente sucede que el promedio se realizará digitalmente en un microcontrolador dentro de la caja negra.

Afortunadamente, su rango de frecuencia es bastante bajo, por lo que es fácil de manejar incluso por un micro pequeño. La señal puede tener componentes significativos de hasta 1 kHz, pero como desea obtener el promedio, puede aplicar un filtro de paso bajo analógico y, por lo tanto, disminuir la tasa de muestreo aún más. En este caso, perder algunas de las altas frecuencias no hará daño ya que de todos modos no contribuyen al promedio. Con las altas frecuencias atenuadas, también será más fácil identificar los ciclos individuales buscando picos o cruces por cero. Tenga en cuenta que su forma de onda original como muestra tiene múltiples máximos locales y cero cruces. Estos son estrictamente debido a los armónicos de la señal. Con los armónicos reducidos, debería poder obtener un único mínimo / máximo local y cero en cada dirección por ciclo. El firmware calcula el promedio de un cruce por cero positivo al siguiente, por ejemplo.

Probablemente muestrear a 1 kHz. Coloque dos polos de filtrado de paso bajo analógico a aproximadamente 200 Hz antes del A / D. Probablemente necesitará amortiguar el resultado para obtener una impedancia suficientemente baja para la entrada A / D del micro. Una vez dentro del micro, agregaría otro par de polos de filtrado de paso bajo con una frecuencia de reducción menor, como en el rango de 50-100 Hz. Esto es para garantizar un solo cruce por cero positivo por ciclo. Esto puede atenuar la señal de entrada, pero al usar bits de fracción extra en el micro no se perderá información.

Entonces es simplemente encontrar el promedio de cada ciclo. En cada cruce por cero positivo, limpie un acumulador y un contador. Cada muestra, agregue el valor de muestra en el acumulador e incremente el contador en 1. El siguiente cruce por cero divide el valor acumulado por el conteo para obtener el promedio en el ciclo anterior, luego vuelva a hacerlo todo. Si este promedio debe ser reportado como una señal analógica, entonces utilícelo para controlar una salida PWM, que es un filtro de paso bajo externo.

    
respondido por el Olin Lathrop
3

Intentar hacer esto "bien" en el dominio analógico podría complicarse. Como mencioné anteriormente, necesitará una forma de reiniciar el integrador de amplificador operacional, por lo que significa un temporizador de algún tipo y una forma de descargar el capacitor integrador, como un JFET o MOSFET activado a través del capacitor integrador. También necesitará un circuito de muestreo y retención para muestrear la salida del integrador al final del tiempo de integración y mantenerlo mientras se integra el siguiente valor.

Por otro lado, sería fácil implementar todo su circuito con un microcontrolador de 75 centavos, como el ATTiny13A. Simplemente aplique su forma de onda (a través de cualquier red de protección / división de voltaje de entrada que desee) al convertidor AD del microcontrolador. Pruebe la entrada a un búfer en el software, el tiempo suficiente para obtener un ciclo completo, y luego, cada cierto tiempo, calcule, divida la suma de las muestras en el búfer por el número y allí tendrá su valor promedio. Use el PWM integrado para convertir este valor de nuevo en analógico (a una frecuencia MUCHO más alta, por lo que es más fácil de manejar que una señal de 3 Hz). El tiny13 también tiene un comparador integrado, por lo que puede tomar su valor promedio, que ahora es un Voltaje de CC, y aplíquelo a uno de los pines del comparador junto con su forma de onda original. Se activará una interrupción cada vez que el comparador cambie, si eso es lo que desea, y luego puede generar pulsos o lo que desee.

    
respondido por el Bitrex
0

¿Tal vez un integrador lo hará? enlace

¿Puede integrar y usar el valor máximo como su "promedio"?

    
respondido por el Mikhail
0

El requisito es determinar el valor medio con un tiempo de muestreo total de aproximadamente 15 segundos.

Una solución de microcontrolador digital, etc. con una entrada de ADC permitiría una solución casi perfecta que satisficiera la mayoría de las posibles necesidades alternativas. Esto permitiría una solución ad hoc NO basada en ningún algoritmo de filtro clásico. O ...

Si está monitoreando el pulso a largo plazo, digamos minutos +, entonces un filtro de paso bajo multipolar lo hará bien. Diga 6+ polo Butterworth. Buen tiempo de "ataque" y relativamente "constante" variación de pulso wrt. Esto podría utilizar implementación digital o analógica. En el tiempo disponible, se puede hacer que funcione "OK", pero una solución digital es mucho más flexible.

=======================

Me gustó la respuesta de @Bitrex que borró.
 Es esencialmente lo que sugerí anteriormente y brinda una posible solución completa. Es decir,

  • muestra digitalmente,
    calcular puntos máximos y mínimos,
    calcular el promedio entre max y min. actualizar el resultado según sea necesario.

Un último ciclo rodante o un promedio de los últimos N ciclos es una posibilidad.
 Las complejidades como, por ejemplo, el cambio de la duración del ciclo variable del pulso pueden ser manejadas por el software.

Hasta ahora falta el tiempo de adquisición requerido y las actualizaciones de actualización deseadas o aceptables.
 Ambos son importantes.

Compara sistemas que:

  • Son para uso clínico donde se puede estabilizar en segundos a 10 segundos y luego hace un seguimiento de la presión arterial de los usuarios con un cambio lento en la media aceptable (por ejemplo, solo un ejemplo, más de 10 segundos para estabilizarse hasta dentro 5% después de un cambio de paso) sería bastante diferente de

  • Son necesarios para adquirir y rastrear la presión en un brazalete cuando fue bombeado y rastrear la presión cuando se liberó la presión del brazalete. O

  • Puede aplicarse en segundos, estabilizarse, leerse y liberarse en unos 10-20 segundos en general. O

  • Tome un valor estable en cualquier ciclo.

Digitalmente es "fácil": conocer la problemática y los parámetros aceptables es la parte más difícil. Hasta ahora todavía no lo hacemos.

Parece que casi estamos allí con la especificación.

Diga de 5 a 30 ciclos.
 Presumiblemente (en ausencia de información) desea una serie de buenos ciclos en los que se conoce la media, por lo que desea un ataque rápido y una solución fantástica.
 Yo diría que un N polo en el que Butterworth estará bien cuando N sea tan grande como lo necesite, PERO, dada la tarea relativamente exigente de hacerlo bien, si se toman todos los ADC, sugeriría que un microcontrolador adicional podría ser aceptable.

Estos son ejemplos de lo que se puede tener por lo que $

Bajo $ US0.60 / 1000 con ADC de 10 bits

$ 1.46 / 1000 con < = 14 bit ADC, 9 bt DAC, ... !!!

respondido por el Russell McMahon

Lea otras preguntas en las etiquetas