使用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]')
由于两个相邻点之间的差异可以> 0,所以由Octave产生的图极其严重"不平滑",-20dB / decade不能被正确识别。 10dB左右。 1kHz截止频率只能猜到。
是否有人知道如何获得顺畅的"在Audacity中完成的频谱(我认为这是一个合理的解决方案)?
菲利普