I have the current from a LEM transducer measured. The measurement is taken on the output of a transformer. The signal is a 50 Hz signal, measured at 100kHz. When the demand of the system is increased the current increases and therefore the amplitude of the sinusoidal gets bigger. I am looking for the maximum currents and the period over which this occurred.

Unfortunately the data is not the best quality. In some files the transducer connections appear to be bad as a signal sometimes will jump and cause a spike but the spike has many data points so using a median filter or similar is not helping me rid my system of the spikes.

I had initially applied a moving RMS filter to the signals (I have 50 different test files) and then taking the maximum of the signal to get the value and time where it occurred. However with the spikes it throws this out.

I thought about downsmapling the signal to reduce the resolution and hence the number of samples in the spikes and then doing a moving RMS but I would prefer to keep the resolution as per the original dataset.

Does anyone have any suggestions that I could try?

  • $\begingroup$ Hi! What's a "LEM transducer"? $\endgroup$ Jan 10, 2018 at 12:36
  • $\begingroup$ It is a transducer that is used to measure current. Similar to a clamp meter in that it is placed around the current carrying conductor. $\endgroup$
    – user33141
    Jan 10, 2018 at 15:16
  • $\begingroup$ What does the spectrum look like? $\endgroup$ Jan 10, 2018 at 17:45

1 Answer 1


Since the spikes are regions of bad data you want to figure out how to identify where they are and exclude them from your analysis. You certainly have more than enough sampling points to get a good read on the signal parameters on the regions that are good.

You indicate that you are looking for the amplitude. What resolution is your goal, every cycle? Are there harmonics?

I would set a DFT frame up that is two or three, maybe four cycles long. Let's say four, for argument's sake. That will be 8000 sample points. Your DFT doesn't have to be nearly that dense. A 64 point FFT should to the trick. Just use every 8000 / 64 = 125th sample. If you have a spikeless signal, only the bins that are multiples of four should have any significant magnitude and the bins in between will be near zero. You can then be confident you have a clean read and find the peaks in the time domain.

If there is a spike in your DFT frame, then the in between bins will have larger values. A little experimentation should allow you to find good threshold values. It is important for you to frame the DFT on a whole number of cycles. The easiest way to do this is to look for zero crossings.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.