- メインページ
- ネームスペース
- クラス
- ファイル

- アルファベット順一覧
- 構成
- クラス階層
- 構成メンバ

# クラス osc::COscillator

`#include <osc.h>`

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

すべてのメンバ一覧

## 説明

抽象発振器クラス

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

osc.h の 19 行で定義されています。

## 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.cpp の 29 行で定義されています。

参照先 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.cpp の 36 行で定義されています。

参照先 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.cpp の 42 行で定義されています。

参照元 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.h の 26 行で定義されています。

int osc::COscillator::frequency`[protected]`

周波数

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

osc.h の 32 行で定義されています。

参照元 setFreq().

このクラスの説明は次のファイルから生成されました:

- osc.h
- osc.cpp