Why is spectrum.periodogram not recommended, and how to substitute pwelch in it's place?
25 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mary
el 28 de Jun. de 2014
Comentada: Greg Dionne
el 3 de Mayo de 2017
A message pops up in Matlab when I use spectrum.periodogram to find the median frequency of a signal, saying that it is not recommended. Why is this? I also get the same message for spectrum.pwelch
psdest = psd(spectrum.periodogram,x,'Fs',1000,'NFFT',length(x));
normcumsumpsd = cumsum(psdest.Data)./sum(psdest.Data);
Ind = find(normcumsumpsd <=0.5,1,'last');
fprintf('Median frequency is %2.3f Hz\n',psdest.Frequencies(Ind));
After lots of research I still don't understand the output of the psd well enough so that I can susbstitute spectrum.periodgram. Normally I find my PSD using:
[Pxx,Fx] = pwelch(s,[],[],[],fs);
plot(Fx,10*log10(Pxx))
Ideally I would like to find the median frequency by manipulating the Pxx and Fx values but I am struggling to relate Pxx directly to psdest.Data. I would be grateful if someone could point me in the right direction. Thank you in advance!
0 comentarios
Respuesta aceptada
Daniel kiracofe
el 28 de Jun. de 2014
Well, first, is your signal a random variable? Or more of a periodic signal (i.e. a sine wave)? If it's periodic, then just a simple FFT will suffice to give you the frequency. You only need to mess with power spectral density if you have a random signal.
As to why periodogram is not recommended... first, let's establish one fact: you can never actual measure power spectral density, because to do that you'd need an infinitely long sample of the data. You can only estimate power spectral density with a finite length sample. And, as it turns out, the periodogram is not a very good estimate. One is problem is that as you take longer and longer data samples, you would expect to get better and better estimates. But this does not happen with periodogram. The estimate remains noisy even for more and more data.
welch's method (pwelch()) is better because as you take more and more data, the estimate gets better. There are other methods, but pwelch is pretty reasonable, and I use it a lot.
Hope this helps. I've also got some tutorials on power spectral density on my website: http://www.mechanicalvibration.com/Random_vibrations.html
5 comentarios
krn99
el 5 de Abr. de 2017
Mary can you please send the code for PSD using pwelch and to find Median and Mean Frequency
Más respuestas (3)
Sahaj Sandhu
el 17 de Jun. de 2015
Hey, have you calculated other features also ? like mean power or total power ?
0 comentarios
bhavya kailkhura
el 14 de Nov. de 2015
Is there an implementation of pwelch for 2d data? For example, if I want to plot psd of an image with dc component centered, how can I use pwelch to do that?
Thanks!
1 comentario
Greg Dionne
el 28 de Oct. de 2016
The spectrum package is no longer recommended for use.
0 comentarios
Ver también
Categorías
Más información sobre Spectral Estimation 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!