How to obtain Fourier power spectrum of velocity data?
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Lukos
el 1 de Feb. de 2019
Comentada: Star Strider
el 17 de Feb. de 2019
Hello,
I would like to know which frequencies are hidden in my velocity signal (=velocity vector).
I started straight forward: I took the "fft" of the vector and plotted its amplitude against the frequencies, but this does not give me the desired result, i.e. no clear frequency peaks were observed.
Since the velocity vector is non-periodic, i tried to smoothen the beginning and end of the signal by means of a hanning window. Unfortunately, it did not work.
I attached all the data in the zip-file it contains:
- UpV_irreg.mat (velocity vector)
- t_irreg.mat (corresponding time vector)
- fft_test.m (my code)
Any help would be greatly appreciated.
0 comentarios
Respuesta aceptada
Star Strider
el 1 de Feb. de 2019
See if the pwelch (link) function will do what you want. It may also not show any specific frequency peaks (it tends to combine closely-spaced peaks), however it will do essentially everything you describe as what you want to do.
8 comentarios
Star Strider
el 17 de Feb. de 2019
The amplitude in the frequency domain and time domain are the same in the code I posted. Note that MATLAB computes a two-sided Fourier transform, so the energy is equally divided between the positive and negative frequencies. It is therefore necessary to multiply the amplitude by 2 in the plotted one-sided Fourier transform to display the amplitude accurately:
plot(Fv, abs(FT_D(Iv))*2)
The discrete nature of the fft usually results in some ‘leakage’ of signal energy to near-by frequencies, so the peak amplitude in the fft may not always match (may be less than) the amplitude of the time-domain signal.
If you want to calculate the time-domain signal from the frequency-domain signal, you need to use the original two-sided Fourier transform results, without the amplitude scaling necessary for the one-sided Fourier transform.
I do not understand your reason for doing this, however. If you want to do frequency-selective filtering of your signal, do that in the time domain with some of the filter designs that the Signal Processing Toolbox (among others) allows you to create.
Más respuestas (0)
Ver también
Categorías
Más información sobre Spectral Measurements 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!