Exemplo n.º 1
0
        public ComplexCapsule GetWalsh()
        {
            DataCapsule    loaded = SerializationLogics.Deserialize();
            List <Complex> result = new List <Complex>();

            Complex sum;

            int m = 0;

            while (Math.Pow(2, m) <= loaded.XValues.Count)
            {
                m++;
            }
            loaded.Take((int)Math.Pow(2, --m));

            double[][] matrix = TransformationsLogics.GetMatrix(m);

            for (int i = 0; i < loaded.XValues.Count; i++)
            {
                sum = Complex.Zero;
                for (int j = 0; j < Math.Pow(2, m); j++)
                {
                    sum += loaded.YValues[j] * matrix[i][j];
                }

                sum /= loaded.YValues.Count;//(double)(Math.Pow(Math.Sqrt(2.0), m));

                result.Add(sum);
            }

            return(new ComplexCapsule(loaded.XValues, result, loaded.SamplingFrequency));
        }
Exemplo n.º 2
0
        public ComplexCapsule GetFastFourier()
        {
            DataCapsule loaded = SerializationLogics.Deserialize();

            TransformationsLogics logics = new TransformationsLogics();

            List <Complex> transformed = new List <Complex>();
            int            N           = loaded.XValues.Count;

            transformed = logics.SwitchSamples(loaded.YValues);
            return(new ComplexCapsule(loaded.XValues.Take(transformed.Count).ToList(), transformed.Select(c => c / N).ToList(), loaded.SamplingFrequency));
        }