レッスン
理論 — 離散フーリエ変換
N個のサンプルx0 … xN−1の離散フーリエ変換は、Xk = Σn xn e−2πikn/N というN個の数値です。これはビンkごとに一つあり、N個のサンプル内でk周期を完了する波が信号にどれだけ含まれているかをそれぞれ測定します。サンプルを繰り返す信号の1周期として扱うため、整数の周期を完了する音には正確ですが、それ以外の音はすべてのビンに広げてしまいます。これがスペクトル漏れです。つなぎ目を滑らかにするために、最初に窓関数wnをサンプルに掛け合わせます。
各記号の意味
A_k- ビンkが示す振幅、つまり棒が表すもの。0 < k < N/2 の場合は 2|Xk|/(N·G) であり、共有する鏡像ビンを持たない k = 0 および k = N/2 では |Xk|/(N·G) となります。ビンの上にある振幅1の音は1と表示されます
G- 窓関数のコヒーレントゲイン、すなわちwnの平均。窓なしの場合は1、ハン窓の場合は ½
- 前提
- 各音はピークからコサイン波として始まります。遠くの裾野の数値は開始時の位相によって変動します。10.5周期の音のビン31は、最も高い棒に対してコサイン波では26.3 dB下、サイン波では31.2 dB下になりますが、最も近い二つのビンにある81%はほとんど動きません。ハン窓は周期的な形式 ½ − ½cos(2πn/N) であり、その変換は正確に三つのビンになります。
全プロセスの詳細解説
-
測定値を補正し、その必要性をなくす 4 ステップ
あるアナライザーは1秒間に8,000回サンプリングし、窓関数なしで一度に64個のサンプルを変換します。1,312.5 Hzのテスト音を入力すると、最も高い棒は0.32を示しました。この音の真の振幅はいくつですか?また、1ブロックあたりのサンプル数をいくつにすれば、この音は正確にビンの上に乗りますか? 矢印が曲がるを押してください。ページ上でその周波数の音が再生されます。
-
ビンの間隔は 8,000/64 なので、音は1ブロックあたり10.5周期を完了します。つまりビン10と11のちょうど中間です。
-
中間では、ページで最も高い棒は音の64.61%を示します。これで割ります:
-
1ブロックが整数の周期を保持するとき、音はビンの上に乗ります。128サンプルの場合、ビンの間隔は 62.5 Hz になります:
-
アナライザーが64サンプルにハン窓を使用していた場合、最も高い棒は音の84.89%を示していたはずなので、同じ音は次のように表示されます:
解答
約0.495、そして1ブロックあたり128サンプルです。 1,312.5 Hzが整数の周期(21)を完了するには128サンプルが必要なので、128の倍数でも機能します。ページは64に固定されているため、128サンプルの場合は表示できる範囲を超えています。128であれば棒は完全な0.495を示し、振幅を読み取るために窓関数はもはや必要なく、強い音の裾野が微弱な音に影響を与えないようにするためだけに使われます。
-
学習の道すじ
フーリエ変換の実際
参考文献 (2)
- The standard reference on windows. Leakage defined as the page shows it: of all frequencies “only those which coincide with the basis will project onto a single basis vector; all other frequencies will exhibit non zero projections on the entire basis set”, because “the periodic extension of a signal not commensurate with its natural period exhibits discontinuities at the boundaries of the observation” (p. 52). Table I (p. 55) gives coherent gain 1.00 and 0.50 and scalloping loss 3.92 dB and 1.42 dB for the rectangle and Hann windows: F. J. Harris, “On the use of windows for harmonic analysis with the discrete Fourier transform”, Proceedings of the IEEE, vol. 66, no. 1, pp. 51–83 (1978).
- The DFT's definition, and what happens to a frequency that is not a bin: the sum “is N if ωₖ = ωₓ and zero at ωₗ, for l ≠ k. However, the sum is nonzero at all other frequencies”: J. O. Smith III, Mathematics of the Discrete Fourier Transform (DFT), with Audio Applications, 2nd ed., W3K Publishing (2007), “DFT Definition” and “Frequencies in the ‘Cracks’”.