¿Cómo 'promediar' una onda sinusoidal de valores RMS?

0

Los amplificadores de bloqueo (Stanford Research Systems 830) muestran señales de onda sinusoidal en valores RMS SR830 Manual (página 3-3) . Se puede usar el búfer interno para medir rápidamente una señal, almacenando hasta 16000 puntos con una tasa de medición de 512Hz. Estos puntos son valores RMS de la señal original, si no me equivoco, y a menudo oscilan lentamente (debido a un componente de frecuencia pequeño que no se filtra completamente por el filtro de paso bajo). ¿Cómo se 'promedia' estos puntos amortiguados?

No estoy seguro de que tenga sentido calcular el valor RMS de una acumulación de onda a partir de valores RMS, pero tomar el promedio simple de esta onda también parece incorrecto.

Gracias de antemano!

    
pregunta Aad

1 respuesta

1

En primer lugar, debe reformular su pregunta de la siguiente manera: Cómo obtener un valor promedio de las mediciones. El término RMS solo confunde, ya que no hace ninguna diferencia si desea obtener un promedio de valores máximos, rms, ... en cualquier momento. El método más simple es un filtro de cámara móvil, necesita una memoria intermedia circular FIFO donde rellenar las mediciones. En cada entrada nueva, descarta la más antigua y calcula la nueva media de forma recursiva. enlace

Promedio = Promedio + NewestValue / n - OldestValue / n; eliminar OldestValue de FIFO e insertar NewestValue en.

NewValue: xyz;
Average: xyz or float or double;
FIFO: array[0..63] of xyz; //curcular buffer of 64 elements
Pointer: int;

//at init:
FIFO[from 0 to 63]=NewValue;
Average = NewValue;
Pointer = 0;

//at each measuring
Average = Average + NewValue/64 - FIFO[Pointer]/64;
FIFO[Pointer] = NewValue; // purge last and overwrite with new
Pointer= (Pointer + 1) AND 63; //increment pointer with roll over, circular buffer
    
respondido por el Marko Buršič

Lea otras preguntas en las etiquetas