Beispiel #1
0
            /// <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));
            }
Beispiel #2
0
        /// <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);
        }