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 生成​​的图非常“不平滑”,-20dB/decade 无法正确识别,因为两个相邻点之间的差异可能 > 10dB 左右。1kHz 截止频率只能猜测。

有没有人知道如何在 Audacity 中获得“平滑”的频谱(我认为这是一个合理的解决方案)?

菲利普

4

0 回答 0