/// <summary> /// 時間ドメイン値xを1サンプル投入。周波数ビン X^m(q)が出てくる。 /// 起動後0~N-1サンプルまでは、出力値は過渡値となる。 /// </summary> /// <param name="x">時間ドメインサンプル値x</param> /// <returns>周波数ビン X^m(q)。起動後0~N-1サンプルまでは、出力値は過渡値となる。</returns> public WWComplex Filter(double x) { // Complex resonator var delay = mDelay.GetNthDelayedSampleValue(0); WWComplex acc = WWComplex.Add(new WWComplex(x, 0), delay); WWComplex m = WWComplex.Mul(acc, mE); mDelay.Filter(m); return(WWComplex.Mul(m, mCompensation)); }
/// <summary> /// 時間ドメイン値xを1サンプル入力、N点DFTの周波数ドメイン値Xのm番目の周波数成分値を出力。 /// </summary> /// <param name="x">時間ドメイン値x</param> /// <returns>X^m(q)</returns> public WWComplex Filter(double x) { var c = mOsc.Next(); var m = WWComplex.Mul(c, x); var prev = mDelay.GetNthDelayedSampleValue(0); var r = WWComplex.Add(m, prev); mDelay.Filter(r); return(r); }