sequence/polezero.h マニュアル

(The documentation of sequence/polezero.h)

Last Update: 2024/3/25


sequence/polezero.hでは 時系列データやフーリエスペクトルに poleとzeroを作用させる関数が定義されている。
Functions to operate poles and zeroes to time series and Fourier spectral data are defined in sequence/polezero.h.

poleとzeroは地震計の応答特性を表すために用いられる。 地面の振動の波形を\(v_{in}(t)\)、そのラプラス変換を \[\begin{equation} V_{in}(s)=\int_{-\infty}^{\infty}v_{in}(t)e^{-st}dt \label{eq.Vin.Laplace} \end{equation}\] とおく。\(s\)は任意の複素数であり、 \(s=i\omega=2\pi if\)(\(\omega\): 角周波数、\(f\): 周波数) とおけば\(V_{in}(s)\)は\(v_{in}(t)\)のフーリエ変換になる。 同様に、地震計が出力する波形を\(v_{out}(t)\)、 そのラプラス変換を\(V_{out}(s)\)とおく。 このとき、地震計の応答特性は \[\begin{equation} T(s)\equiv \frac{V_{out}(s)}{V_{in}(s)} =C\frac{\prod_{n=1}^{N_0}(s-s_n^{(0)})}{\prod_{n=1}^{N_p}(s-s_n^{(p)})} \label{eq.response} \end{equation}\] と表される。ここで\(C\)は定数、 \(N_p\), \(N_0\)は非負の整数である。 \(s_n^{(p)}\)は複素定数で 極(pole)と呼ばれる。 \(s_n^{(0)}\)は複素定数で ゼロ点(zero)と呼ばれる。 このヘッダファイル内の関数では時系列データやフーリエスペクトルに対して (\ref{eq.response})式で表される地震計の応答特性 (伝達関数) を作用させる。
The poles and zeroes are used to exoress the response of a seismometer. Let \(v_{in}(t)\) be the waveform of an actual ground motion, and \(V_{in}(s)\) (Eq. \ref{eq.Vin.Laplace}) be its Laplace transformation, where \(s\) is an arbitrary complex number. \(V_{in}(s)\) is the Fourier transformation of \(v_{in}(t)\) if \(s=i\omega=2\pi if\), where \(\omega\) and \(f\) are an angular frequency and a frequency, respectively. In the same way, let \(v_{out}(t)\) and \(V_{out}(s)\) be the output waveform of the seismometer and its Laplace transformation, respectively. The response of this seismometer is then given by Eq. (\ref{eq.response}), where \(C\) is a constant, \(N_p\) and \(N_0\) are non-negative integers, \(s_n^{(p)}\) are complex constants (known as poles), and \(s_n^{(0)}\) are complex constants (known as zeros). Functions in this header file operates the response of a seismometer (a transfer function) given by Eq. (\ref{eq.response}) to a time series data or a Fourier spectrum.

このヘッダファイル内で定義されている関数を以下に示す。 各関数の詳細は関数名をクリックしてリンク先を参照のこと。
Functions defined in this header file are listed below. For details of individual functions, click the links.

関数名
Function name
対象とする型
Supported structure type
機能・用途
Purpose
operate_single_zero struct imsequence フーリエスペクトルに1つのzeroのみを持つ伝達関数を掛ける。
Multiply a transfer function that has a single zero to a Fourier spectrum.
operate_single_zero2 struct imsequence2
operate_single_pole struct imsequence フーリエスペクトルに1つのpoleのみを持つ伝達関数を掛ける。
Multiply a transfer function that has a single pole to a Fourier spectrum.
operate_single_pole2 struct imsequence2
operate_polezero struct imsequence(1) フーリエスペクトルに指定したpoleとzeroを持つ伝達関数を掛ける。
Multiply a transfer function that has specified values of poles and zeros to a Fourier spectrum.
operate_polezero2 struct imsequence2(1)
operate_polezero_for_fft struct imsequence(2)
operate_polezero_for_fft2 struct imsequence2(2)
transfer struct sequence(3) 時系列データに指定したpoleとzeroを持つ伝達関数を コンボリューションする。
Convolve a transfer function that has specified values of poles and zeros to a time series data.
transfer2 struct sequence(4)
remove_polezero
【マニュアル改訂中につき非公開】
[Documentation is not open as it is under revision]
struct imsequence(1) フーリエスペクトルを指定したpoleとzeroを持つ伝達関数で割る。
Divide a Fourier spectrum by a transfer function that has specified values of poles and zeros.
remove_polezero2
【マニュアル改訂中につき非公開】
[Documentation is not open as it is under revision]
struct imsequence2(1)
remove_polezero_for_fft
【マニュアル改訂中につき非公開】
[Documentation is not open as it is under revision]
struct imsequence(2)
remove_polezero_for_fft2
【マニュアル改訂中につき非公開】
[Documentation is not open as it is under revision]
struct imsequence2(2)
inv_transfer
【マニュアル改訂中につき非公開】
[Documentation is not open as it is under revision]
struct sequence(3) 時系列データを指定したpoleとzeroを持つ伝達関数で デコンボリューションする。
Deconvolve a time series data by a transfer function that has specified values of poles and zeros.
inv_transfer2
【マニュアル改訂中につき非公開】
[Documentation is not open as it is under revision]
struct sequence(4)
read_polezero_file
【マニュアル改訂中につき非公開】
[Documentation is not open as it is under revision]
- poleとzeroのリストをファイルから読み込む。
Read a list of poles and zeros from a file.

  1. 指数部を\(\exp(-i\omega t)\)とするフーリエ変換で得られたスペクトル。 全要素とも(低周波側の要素の折り返しの複素共役ではなく) 真のスペクトルの値であるものとする。
    A spectrum obtained by Fourier transformation in which \(\exp(-i\omega t)\) is used for the exponential part; all the components must be the true spectral values, not the complex conjugates of lower-half frequency components in reversed order.

  2. 関数 fft または fft2 で得られたフーリエスペクトル。 これらの関数で用いられるのは 指数部を\(\exp(+i\omega t)\)とするフーリエ変換である。 また、高周波側の半分の要素は低周波側の半分の要素の折り返しの複素共役に \(\exp(2\pi it_0/\Delta t)\)を掛けたものになっている。 ここで\(t_0\)は時系列データの先頭時刻、 \(\Delta t\)は時系列データのサンプル間隔を表す。
    A Fourier spectrum obtained by function fft or fft2. These functions use Fourier transformation in which \(\exp(+i\omega t)\) is used for the exponential part, and the higher-half frequency components are the complex conjugates of the lower-half frequency components in reversed order multiplied with \(\exp(2\pi it_0/\Delta t)\); \(t_0\) and \(\Delta t\) are the beginning time and sampling interval of the time series data, respectively.

  3. poleとzeroを struct im型構造体 として与える。
    Poles and zeroes are given by struct im-type structures.

  4. poleとzeroをdouble complex型変数として与える。
    Poles and zeroes are given by double complex-type variables.