関数sequence_hilbert マニュアル

(The documentation of function sequence_hilbert)

Last Update: 2021/12/7


◆機能・用途(Purpose)

時系列データのヒルベルト変換を行う。
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}).


◆形式(Format)

#include <sequence/envelope.h>
inline struct sequence sequence_hilbert(struct sequence original)


◆引数(Arguments)

original ヒルベルト変換を行う前の時系列データ。
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.


◆使用例(Example)

struct sequence original;
struct sequence hilbert=sequence_hilbert(original);


◆実際の計算方法 (Actual computation method)

実際には以下の手順で計算を行う。
The actual computation is composed of the following steps.

  1. 引数originalが表す入力時系列データをフーリエ変換する。
    Perform the Fourier transformation of the input time series data represented by argument original.
  2. ナイキスト周波数以下の成分を\(+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).
  3. 得られたスペクトルをフーリエ逆変換して時系列データに戻す。 これが元の時系列データのヒルベルト変換である。
    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.