Example #1
0
        public void TestCombine()
        {
            var t1 = new Transfer();
            t1.B = new double[2] { 1, 1 };
            t1.A = new double[3] { 1, 2, 1 };

            var c = new TF.Combine();
            c.TransferFunctions.Add(t1);
            c.TransferFunctions.Add(t1);
            c.Update();

            Assert.AreEqual(new double[3] { 1, 2, 1 }, c.B);
            Assert.AreEqual(new double[5] { 1, 4, 6, 4, 1 }, c.A);
        }
Example #2
0
        public void TestFiltering()
        {
            var kernel = Utils.SincFilter(0.1f, 256, "blackman");

            //Line l = new Line(Utils.Linspace(-2,2,kernel.Length), kernel);
            //var list = new List<Line>() { l };
            //Plot.ShowPlot(list);

            Transfer tf = new Transfer();
            tf.B = kernel;
            //tf.A = new double[1] { 1.0f };

            double[] wave = new double[100000];
            for (int i = 0; i < wave.Length; i++)
            {
                wave[i] = ((i % 2000) < 1000) ? 1 : 0;
            }
            var output = tf.Process(wave);

            Line l2 = new Line(Utils.Linspace(0, 2, wave.Length), wave); l2.LinePen = Pens.Blue;
            Line l3 = new Line(Utils.Linspace(0, 2, output.Length), output); l3.LinePen = Pens.Red;
            var list = new List<Line>() { l2, l3 };
            Plot.Plot.ShowPlot(list);
        }