関数create_timefunc_cos マニュアル

(The documentation of function create_timefunc_cos)

Last Update: 2021/12/8


◆機能・用途(Purpose)

時間関数cos(下記(\ref{eq.definition})式)に基づく時系列データを作成する。 エラーチェック機能が不十分なのでこの関数を直接用いてはならない。 この関数は関数create_timefuncからの内部呼び出し用である。
Create a time series data based on a time function cos defined by eq. (\ref{eq.definition}). Do not directly call this function because error checks are insufficient. This function is for an internal call from function create_timefunc.


◆時間関数の定義 (Definition of the time function)

概要(Overview)
\(\tau_p\)を正の定数として 時刻\(t<0\)および\(t>\tau_p\)で0、 \(t=\tau_p/2\)で最大値を取る滑らかな時間関数である。 1周期分の三角関数\(\cos\)に定数を加え、時間をずらすことで生成する。
A smooth time function which takes 0 for time \(t<0\) and \(t>\tau_p\) and the maximum at \(t=\tau_p/2\), where \(\tau_p\) is a positive constant. This function is generated by adding a constant and shifting the time for one cycle cosine function.


定義(Definition)
\[\begin{equation} f(t)= \begin{cases} 0 & (t<0) \\ \frac{1-\cos(2\pi t/\tau_p)}{2} & (0\leq t \leq \tau_p) \\ 0 & (\tau_p<t) \end{cases} \label{eq.definition} \end{equation}\]

1階導関数 (1st order derivative)
\[\begin{equation} \frac{df(t)}{dt}= \begin{cases} 0 & (t<0) \\ \frac{\pi}{\tau_p}\sin(2\pi t/\tau_p) & (0\leq t \leq \tau_p) \\ 0 & (\tau_p<t) \end{cases} \label{eq.derivative} \end{equation}\]

1階積分 (1st order integral)
\[\begin{equation} F_1(t)=\int_{-\infty}^t f(t’)dt’= \begin{cases} 0 & (t<0) \\ \frac{t}{2}-\frac{\tau_p}{4\pi}\sin(2\pi t/\tau_p) & (0\leq t \leq \tau_p) \\ \frac{\tau_p}{2} & (\tau_p<t) \end{cases} \label{eq.integral1} \end{equation}\]
ここで積分定数は\(t<0\)で\(F_1(t)=0\)、 \(t=0\)および\(t=\tau_p\)で\(F_1(t)\)が連続となるように与えた。
Here, the integration constants are taken so that \(F_1(t)\) is zero for \(t<0\) and continuous at \(t=0\) and \(t=\tau_p\).


2階積分 (2nd order integral)
\[\begin{equation} F_2(t)=\int_{-\infty}^t F_1(t’)dt’= \begin{cases} 0 & (t<0) \\ \frac{t^2}{4}+\frac{\tau_p^2}{8\pi^2}[\cos(2\pi t/\tau_p)-1] & (0\leq t \leq \tau_p) \\ \frac{\tau_p^2}{4}+\frac{\tau_p}{2}(t-\tau_p) & (\tau_p<t) \end{cases} \label{eq.integral2} \end{equation}\]
ここで積分定数は\(t<0\)で\(F_2(t)=0\)、 \(t=0\)および\(t=\tau_p\)で\(F_2(t)\)が連続となるように与えた。
Here, the integration constants are taken so that \(F_2(t)\) is zero for \(t<0\) and continuous at \(t=0\) and \(t=\tau_p\).


