I am looking for ideas from the more experienced members on algorithms for determining the fundamental zero crossing point of a 50 or 60 Hz signal. The fundamental zero crossing point is then used as the commencement point to calculate the RMS value of the original (voltage) signal AND other (current) signals.
Typically the frequency content of the Voltage is below 5% THD. At the moment I can't give u an exact figure on the SINAD but the typical Voltage signal will almost always be at 75% full scale (~250mV), or close to, of a delta sigma ADC (SINAD 110db) channel, with a sampling rate set to 6.4kHz. The target is an embedded DSP ARM M7 ~200Mhz with floating point hardware.
Ideally i would like to have 3-4 algorithms to prototype in Matlab and find the most appropriate. FIR vs. IIR vs. Bandpass vs. Zero-phase? Smarter approach? Would like to understand issues relating to sensitivity to noise, harmonics, group delay, edge effect, etc...
The IEC 61000-4-30:2015 standard on Power Quality states: "r.m.s. voltage, refreshed each half-cycle value of the r.m.s. voltage measured over 1 cycle, commencing at a fundamental zero crossing, and refreshed each half-cycle.
r.m.s. current, refreshed each half-cycle value of the r.m.s. current measured over 1 cycle, commencing at a fundamental zero crossing on an associated voltage channel, and refreshed each half-cycle."