Use nufft in stft - Non-uniform sampling for use in spectrogram for a time-series analysis

20 次查看(过去 30 天)
Hello,
I have a time series analysis, that samples from something every T milliseconds. However, sometimes the measurement fails, and so I am (often) missing samples (sometimes several, or many in a row). I would like to create a spectrogram for this signal, and as such I need to perform a short-time Fourier transform on this data, which has non-uniform sampling.
I see there is a NUFFT function for non-uniform discrete fourier transforms (https://ch.mathworks.com/help/matlab/ref/double.nufft.html),
and also the STFT function for windowing the data into sections and performing a discrete Fourier transform on each section (https://ch.mathworks.com/help/signal/ref/stft.htm).
My question is whether I need to do my own windowing and STFTs with the NUFFT function in order to use non-uniformly sampled data in the STFT, or whether there is a better strategy or ideally a built-in function which allows me to do this.
Thank you for your help!
  2 个评论
mack
mack 2024-4-17
Hello,
Nothing particularly satisfying but something that at least works. I had to do a bunch of other work before resolving this 100%, but in the interim there is just one (as far as I know) matlab function which can handle very irregularly spaced data:
pspectrum(samples, sample_times, 'spectrogram');
With this you can specify the specific time at which each sample was measured.

请先登录,再进行评论。

回答(1 个)

Vilnis Liepins
Vilnis Liepins 2023-2-6
Hi mack,
As an alternative approach to 'nufft' you can try 'edft' function available on fileexchange Extended DFT - File Exchange - MATLAB Central (mathworks.com). Its application is quite simple - replace the missing samples with NaN and run: edft(your_data_with_NaN). In case your data doesn't have NaNs, 'edft' will apply Matlab's 'fft' function. Hope this helps!
  1 个评论
mack
mack 2023-2-8
编辑:mack 2023-2-8
This does not help, as there is nothing wrong with nufft. I need something that can perform the short-time version of this, including windowing, which your function does not do. Thanks for the help anyway.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Time-Frequency Analysis 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by