フーリエスペクトル (Fourier spectrum)
\[\begin{eqnarray} F(\omega) &\equiv& \int_{-\infty}^{\infty}f(t)e^{-i\omega t}dt \nonumber \\ &=& \int_0^{\tau_p} \frac{1-\cos(2\pi t/\tau_p)}{2} e^{-i\omega t}dt \nonumber \\ &=& \frac{1}{2}\int_0^{\tau_p} e^{-i\omega t}dt -\frac{1}{2}\int_0^{\tau_p} \cos(2\pi t/\tau_p) e^{-i\omega t}dt \nonumber \\ &=& \frac{1}{2}\int_0^{\tau_p} e^{-i\omega t}dt -\frac{1}{2}\int_0^{\tau_p} \frac{e^{i\cdot 2\pi t/\tau_p}+e^{-i\cdot 2\pi t/\tau_p}}{2} e^{-i\omega t}dt \nonumber \\ &=& \frac{1}{2}\int_0^{\tau_p} e^{-i\omega t}dt -\frac{1}{4}\int_0^{\tau_p} e^{-i(\omega-2\pi/\tau_p)t}dt -\frac{1}{4}\int_0^{\tau_p} e^{-i(\omega+2\pi/\tau_p)t}dt \nonumber \\ &=& \frac{1}{2}\left[-\frac{1}{i\omega}e^{-i\omega t}\right]_0^{\tau_p} -\frac{1}{4}\left[-\frac{1}{i(\omega-2\pi/\tau_p)} e^{-i(\omega-2\pi/\tau_p)t}\right]_0^{\tau_p} \nonumber \\ & & -\frac{1}{4}\left[-\frac{1}{i(\omega+2\pi/\tau_p)} e^{-i(\omega+2\pi/\tau_p)t}\right]_0^{\tau_p} \nonumber \\ &=& -\frac{1}{2i\omega}\left[e^{-i\omega\tau_p}-1\right] +\frac{1}{4i(\omega-2\pi/\tau_p)} \left[e^{-i(\omega-2\pi/\tau_p)\tau_p}-1\right] \nonumber \\ & & +\frac{1}{4i(\omega+2\pi/\tau_p)} \left[e^{-i(\omega+2\pi/\tau_p)\tau_p}-1\right] \nonumber \\ &=& -\frac{1}{2i\omega}\left[e^{-i\omega\tau_p}-1\right] +\frac{1}{4i(\omega-2\pi/\tau_p)}\left[e^{-i\omega\tau_p}-1\right] \nonumber \\ & & +\frac{1}{4i(\omega+2\pi/\tau_p)}\left[e^{-i\omega\tau_p}-1\right] \nonumber \\ &=& \frac{-2(\omega+2\pi/\tau_p)(\omega-2\pi/\tau_p) +\omega(\omega+2\pi/\tau_p)+\omega(\omega-2\pi/\tau_p)} {4i\omega(\omega+2\pi/\tau_p)(\omega-2\pi/\tau_p)} \nonumber \\ & & \left[e^{-i\omega\tau_p}-1\right] \nonumber \\ &=& \frac{8\pi^2/\tau_p^2} {4i\omega(\omega+2\pi/\tau_p)(\omega-2\pi/\tau_p)} \left[e^{-i\omega\tau_p}-1\right] \nonumber \\ &=& \frac{2\pi^2} {i\omega\tau_p^2(\omega+2\pi/\tau_p)(\omega-2\pi/\tau_p)} \left[e^{-i\omega\tau_p}-1\right] \label{eq.spectrum} \end{eqnarray}\]

◆形式(Format)

#include <sequence/timefunc.h>
inline struct sequence create_timefunc_cos
(const double tp,const int size,const double t0,const double dt,
 const int Nintegral)


◆引数(Arguments)

tp (\ref{eq.definition})式における\(\tau_p\)の値。
The value of \(\tau_p\) in eq. (\ref{eq.definition}).
size 作成する時系列データのサンプル数。
The number of samples of the time series data to create.
t0 作成する時系列データの先頭時刻。
The beginning time of the time series data to create.
dt 作成する時系列データのサンプリング間隔。
The sampling interval of the time series data to create.
Nintegral 積分回数。以下の4つの値のいずれかを指定する。
The number of integrals, which must be one of the followings.
\(-1\) 時間関数の微分形(\ref{eq.derivative}式)を作成する。
Create the differential form (eq. \ref{eq.derivative}) of the time function.
0 時間関数そのもの(\ref{eq.definition}式)を作成する。
Create the time function itself (eq. \ref{eq.definition}).
1 時間関数の1階積分形(\ref{eq.integral1}式)を作成する。
Create the 1st order integral form (eq. \ref{eq.integral1}) of the time function.
2 時間関数の2階積分形(\ref{eq.integral2}式)を作成する。
Create the 2nd order integral form (eq. \ref{eq.integral2}) of the time function.


◆戻り値(Return value)

引数Nintegralの値に応じて (\ref{eq.definition}) (\ref{eq.derivative}) (\ref{eq.integral1}) (\ref{eq.integral2})の いずれかの時間関数を表す時系列データ。
A time series data which represents the time function of either of eqs. (\ref{eq.definition}), (\ref{eq.derivative}), (\ref{eq.integral1}), and (\ref{eq.integral2}) depending on argument Nintegral.


◆使用例(Example)

struct sequence timefunc=create_timefunc_cos(5.0,10001,-2.0,0.01,1);

この例では(\ref{eq.integral1})式で\(\tau_p=5\) sとした時系列データが \(t\in [-2,98]\)の時間範囲において0.01 sのサンプリング間隔で作成される。
In this example, a time series data based on eq. (\ref{eq.integral1}) with \(\tau_p=5\) s is created in a time range \(t\in [-2,98]\) with 0.01 s sampling intervals.