C# Class SoundLibrary.Filter.IirFilter

IIR フィルタクラス。
Inheritance: IFilter
Mostra file Open project: ufcpp/UfcppSample

Public Methods

Method Description
Clear ( ) : void

内部状態のクリア

Clone ( ) : object
GetValue ( double x ) : double

フィルタリングを行う。 N: フィルタ次数 (= this.a.Length = this.b.Length - 1) x: 入力 t: 中間データ y: 出力 a[i]: 分母係数配列 b[i]: 分子係数配列 d[i]: i+1 サンプル前の t の値 とすると、 t = x + Σ_{i=0}^{N-1} a[i]d[i] y = t * b[0] + Σ_{i=0}^{N} b[i+1]d[i]

IirFilter ( ) : System

デフォルトコンストラクタ。

IirFilter ( double a, double b ) : System

係数を指定して IIR を作る。 作りたい IIR の伝達関数が、 Σ_0^N B_i z^i Y = ---------------- X Σ_0^N A_i z^i であるとき、 a[i] = - A_(i+1) / A_0 (i = 1〜N) b[i] = B_i / A_0 (i = 0〜N)

IirFilter ( int order ) : System

次数を指定して IIR を作る。

SetCoefficient ( double a, double b ) : void

係数の設定

Method Details

Clear() public method

内部状態のクリア
public Clear ( ) : void
return void

Clone() public method

public Clone ( ) : object
return object

GetValue() public method

フィルタリングを行う。 N: フィルタ次数 (= this.a.Length = this.b.Length - 1) x: 入力 t: 中間データ y: 出力 a[i]: 分母係数配列 b[i]: 分子係数配列 d[i]: i+1 サンプル前の t の値 とすると、 t = x + Σ_{i=0}^{N-1} a[i]d[i] y = t * b[0] + Σ_{i=0}^{N} b[i+1]d[i]
public GetValue ( double x ) : double
x double フィルタ入力。
return double

IirFilter() public method

デフォルトコンストラクタ。
public IirFilter ( ) : System
return System

IirFilter() public method

係数を指定して IIR を作る。 作りたい IIR の伝達関数が、 Σ_0^N B_i z^i Y = ---------------- X Σ_0^N A_i z^i であるとき、 a[i] = - A_(i+1) / A_0 (i = 1〜N) b[i] = B_i / A_0 (i = 0〜N)
public IirFilter ( double a, double b ) : System
a double 分母係数配列
b double 分子係数配列
return System

IirFilter() public method

次数を指定して IIR を作る。
public IirFilter ( int order ) : System
order int IIR の次数
return System

SetCoefficient() public method

係数の設定
public SetCoefficient ( double a, double b ) : void
a double 分母係数配列
b double 分子係数配列
return void