Files

34 lines
901 B
C#
Raw Permalink Normal View History

2026-01-16 19:25:21 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Scottplot
{
public class RmsCalculator
{
public List<double> CalculatePeriodicRMS(List<double> data, double sampleRate, double signalFrequency)
{
int pointsPerCycle = (int)(sampleRate / signalFrequency);
List<double> rmsValues = new List<double>();
for (int start = 0; start < data.Count; start += pointsPerCycle)
{
int end = Math.Min(start + pointsPerCycle, data.Count);
var cycleData = data.GetRange(start, end - start);
double sumSquares = cycleData.Sum(x => x * x);
double rms = Math.Sqrt(sumSquares / cycleData.Count);
rmsValues.Add(rms);
}
return rmsValues;
}
}
}