関数operate_polezero_for_fft2 マニュアル

(The documentation of function operate_polezero_for_fft2)

Last Update: 2024/3/25


◆機能・用途(Purpose)

フーリエスペクトルに指定したpoleとzeroを持つ伝達関数を掛ける。
Multiply a transfer function that has specified values of poles and zeros to a Fourier spectrum.

伝達関数は \[\begin{equation} T(s)=C \frac{\prod_{n=1}^{N_0}(s-s_n^{(0)})} {\prod_{n=1}^{N_p}(s-s_n^{(p)})} \label{eq.transfer} \end{equation}\] と表される(polezero.hのマニュアル参照)。 この関数ではこの伝達関数をフーリエスペクトルに掛ける。 複素数\(s\)は角周波数\(\omega\)と\(s=i\omega\)により関係づけられるものとする。
A transfer function is expressed as Eq. (\ref{eq.transfer}); see the documentation of polezero.h. This functions multiplies this transfer function to a Fourier spectrum. A complex number \(s\) is related to an angular frequency \(\omega\) through a relation \(s=i\omega\).

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


◆形式(Format)

#include <sequence/polezero.h>
inline void operate_polezero_for_fft2
(struct imsequence2 spectrum,double factor,
 const int Nzeroes,double complex ∗zeroes,
 const int Npoles,double complex ∗poles,
 const double t0,const double dt)


◆引数(Arguments)

spectrum 伝達関数を掛ける前のフーリエスペクトルを関数に渡す。 関数内で伝達関数を掛ける処理が行われ、その結果で上書きされる。 関数にユーザが渡すフーリエスペクトル、 関数内で書き換えられるスペクトルのいずれにおいても の高周波側の半分の要素は低周波側の要素の折り返しの複素共役に \(\exp(2\pi it_0/\Delta t)\)を掛けたものとする。
Give a Fourier spectrum before multiplying a transfer function. The function overwrites it with a Fourier spectrum multiplied by the transfer function. The higher-half frequency components of the input (given by the user) and output (determined by the function) Fourier spectra are supposed to be the complex conjugates of lower-half frequency components in reversed order multiplied with \(\exp(2\pi it_0/\Delta t)\).
factor (\ref{eq.transfer})式の\(C\)の値。
The value of \(C\) in Eq. (\ref{eq.transfer}).
Nzeroes (\ref{eq.transfer})式の\(N_0\)の値(ゼロ点の個数)。
The value of \(N_0\) in Eq. (\ref{eq.transfer}), which indicates the number of zeroes.
zeroes (\ref{eq.transfer})式の\(s_n^{(0)}\)(ゼロ点)の値を \(n=1,2,\cdots,N_0\)について並べた配列。
An array composed of the values of \(s_n^{(0)}\) (zeroes) in Eq. (\ref{eq.transfer}) for \(n=1,2,\cdots,N_0\).
Npoles (\ref{eq.transfer})式の\(N_p\)の値(極の個数)。
The value of \(N_p\) in Eq. (\ref{eq.transfer}), which indicates the number of poles.
poles (\ref{eq.transfer})式の\(s_n^{(p)}\)(極)の値を \(n=1,2,\cdots,N_p\)について並べた配列。
An array composed of the values of \(s_n^{(p)}\) (poles) in Eq. (\ref{eq.transfer}) for \(n=1,2,\cdots,N_p\).
t0 元々の時系列データの先頭時刻\(t_0\)。
The beginning time \(t_0\) of the original time series data.
dt 元々の時系列データのサンプリング間隔\(\Delta t\)。
The sampling interval \(\Delta t\) of the original time series data.


◆動作(Behaviour)

引数spectrumで与えたフーリエスペクトルに (\ref{eq.transfer})式の伝達関数を掛け、 結果を引数spectrumに上書き代入する。
Multiply a transfer function of Eq. (\ref{eq.transfer}) to the Fourier spectrum given by argument spectrum, and overwrite this argument by the result.


◆使用例(Example)

struct imsequence2 spectrum;
double complex zeroes[]= {1.2+3.4∗I,5.6-7.8∗I};
double complex poles[]= {9.01+2.34∗I,5.67-8.90∗I,1.23+4.56∗I};
operate_polezero_for_fft2(spectrum,7.89,2,zeroes,3,poles,0.0,0.01);