在这种情况下,分辨率具有非常具体的定义。它是指您能够分辨附近频率上的两个单独音调的能力。您已经增加了频谱估计的采样率,但是还没有任何能力来区分两个音调,例如236 Hz和237 Hz。相反,无论您应用了多少零填充,它们都将“融合”为一个斑点。
提高分辨率的解决方案是观察信号更长的时间,然后使用更大的DFT。这将导致主瓣的宽度与DFT大小成反比,因此,如果观察足够长的时间,您实际上可以分辨彼此相邻的多个音调的频率。
-
为了了解这种情况的发生,这是两个信号相加后的放大FFT图:原始正弦波,和一个频率相差0至100 Hz的正弦波。
只有在图的100Hz差值末端(此处为左侧),您才能区分(分辨)两者。
用于生成以下图的Scilab代码。
f = 236.4;
d = 10;
N=441;
fs=44100;
extra_padding = 10000;
t=[0:1/fs:(d/1000-1/fs)]
ff = [0:(N+extra_padding-1)]*fs/(N+extra_padding);
x = sin(2*%pi*f*t);
XX = [];
for delta_f = [0:100];
y = sin(2*%pi*(f+delta_f)*t);
FFTX = abs(fft([x+y zeros(1,extra_padding)]));
XX = [XX; FFTX];
end
mtlb_axis([0 1300 0 500])
figure(1);
clf
[XXX,YYY] = meshgrid(ff,0:100);
mesh(XXX(1:100,[50:90]),YYY(1:100,[50:90]),XX(1:100,[50:90]))