- 締切済み
ゆらぎの分析
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]');
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- ICE_FALCON
- ベストアンサー率56% (63/111)
単純にlog(-1)はxy平面には表現できないだけです。 log(0)=-∞もグラフには当然表示できません。 0以下だった場合0.001に置き換えるなどの処理があれば、 表示できます。