この文脈では、決議には非常に具体的な定義があります。これは、近くの周波数で2つの別々のトーンを解決する能力を指します。スペクトル推定のサンプルレートを上げましたが、たとえば236 Hzと237 Hzの2つのトーンを区別する機能がありません。代わりに、適用するゼロパディングの量に関係なく、1つのblobに「溶け込み」ます。
解像度を上げるための解決策は、より長い時間信号を観察してから、より大きなDFTを使用することです。これにより、幅がDFTサイズに反比例するメインローブが作成されるため、十分に長い時間観察すると、互いに近い複数のトーンの周波数を実際に解決できます。
-
これがどのように機能するかを確認するために、次の2つの信号の加算のズームインFFTのプロットを示します。元の正弦波と、0〜100 Hzだけ周波数が異なる正弦波です。
この2つを区別(解決)できるのは、プロットの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]))