0

FFT を使用した Octave でのスペクトル計算に関する別の質問:

Audacity を使用して、ホワイト ノイズを含む .wav ファイルを作成し、fcut = 1kHz、-20dB/decade のローパスでフィルター処理しました。Audacity によって分析されたスペクトルは予想どおりに見えます (残念ながら、十分な評判がないため、画像を投稿できません)。

次に、次のコードを使用して、Octave でスペクトルを分析しました。

  pkg load signal   %load signal package
  graphics_toolkit ("gnuplot")  % use gnuplots

  close all
  clear all

  [stereosig, fs,bit] =wavread('noise_stereo.wav'); % load wav
  ch1 = stereosig(:,1); % left
  ch2 = stereosig(:,2); % right

  NFFT = 1024;
  NFFT_half = NFFT/2;
  X = fft(ch1, NFFT);
  freqvect = (1:NFFT_half+1)./NFFT*fs;

  figure(1)
  X_mag_scaled = abs(X(1:NFFT_half+1)./NFFT_half);
  semilogx(freqvect, 20*log10(X_mag_scaled));
  grid on
  xlabel('Frequency (Hz)')
  ylabel('Mag [dB]')

Octave によって作成されたプロットは非常に「滑らか」ではなく、隣接する 2 つのポイント間の差が 10dB を超える可能性があるため、-20dB/decade を適切に認識できません。1kHz のカットオフ周波数は推測でしかありません。

Audacityで行われているように「滑らかな」スペクトルを取得する方法を知っている人はいますか(これは合理的な解決策であると思います)?

フィリップ

4

0 に答える 0