Question

I'm using pwelch to plot a power spectral density. I want to use the format

pwelch=(x,window,noverlap,nfft,fs,'onesided')

but with a log scale on the x axis.

I've also tried

[P,F]=(x,window,noverlap,nfft,fs);
plot(F,P)

but it doesn't give the same resulting plot as above. Therefore,

semilogx(F,P) 

isn't a good solution.

Was it helpful?

Solution

OK, so to start, I've never heard of this function or this method. However, I was able to generate the same plot that the function produced using output arguments instead. I ran the example from the help text.

EXAMPLE:
   Fs = 1000;   t = 0:1/Fs:.296;
   x = cos(2*pi*t*200)+randn(size(t));  % A cosine of 200Hz plus noise
   pwelch(x,[],[],[],Fs,'twosided'); % Uses default window, overlap & NFFT. 

That produces this plot: Desired Pic

I then did: plot(bar,10*log10(foo)); grid on; to produce the linear version (same exact plot, minus labels):

pic1

or

semilogx(bar,10*log10(foo)); grid on; for the log scale on the x-axis. pic2

I don't like that the x-scale is sampled linearly but displayed logarithmically (that's a word right?), but it seems to look ok.

Good enough?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top