時系列データのヒルベルト変換を行う。
Perform the Hilbert transformation of a time series data.
ヒルベルト変換は以下のように定義される。
入力時系列データを\(f(t)\)、
そのフーリエスペクトルを\(F(\omega)\)とする。
但し\(F(\omega)\)の定義は関数fftにおける定義に合わせる。
このとき、スペクトル
\[\begin{equation}
G(\omega)\equiv
\begin{cases}
F(\omega)e^{+i\pi/2}=iF(\omega) & (\omega\geq 0) \\
F(\omega)e^{-i\pi/2}=-iF(\omega) & (\omega<0)
\end{cases}
\label{eq.hilbert.definition}
\end{equation}\]
を持つ時系列データが\(f(t)\)のヒルベルト変換である。
The Hilbert transformation is defined as follows.
Let \(f(t)\) be the input time series data,
and \(F(\omega)\) is the Fourier spectrum of it.
Here, \(F(\omega)\) is defined based on
the definition of function fft.
Then, the Hilbert transformation of \(f(t)\) is a time series data
that has the Fourier spectrum given by eq. (\ref{eq.hilbert.definition}).
ヒルベルト変換を行う前の時系列データ。
The time series data before the Hilbert transformation.
◆戻り値(Return value)
引数originalが表す入力時系列データのヒルベルト変換により得られる時系列データ。
A time series data obtained by performing the Hilbert transformation
of the input time series data represented by argument original.
実際には以下の手順で計算を行う。
The actual computation is composed of the following steps.
引数originalが表す入力時系列データをフーリエ変換する。
Perform the Fourier transformation of the input time series data
represented by argument original.
ナイキスト周波数以下の成分を\(+i\)倍、
ナイキスト周波数よりも大きな周波数成分
(離散スペクトルにおける高周波側の折り返し部分で、\(\omega<0\)に対応する)
を\(-i\)倍する。
Multiply \(+i\) to each frequency component of the spetrum
less than or equal to the Nyquist frequency,
and \(-i\) to each frequency component above it
(which corresponds to \(\omega<0\) in the discrete spectrum).
得られたスペクトルをフーリエ逆変換して時系列データに戻す。
これが元の時系列データのヒルベルト変換である。
Apply the Fourier inverse transformation to the resultant spectrum
to obtain a time series data,
which is the Hilbert transformation of the original time series data.
このステップ2において、
離散スペクトルの高周波側の半分が低周波側の半分の折り返しの複素共役
という関係が維持される。
したがってステップ3のフーリエ逆変換によって
正しく実数値の時系列データが得られる。
After the step 2, the relation is kept that
the higher frequency half components of the discrete spectrum are
the complex conjugates of the lower frequency half ones
with the reversed order.
Therefore, the inverse transformation in the step 3
correctly gives a time series data of real numbers.