Logarithmic scale using PSD function

8 visualizaciones (últimos 30 días)
Graeme
Graeme el 3 de Mzo. de 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)

Respuesta aceptada

Patrick Kalita
Patrick Kalita el 3 de Mzo. de 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')

Más respuestas (2)

the cyclist
the cyclist el 3 de Mzo. de 2011
Guessing you need the semilogx, semilogy, or loglog command.

Graeme
Graeme el 3 de Mzo. de 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.

Categorías

Más información sobre Spectral Estimation en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by