クラス flt::CFIRFilter

#include <flt.h>

flt::CFIRFilterに対する継承グラフ

flt::CFilter flt::CDecimator flt::CInterpolator すべてのメンバ一覧

説明

FIRフィルタクラス

CFirFilterは、16bit固定小数点によるFIRフィルタのクラスである。VisauDSP++の fir_fr16()関数のラッパーとして働く。

flt.h47 行で定義されています。

Public メソッド

 CFIRFilter (const shortfract h[], int tap, shortfract d[]=0)
 内部変数を初期化
virtual ~CFIRFilter ()
 デストラクタ
virtual void run (const shortfract input[], shortfract output[], int count)
 フィルタ実行メソッド

Protected 変数

fir_state_fr16 state
 内部変数


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

flt::CFIRFilter::CFIRFilter ( const shortfract  h[],
int  tap,
shortfract  d[] = 0 
)

内部変数を初期化

引数:
h 伝達関数H(係数配列)を与える。
tap フィルタのタップ数を与える
d ディレイラインへのポインタを与える。
このコンストラクタは内部変数stateの初期化を行う。

伝達関数である係数配列とディレイラインには外部から与えられるポインタをそのまま使う。 ディレイラインを与える引数が省略された場合には、内部で割り付けて使う。

flt.cpp11 行で定義されています。

00014     {
00015         if ( d ) {                     // ディレイラインが与えられたか
00016             givenDelayLine = 1;             // 与えられた
00017             state.d = (fract16 *) d;        // ディレイラインの設定
00018         }
00019         else{
00020             givenDelayLine = 0;             // 与えられなかった
00021             state.d = (short*)new shortfract[tap];   // ディレイラインの割付
00022         }
00023         
00024         state.h = (fract16 *)h;         // 伝達関数の設定
00025         state.k = tap;                  // タップ数の設定
00026         state.p = state.d;              // 読み出しポインタの初期化
00027         state.l = 0;                    // 未使用        
00028         
00029                 // ディレイラインの初期化
00030         for ( int i=0; i< tap; i++ )
00031             state.d[i] = 0;
00032     }

flt::CFIRFilter::~CFIRFilter (  )  [virtual]

デストラクタ

コンストラクタが確保した*(state.d)の領域を開放する。

flt.cpp35 行で定義されています。

参照先 flt::CFilter::givenDelayLinestate.

00036     {
00037         if ( ! givenDelayLine )
00038             delete[] state.d;
00039     }


関数

void flt::CFIRFilter::run ( const shortfract  input[],
shortfract  output[],
int  count 
) [virtual]

フィルタ実行メソッド

引数:
input shortfract型の入力配列。フィルタへの入力をここに与える。
output shortfract型の出力配列。フィルタの実行結果がここに格納される。
count input引数の要素数
VisualDSP++のfir_fr16のラッパーメソッドとして働く。

flt::CFilterを実装しています。

flt::CDecimatorflt::CInterpolatorで再定義されています。

flt.cpp41 行で定義されています。

参照先 state.

00044     {
00045         fir_fr16(           // VisualDSP++のフィルタ関数
00046                     (fract16 *)input, 
00047                     (fract16 *)output, 
00048                     count, 
00049                     &state 
00050                 );
00051     }


変数

fir_state_fr16 flt::CFIRFilter::state [protected]

内部変数

この変数はVisualDSP++に用意されている関数、fir_fr16用の内部変数である。 構造体になっており、係数配列へのポインタ、タップ数、ディレイラインへの ポインタなどを収める。

flt.h55 行で定義されています。

参照元 flt::CInterpolator::run()flt::CDecimator::run()run()~CFIRFilter().


このクラスの説明は次のファイルから生成されました:
IIR filter sample by wrapper classに対してMon Dec 18 17:29:48 2006に生成されました。  doxygen 1.5.1-p1