Tengo un ADC SAR para medir el valor RMS de una señal de CA. Mi método actual es usar un temporizador para activar la conversión y almacenar el resultado de la conversión. Cuando he muestreado un ciclo completo de puntos, resto el nivel de DC (el promedio de todos los puntos) de la señal y luego uso el conocido algoritmo RMS para obtener el valor RMS.
Me pregunto si hay algún método para "distribuir" el trabajo de cálculo a las muestras. Por ejemplo, si necesito calcular el valor medio de la señal ciclada, puedo agregar el resultado de la conversión a una variable global "suma" después de que se realice la conversión. Cuando se realiza la conversión de la última muestra, solo necesito dividir la "suma" por el recuento de la muestra. En este método, solo necesito una variable global, no hay necesidad de almacenar todas las muestras. Pero para mi medición de RMS, lo que me resulta difícil es que necesito restar el nivel de DC, pero el nivel de DC solo se puede obtener después de haber realizado un muestreo de ciclo completo.
Creo que puedes entenderme. Cualquier sugerencia es apreciada.
Actualizar:
Gracias por todos ustedes que me han dado respuestas y sugerencias. Y algunas respuestas son aceptables para mí. Después de buscar y pensar, tengo un ideal también. Pero no muy seguro.
Como se sabe,
$$ V_ {RMS (total)} = \ sqrt {V_ {D} ^ 2 + V_ {1RMS} ^ 2 + V_ {2RMS} ^ 2 + \ cdots + V_ {nRMS} ^ 2} $$
Suponga un muestreo de ciclo completo perfecto, y omita los armónicos superiores,
$$ V_ {1RMS} = \ sqrt {V_ {RMS (total)} ^ 2 - V_ {D} ^ 2} $$
Por lo tanto, puedo usar el promedio de ejecución para obtener \ $ V_ {D} \ $, y running-rms para obtener \ $ V_ {RMS (total)} \ $ (sin quitar el DC), y finalmente hacer una Resta y sqrt para obtener el valor RMS de la señal de onda fundamental. Ciertamente, habrá algún error cuando mi muestreo no sea un ciclo completo perfecto.
Necesito que alguien confirme esto, gracias.