Logarithmic scale using PSD function

5 Ansichten (letzte 30 Tage)
Graeme
Graeme am 3 Mär. 2011
I have a problem using the PSD function - basically the output of my code gives the frequency in a linear scale, when i need it in a logarithmic scale. Does anyone know how to alter the PSD/output to give the resulting plot in a logarithmic scale? cl is an array of values. I assume it is something very basic i need to change.
My code is as follows:
Fs = 1/0.005;
h = spectrum.welch;
Hpsd = psd(h,cl,'Fs',Fs);
plot(Hpsd)

Akzeptierte Antwort

Patrick Kalita
Patrick Kalita am 3 Mär. 2011
After creating the plot, set the axes XScale (if you want to replicate a semilogx plot) property to 'log'. For example:
Fs = 1000; t = 0:1/Fs:.296;
x = cos(2*pi*t*200)+randn(size(t));
h = spectrum.welch; % Create a Welch spectral estimator.
Hpsd = psd(h,x,'Fs',Fs); % Calculate the PSD
plot(Hpsd)
set(gca, 'XScale', 'log')

Weitere Antworten (2)

the cyclist
the cyclist am 3 Mär. 2011
Guessing you need the semilogx, semilogy, or loglog command.

Graeme
Graeme am 3 Mär. 2011
I had thought of that, but again that does not work. When i try:
semilogx(Hpsd)
i get the following error:
??? Error using ==> semilogx
Conversion to double from dspdata.psd is not possible.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by