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で行われているように「滑らかな」スペクトルを取得する方法を知っている人はいますか(これは合理的な解決策であると思います)?
フィリップ