Newbie to Signal processing, sorry if the question is basic. I have a data set consisting of 601 values. The values being time Vs voltage . The voltage values have transients in them. My aim is to filter out these transients using an FIR filter. But i'm still far from doing that. This is my voltage Vs Time plot.enter image description here

I plotted the fft of voltage and this is what i got. enter image description here

I read up that fft basically divides my sampling frequency,Fs, into N equal parts (N= 601, Total number of values). According to my (voltage Vs Time) plot, my Fs=2500Hz (by calculating Ts as the difference between consecutive values of time from data set).Then,2500/601 gives 4.159 as the first point in my fft. Is this even correct?

Going by the above,the strength of the signal is greatest at the 11th value (ie,10*4.159 =41.59 Hz) and the 592nd value (591*4.159=2458 Hz).Now, What significance does this information hold if i need to design a filter to eliminate the transients? What do information do i take away exactly, by performing the fft of the voltage signal?



1 Answer 1


Since the signal is most certainly real-valued, you can ignore the FFT values after $f_s/2$ (or sample 300 in your plot) since they will mirror the first ones. With a sampling frequency of 2500Hz, the highest frequency in your signal can be 1250Hz. If you have higher frequencies and don't filter them prior to sampling, you will get aliasing. Look up the sampling theorem for more information, it's quite important when working with sampled signals.

For your actual question I'm not sure what you want to achieve. With an FIR filter you can attenuate certain frequencies. If your transients are strictly not within your desired frequency range, that might work. If they are in the same frequencies as your actual signal, an FIR filter won't help. Is that supposed to be a transient in the first plot where the signal goes from being clean to jiggly?

If so, you could probably just use a lowpass filter which cuts off at 50Hz or similar.

  • $\begingroup$ I did look that up,upon your mention of it. So now i know that i have to have a low pass filter to filter out frequencies greater than 1250Hz,to avoid aliasing ,followed by another low pass filter that cuts off frequencies above 50Hz. Is that correct? Yes clean to jiggly signifies presence of transients. Also, you mentioned 50Hz because my signal strength is greatest at 41.59 Hz? $\endgroup$ Commented Jun 24, 2014 at 5:41
  • $\begingroup$ Basically yes, but the 1250Hz LPF must be an analog filter before the ADC. However, if there are no frequencies above 1250Hz in your source signal (or if they are of insignificant strength), you can probably get along without them.Yes, I said 50Hz because I assumed that is your desired frequency. But you may have to tweak the cutoff frequency, filter type (lowpass, bandpass) and other parameters to get your desired result. $\endgroup$
    – jan
    Commented Jun 25, 2014 at 1:30

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.