STFT入力された信号{ix(n)}をNセクションのスライドウィンドウに分割し、それぞれのセクションにFFTを実行します。さらに、
![STFT\left \{x[n]\right \} \equiv X(m, \omega)=\sum_{n=-\infty}^\infty x[n]\omega [n-m]e^{-j\omega n} STFT\left \{x[n]\right \} \equiv X(m, \omega)=\sum_{n=-\infty}^\infty x[n]\omega [n-m]e^{-j\omega n}](../images/Algorithm_(STFT)/math-b7782b6d6de5c1237e94d47beca08bcb.png)
ここで
は、その範囲内で局所的な周波数成分を強調するスライドウィンドウを表します。
STFTは、次の手順で計算します。
/STFT_algorithms_overlap.png)
STFTの結果は、N列とM行から構成される行列で、MとNはそれぞれ、
/math-9e348c3fe7f09aadbbd7d72a053ac985.png)
および、
/math-59e9a587d2252885aae75c225885eb51.png)
行列のj列目は、FFTのj番目のセクションとXの値がj番目のセクションの時間中点であることを示しています。Yの値はサンプル区間
の周波数で、Nはインプットされたデータポイントの数です。i番目の周波数は:
/math-50aa7a12fb8c13db0f687048c53d8b89.png)
サンプル間隔の自動計算について:
サンプル間隔で<自動>を選択すると、Originがサンプル区間内で自動的に計算を行います。
自動的に計算されるサンプリング間隔は、時間データの増加の平均で、これは通常入力信号と結びついているXデータが使われます。結びついているX列が無ければ、行番号が使われます。Originが増加の平均を取得するのに失敗した場合、サンプリング間隔は1にセットされます。
ウィンドウ法
FFTで使用されるウィンドウ法を指定します。デフォルトのオプションはHanningです。
![w[n] = \begin{cases} 1, & \mbox{if }0 \leq n \leq N-1 \ 0, & \mbox{otherwise } \end{cases} w[n] = \begin{cases} 1, & \mbox{if }0 \leq n \leq N-1 \ 0, & \mbox{otherwise } \end{cases}](../images/Algorithm_(STFT)/math-1dff02816a08f5abee4db570718fae2e.png)
![w[n]=1-\left[ \frac{n-\frac 12(N-1)}{\frac 12(N+1)}\right] ^2\,\! w[n]=1-\left[ \frac{n-\frac 12(N-1)}{\frac 12(N+1)}\right] ^2\,\!](../images/Algorithm_(STFT)/math-6e73eab9df4bcc92805e0be4ccc831c1.png)
![w[n]=\frac 2{N-1}\left[ \frac{N-1}2-\left| n-\frac{N-1}2\right| \right] \,\! w[n]=\frac 2{N-1}\left[ \frac{N-1}2-\left| n-\frac{N-1}2\right| \right] \,\!](../images/Algorithm_(STFT)/math-e66a9f4dcc74b3ab6be533c1c74db331.png)
![w[n]=\frac 12\left[ 1-\cos (\frac{2\pi n}{N-1})\right] \,\! w[n]=\frac 12\left[ 1-\cos (\frac{2\pi n}{N-1})\right] \,\!](../images/Algorithm_(STFT)/math-f625e1fbe6f2ba1e906c542714a5a198.png)
![w[n]=0.54-0.46\cos (\frac{2\pi n}{N-1}) \,\! w[n]=0.54-0.46\cos (\frac{2\pi n}{N-1}) \,\!](../images/Algorithm_(STFT)/math-b6803ad49e62341c7d027fda8b337cb8.png)
![w[n]=0.42-0.5\cos (\frac{w\pi n}{N-1})+0.08\cos (\frac{4\pi n}{N-1}) \,\! w[n]=0.42-0.5\cos (\frac{w\pi n}{N-1})+0.08\cos (\frac{4\pi n}{N-1}) \,\!](../images/Algorithm_(STFT)/math-53be39cb73653898ae42aa3e07614275.png)
![w[n]=exp(-0.5(Alpha( \frac{2n}{N-1}-1 ))^2) \,\! w[n]=exp(-0.5(Alpha( \frac{2n}{N-1}-1 ))^2) \,\!](../images/Algorithm_(STFT)/math-fab7a042f67f1dfb6dc5556e228508ec.png)
![w[n]=I(beta*\sqrt{1-(\frac{2n}{N-1}-1)^2}) / I(beta) \,\! w[n]=I(beta*\sqrt{1-(\frac{2n}{N-1}-1)^2}) / I(beta) \,\!](../images/Algorithm_(STFT)/math-04b7bbeb549a0b1d5ee22e3d50305676.png)
結果
/math-12ec70533ced68ec298d82a8c5ab34e7.png)
時間
STFT結果の各FFTセクション時間は、各セクションの信号の時間間隔の中心に対応します。例えば、セクション間隔 (ti, ti+(N-1)*dt) では、STFT結果のFFTセクションの時間は、ti+(N-1)*dt/2 です。