C# Class SoundLibrary.Filter.EvenLinearFir

線形位相 FIR フィルタクラス。 係数が実対象であることを利用して計算量/メモリ量削減。 偶数タップバージョン (タップ数 2n で、coef[n-1-i] == coef[n+i] foreach i)
Inheritance: IFirFilter
Mostrar archivo Open project: ufcpp/UfcppSample

Protected Properties

Property Type Description
buff CircularBuffer
coef double[]

Private Properties

Property Type Description

Public Methods

Method Description
Clear ( ) : void

内部状態のクリア

Clone ( ) : object
EvenLinearFir ( ) : System

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

EvenLinearFir ( double coef ) : System

係数を指定して FIR を作る。

EvenLinearFir ( int n ) : System

タップ数を指定して FIR を作る。

GetValue ( double x ) : double

フィルタリングを行う。 n: タップ数が 2n (n = this.coef.Length) x: 入力 y: 出力 c[i]: 係数配列 d[i]: i+1 サンプル前の x の値 とすると、 y = Σ_{i=1}^{n} (d[n+i] + d[n-1-i])*c[i]

Method Details

Clear() public method

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

Clone() public method

public Clone ( ) : object
return object

EvenLinearFir() public method

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

EvenLinearFir() public method

係数を指定して FIR を作る。
public EvenLinearFir ( double coef ) : System
coef double 係数を格納した配列。
return System

EvenLinearFir() public method

タップ数を指定して FIR を作る。
public EvenLinearFir ( int n ) : System
n int タップ数 = 2n - 1
return System

GetValue() public method

フィルタリングを行う。 n: タップ数が 2n (n = this.coef.Length) x: 入力 y: 出力 c[i]: 係数配列 d[i]: i+1 サンプル前の x の値 とすると、 y = Σ_{i=1}^{n} (d[n+i] + d[n-1-i])*c[i]
public GetValue ( double x ) : double
x double フィルタ入力。
return double

Property Details

buff protected_oe property

protected CircularBuffer,SoundLibrary.Filter buff
return CircularBuffer

coef protected_oe property

protected double[] coef
return double[]