How can I compute spectrogram for data vector containing NaN values?

6 views (last 30 days)
Dear community,
I am currently working on seismic recordings and I need to compute the spectrogram. The dataset has been cleaned in advance, and thus the original vector contains small portions of NaN values (about a few seconds each with a sample rate of 100 Hz).
However, spectrogram function cannot be applied to NaN values without compromising the entire result, and applying it to not NaN values (applied to data(~isnan(data)) would provide incorrect results (spectrogram function assumes that the sample rate is homogeneous which would no longer be the case).
I do not really know how to manage this issue, and to compute a correct power spectral density for my data, if anyone has a clue...
Thank you

Accepted Answer

KSSV
KSSV on 14 Jun 2019
Edited: KSSV on 14 Jun 2019
Multiple options:
  1. Discard NaN's
  2. Fill the NaN's using interpolation (interp1, spline)
  3. Fill the NaN's using fillmissing
  4. Fill the NaN's using fillgaps
My favourite is 4 th option.

More Answers (0)

Categories

Find more on Seismology in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!