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)); }
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)); }