クラス osc::COscillator

#include <osc.h>

osc::COscillatorに対する継承グラフ

osc::CTableLookup すべてのメンバ一覧

説明

抽象発振器クラス

発振器クラスの親となる抽象クラス。現在の位相と周波数を内部に保持する。 位相は2πを32bit符号なし整数にマッピングする。すなわち1周期を40億ステップ に分解する。 周波数は1サンプルに変化する量(dθ/dt)で指定する。32bit符号つき数である。

osc.h19 行で定義されています。

Public メソッド

 COscillator (int freq)
 コンストラクタ
virtual void setFreq (int freq)
 周波数の再設定
virtual void setPhase (unsigned int phase)
 位相の再設定
virtual void run (shortfract i[], shortfract q[], int count)=0
 複素信号の生成
virtual void run (shortfract i[], int count)=0
 信号の生成
virtual void run (shortfract i[], int deviation[], int count)=0
 FM信号の生成

Protected 変数

unsigned int phase
 内部位相
int frequency
 周波数


コンストラクタとデストラクタ

osc::COscillator::COscillator ( int  freq  ) 

コンストラクタ

周波数を指定する。内部位相は0になる。サンプル周波数 をfsとし、希望する周波数をfrとすると、コンストラクタに渡すべき値 freqは、 freq=fr*(2^32)/fs で得ることができる。

osc.cpp29 行で定義されています。

参照先 setFreq(), と setPhase().

00030     {
00031         this->setFreq( freq );
00032         this->setPhase( 0 );
00033     }


関数

void osc::COscillator::setFreq ( int  freq  )  [virtual]

周波数の再設定

引数:
freq 32bit 周波数。
内部位相を変更せずに周波数を再設定する。 サンプル周波数をfsとし、希望する周波数をfrとすると、 コンストラクタに渡すべき値 freqは、 freq=fr*(2^32)/fs で得ることができる。

osc.cpp36 行で定義されています。

参照先 frequency.

参照元 COscillator(), と afw::processData().

00037     {
00038         this->frequency = freq;
00039     }

void osc::COscillator::setPhase ( unsigned int  phase  )  [virtual]

位相の再設定

引数:
phase 32bit の周波数。
内部周波数を変更せずに位相を再設定する。 0から2^32-1の値で、0-2πを表現する。

osc.cpp42 行で定義されています。

参照元 COscillator().

00043     {
00044         this->phase = phase;
00045     }

virtual void osc::COscillator::run ( shortfract  i[],
shortfract  q[],
int  count 
) [pure virtual]

複素信号の生成

引数:
i コサイン波信号の出力配列
q サイン波信号の出力配列
count それぞれの配列に出力するサンプル数
発振器の内部位相をもとに、コサイン波とサイン波を生成する 純粋仮想関数。

osc::CTableLookupで実装されています。

参照元 afw::processData().

virtual void osc::COscillator::run ( shortfract  i[],
int  count 
) [pure virtual]

信号の生成

引数:
i コサイン波信号の出力配列
count 配列に出力するサンプル数
発振器の内部位相をもとに、コサイン波を生成する純粋仮想関数。

osc::CTableLookupで実装されています。

virtual void osc::COscillator::run ( shortfract  i[],
int  deviation[],
int  count 
) [pure virtual]

FM信号の生成

引数:
i コサイン波信号の出力配列
deviation 周波数偏移を指定する配列
count 配列に出力するサンプル数
発振器の内部位相をもとに、コサイン波を生成する純粋仮想関数。 deviation[]によって、サンプルごとに周波数偏移を指定することが できる。偏移させたい周波数をfr、サンプル周波数をfsとすると、 deviation[i]に与える量は fr*(2^32)/fs である。

osc::CTableLookupで実装されています。


変数

unsigned int osc::COscillator::phase [protected]

内部位相

内部位相は32ビット符号なし数である。この位相はrunメソッドで更新 していく。フルスケールが2πに相当する。

osc.h26 行で定義されています。

int osc::COscillator::frequency [protected]

周波数

周波数は32ビット数である。周波数はコンストラクタで指定 するほかsetFreqメソッドで再設定することもできる。

osc.h32 行で定義されています。

参照元 setFreq().


このクラスの説明は次のファイルから生成されました:
Flangerに対してWed Jul 25 11:10:16 2007に生成されました。  doxygen 1.5.2