アットウィキロゴ

FIR

「FIR」の編集履歴(バックアップ)一覧に戻る

FIR - (2009/10/17 (土) 20:46:04) のソース

<p>#ifndef FIRclass_Direct<br /><br />
// FIR フィルタ用クラスの定義部<br />
template&lt;int order&gt; class FIR_Direct<br />
{<br />
private:<br />
    const float *const hm;      // フィルタの係数に対応するポインタ<br />
    float xn[order+1];          // 入力信号用バッファ<br />
public:<br />
    FIR_Direct(const float hk[]) : hm(hk)           // コンストラクタ<br />
            { for (int k=0; k&lt;=order; k++) xn[k] = 0.0; }<br />
    inline float Execute(const float xin);          // FIR フィルタ処理の宣言<br /><br />
};<br /><br />
// FIR フィルタ用クラスの実装部<br />
template&lt;int order&gt; inline float FIR_Direct&lt;order&gt;::Execute(const
float xin)<br />
{<br />
    float acc = 0.0;<br />
    xn[0] = xin;<br />
    for (int k=0; k&lt;=order; k++) acc = acc + hm[k]*xn[k];   // 積和の計算<br />
    for (int k=order; k&gt;0; k--) xn[k] = xn[k-1];            // 入力信号の移動<br />
    return acc;<br />
}<br /><br />
#define FIRclass_Direct<br />
#endif</p>