こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ゆらぎの分析

MATLABを使ってゆらぎの分析をしたいのですが、
FFT後、両対数軸で表示しようとすると、「警告:負のデータは無視されます」と出てきて、グラフが表示されなかったり、1本の直線が表示させたり、上手く表示できません。
FFTをする、対数軸で表示、の間にワンクッショなにかが必要なのでしょうか?

詳しい方教えてください。

一応テキストを見ながら作ったのですが、貼っておきます。

clear;
fs=10000;
dft_size=1024;
x=wavread('.wav');  //空けてあります。
w=HanningWindow_(dft_size);
for n=1:dft_size,
x(n)=x(n)*w(n);
end
X=fft(x,dft_size);
A=zeros(1,dft_size/2+1);
frequency=zeros(1,dft_size/2+1);
for k=1:dft_size/2+1,
A(k)=20*log10(abs(X(k)));
frequency(k)=(k-1)*fs/dft_size;
end

subplot(2,1,1),
plot(frequency,A);
xlabel=('周波数[Hz]');
ylabel=('振幅[db]');

% 対数軸で表示

subplot(2,1,2),
loglog(frequency,A);
xlabel=('周波数[Hz]');
ylabel=('振幅[db]');

投稿日時 - 2009-10-23 12:00:48

QNo.5389876

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

単純にlog(-1)はxy平面には表現できないだけです。
log(0)=-∞もグラフには当然表示できません。
0以下だった場合0.001に置き換えるなどの処理があれば、
表示できます。

投稿日時 - 2009-10-23 20:04:24

あなたにオススメの質問