I have recordings from accelerometers (non-flat response with respect to frequency) and I'd like to convert my voltage time series into acceleration values. Is there a standard method for doing this?

My proposal to achieve this is:

  1. Break the signal into equally spaced segments overlapping with 50%.
  2. Apply a fft (with appropriate window) to each segment and apply the calibration values to each frequency.
  3. Convert the segment back into a time series by applying an ifft and reversing the window transform. We not have calibrated segments of the time series, although they are likely disjoint between window segments.
  4. Apply a triangle window to all overlapping segments and add them into a single time series. The triangle window should result in smooth transitions between window segments, resulting in a continuous, calibrated time series.

Are there any problems with this approach? The window choice is dependent on use case. Are there other approaches to achieve the same goal?


Potentially a lot of problems.

You really want to apply a filter to your data that the calibration curve represents, which seems to be your conceptual approach, only frequency domain filtering doesn't involve overlapping and windows, which one does in spectral estimation.

The hard part is to convert your calibration curve into a filter.

  • $\begingroup$ Thanks! I was hoping to speed up processing of long signals by splitting it up into smaller signals... hence my hacky proposal. Can you elaborate on why its hard to convert the calibration curve into a filter? I thought it was as straightforward as multiplying my signal fft magnitudes by relevant constants (interpolated from my calibration data to fit the fft size). I've been doing some quick reading on FIR filters... as I understand.. they are basically just a efficient method of running convolution which is what I understand my approach is. Or perhaps (likely!) I'm missing something? $\endgroup$ – RTbecard Aug 12 '18 at 20:54
  • $\begingroup$ Calibration curves usually just give magnitude. Phase is typically not given so one needs to make an informed guess. $\endgroup$ – user28715 Aug 12 '18 at 21:05
  • $\begingroup$ if i take an approach like a filtfilt (matlab), where i apply a second identical filter on the reverse of the timeseries, can i get around filter issues? (and of course adjust my filter magnitude accordingly) $\endgroup$ – RTbecard Aug 12 '18 at 21:09
  • $\begingroup$ Could work try it $\endgroup$ – user28715 Aug 12 '18 at 21:17

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.