Logarithmic scale using PSD function

8 ビュー (過去 30 日間)
Graeme
Graeme 2011 年 3 月 3 日
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)

採用された回答

Patrick Kalita
Patrick Kalita 2011 年 3 月 3 日
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')
  1 件のコメント
Graeme
Graeme 2011 年 3 月 3 日
That's it. Thanks very much!

サインインしてコメントする。

その他の回答 (2 件)

the cyclist
the cyclist 2011 年 3 月 3 日
Guessing you need the semilogx, semilogy, or loglog command.

Graeme
Graeme 2011 年 3 月 3 日
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.

カテゴリ

Help Center および File ExchangeSpectral Estimation についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by