1
\$\begingroup\$

I have been using a digital oscilloscope to measure a fast transient signal and have then processed the data in MATLAB. Performing an FFT on the data I consistently see a significantly large low frequency component which I believe is not part of the actual signal but rather to do with how the oscilloscope is measuring the signal. I have a few questions and would be very grateful to anyone that can help:

  1. How can I prove the low frequency component isn't actually part of the signal (assuming this is true)?
  2. What techniques can I use to remove this low frequency component from the data?

On question 2, I have tried using a high pass filter in MATLAB however when I then perform and IFFT the time domain signal looks significantly different to what I would expect.

Thanks in advance for any help.

\$\endgroup\$
  • \$\begingroup\$ Have you done "windowing" on your signal before applying FFT? \$\endgroup\$ – Oldfart Jan 10 '19 at 10:13
  • \$\begingroup\$ I havn't. Will this help? \$\endgroup\$ – Christian T Jan 10 '19 at 10:15
  • \$\begingroup\$ I started dabbing actively with FFTs on recently. The first thing I learned is that the edges can have a great influence. I am a sure there are people on this forum who know a lot more about it then I do. \$\endgroup\$ – Oldfart Jan 10 '19 at 10:49
  • \$\begingroup\$ Useful reading: electronicdesign.com/analog/… \$\endgroup\$ – Peter Smith Jan 10 '19 at 11:22
  • \$\begingroup\$ Thankyou @PeterSmith that link has a lot of useful info. \$\endgroup\$ – Christian T Jan 10 '19 at 11:44
1
\$\begingroup\$

You state you've not done any windowing, even if you have, you'd still expect a large DC signal (from the vertical offset of the trace), which will have leaked into other low frequency bins.

The FFT takes a signal which is a loop (ie it repeats over and over again). If your signal doesn't match at the ends, you get frequency components that correspond to harmonics of the period of the loop. There are various techniques for helping fix this, such as windowing, zero padding and pre-whitening.

If you're genuinely getting a signal at that frequency (eg most things have 50 or 60Hz components from AC), you can remove it, by filtering, either in the time domain before the FFT (using a FIR or IIR), or afterwards in the frequency domain after the FFT.

\$\endgroup\$
  • \$\begingroup\$ Thankyou for this answer. I think your first point about the large DC signal may be the most significant in my case. What techniques can be used to account for this? \$\endgroup\$ – Christian T Jan 10 '19 at 11:47
  • \$\begingroup\$ If it's just DC you can subtract the average value of the samples from each sample before doing the FFT. That's a slightly better method than simply removing the DC component after the FFT, as it will make the numerical method used in the FFT more accurate. \$\endgroup\$ – james Jan 10 '19 at 12:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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