Use nufft in stft - Non-uniform sampling for use in spectrogram for a time-series analysis
20 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Vilnis Liepins
el 6 de Feb. de 2023
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 comentario
Ver también
Categorías
Más información sobre Time-Frequency Analysis en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!