関数read_sac_polezero マニュアル

(The documentation of function read_sac_polezero)

Last Update: 2024/4/23


◆機能・用途(Purpose)

地震計の応答特性をファイルから読み込む。
Read poles and zeroes of a seismometer from a file.

地震計の応答特性はpoleとzeroで表される。 地面の振動の波形をvin(t)、そのラプラス変換を (1)Vin(s)=vin(t)estdt とおく。sは任意の複素数であり、 s=iω=2πif(ω: 角周波数、f: 周波数) とおけばVin(s)vin(t)のフーリエ変換になる。 同様に、地震計が出力する波形をvout(t)、 そのラプラス変換をVout(s)とおく。 このとき、地震計の応答特性は (2)T(s)Vout(s)Vin(s)=Cn=1N0(ssn(0))n=1Np(ssn(p)) と表される。ここでCは定数、 Np, N0は非負の整数、 sn(0)は複素定数(ゼロ点と呼ばれる)、 sn(p)は複素定数(極と呼ばれる)である。
The response of a seismometer is expressed by poles and zeros. Let vin(t) be the waveform of an actual ground motion, and Vin(s) (Eq. 1) be its Laplace transformation, where s is an arbitrary complex number. Vin(s) is the Fourier transformation of vin(t) if s=iω=2πif, where ω and f are an angular frequency and a frequency, respectively. In the same way, let vout(t) and Vout(s) be the output waveform of the seismometer and its Laplace transformation, respectively. The response of this seismometer is then given by Eq. (2), where C is a constant, N0 and Np are non-negative integers, sn(0) are complex constants (known as zeros), and sn(p) are complex constants (known as poles).

Seismic Analysis Code (SAC)においては (2)式に登場する定数 C, N0, sn(0), Np, sn(p) をテキストファイルで与えることにより、 地震波形から地震計の応答特性をデコンボリューションしたり、 別の地震計の応答特性をコンボリューションすることができる。 以下はテキストファイルの例である。
The Seismic Analysis Code (SAC) can deconvolve the response of a seismometer from a seismogram or convolve the response of another seismometer to an waveform, specifying the values of C, N0, sn(0), Np, and sn(p) in Eq. (2) by a text file. An example of the text file is shown below.

ZEROS 4
-0.125 0.0
-50.0 0.0
POLES 4
-0.13 0.0
-6.02 0.0
-8.66 0.0
-35.2 0.0
CONSTANT -394.0

ファイルの書式の説明はSACでhelp transferと打つことで得られるので ここでは省略する。 この関数の目的はこのようなファイルから C, N0, sn(0), Np, sn(p) の値を読み込むことである。
A description for the format of this file is available by typing “help transfer” in SAC. The purpose of this function is to read the values of C, N0, sn(0), Np, and sn(p) from this kind of file.


◆形式(Format)

#include <sac/readwrite.h>
inline void read_sac_polezero
(const char ∗inputfile,double ∗factor,
 int ∗Nzeroes,double complex ∗∗zeroes, int ∗Npoles,double complex ∗∗poles)


◆引数(Arguments)

inputfile 入力ファイル名。 地震計の応答特性を表すデータで SACソフトウェア用の書式で書かれているものを与える。
The name of an input file, which represents data for the response of a seismometer and is written in a format for SAC software.
factor 地震計の応答特性における定数係数Cの値の読み込み先。 宣言しただけのdouble型変数に&を付けて与える。 関数内で値が設定される。
Memory into which the value of a constant factor (C) of an instrumental response is to be inserted. Give an empty double-type variable with &. The value is determined within the function.
Nzeroes 地震計の応答特性におけるゼロ点の個数N0の読み込み先。 宣言しただけのint型変数に&を付けて与える。 関数内で値が設定される。
Memory into which the number of zeroes (N0) of an instrumental response is to be inserted. Give an empty int-type variable with &. The value is determined within the function.
zeroes 地震計の応答特性におけるゼロ点の値sn(0)のリストの読み込み先。 宣言しただけのdouble complex ∗型変数に&を付けて与える。 関数内で配列の動的メモリが確保され、 配列要素にはゼロ点の値が代入される。
Memory into which the list of zeroes (sn(0)) of an instrumental response is to be inserted. Give an empty double complex ∗-type variable with &. Within the function, the dynamic memory for an array is allocated and the values of zeroes are inserted into the array components.
Npoles 地震計の応答特性における極の個数Npの読み込み先。 宣言しただけのint型変数に&を付けて与える。 関数内で値が設定される。
Memory into which the number of poles (Np) of an instrumental response is to be inserted. Give an empty int-type variable with &. The value is determined within the function.
poles 地震計の応答特性における極の値のリストsn(p)の読み込み先。 宣言しただけのdouble complex ∗型変数に&を付けて与える。 関数内で配列の動的メモリが確保され、 配列要素には極の値が代入される。
Memory into which the list of poles (sn(p)) of an instrumental response is to be inserted. Give an empty double complex ∗-type variable with &. Within the function, the dynamic memory for an array is allocated and the values of poles are inserted into the array components.


◆動作(Behaviour)

引数inputfileで与えたファイルから C, N0, sn(0), Np, sn(p) の値を読み込んで 引数factor, Nzeroes, zeroes, Npoles, polesに格納する。
Read the values of C, N0, sn(0), Np, and sn(p) from the file specified by argument inputfile and preserve these values into arguments factor, Nzeroes, zeroes, Npoles, and poles.


◆使用例(Example)

double C;
int N0,Np;
double complex ∗zeroes,∗poles;
read_sac_polezero("polezero.dat",&C, &N0,&zeroes,&Np,&poles);