关于使用 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 中获得“平滑”的频谱(我认为这是一个合理的解决方案)?
菲利普