I would like to take a time series of several spikes or narrow Gaussians and bandpass using an ift/ifft together with a frequency domain mask to create a series containing band-limited spikes. This is pretty simple but I have an additional desire - that the resulting band-limited spikes are causal - that is each band limited spike has a sharp onset (at the position of the original spike) followed by a tail dependent on the bandpass parameters.

The ultimate goal is a series that looks superficially like a superposition of a multitude of earthquakes.

Is there a simple way to do this?

Thanks very much for any guidance.

  • 2
    $\begingroup$ Why do you want to use FFT and not an ordinary IIR bandpass filter? IIR is always causal and much cheaper to implement. $\endgroup$ – Hilmar May 15 '19 at 19:12
  • $\begingroup$ I am certainly open to that but I am not well educated in signal processing although I do have a little experience with ffts. Can you point to a simple reference? $\endgroup$ – abby yorker May 15 '19 at 19:26
  • $\begingroup$ OK, inspired by the comment above, I looked around a bit and I came across the implementations of constructing and applying a filter, described here: stackoverflow.com/questions/13740348/… I ended up using lfilter rather than filtfilt (which is zero phase). $\endgroup$ – abby yorker May 15 '19 at 20:21

Your Answer

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

Browse other questions tagged or ask your own question.