Example #1
0
 protected SignalFixer(IAlgorithmParameters algorithmParams, ISignalFixerIterationData[] iterationData)
 {
     AlgorithmParams = algorithmParams;
     IterationsToRun = algorithmParams.IterationToRun;
     IterationsData = iterationData;
     CurrentIterationIndex = -1;
     PeriodLength = AlgorithmParams.SeedExperiment.SignalGeneratorData.ArbitrarySignalData.Count();
     ZeroPhaseOutputReference = FunctionGenerator.PositivieNormalizeCosine(PeriodLength);
     BestIterationIndex = 0;
 }
 public FrequencyDomainSignalFixer(IFrequencyDomainAlgorithmParameters algorithmParams, ISignalFixerIterationData[] iterationData)
     : base(algorithmParams, iterationData)
 {
     AlgorithmParams = algorithmParams;
     RunTimeState = new FrequencyDomainAlgorithmRunTimeState();
 }
        public void FixSignal(IAlgorithmParameters algorithmParameters, out ISignalFixerIterationData[] fixData)
        {
            ERROR_CODES status = ERROR_CODES.AA_OK;
            IExperimentData expIteration = null;
            ExperimentInitialSettings expSettings = algorithmParameters.SeedExperiment.InitialSettings;
            ISignalFixer signalFixer = SignalFixer.Classes.SignalFixer.CreateSignalFixerObject(algorithmParameters);
            double[] fixedSignalGeneratorInput;
            bool fixDone = false;
            signalFixer.FixSignalIteration(algorithmParameters.SeedExperiment, out fixedSignalGeneratorInput, out fixDone );
            int i = 1;
            for (i = 1; i < algorithmParameters.IterationToRun; i++)
            {
                try
                {
                    try
                    {
                        status = this.AddNewExperiment(fixedSignalGeneratorInput, expSettings, out expIteration);
                        if (status != ERROR_CODES.AA_OK)
                        {
                            status = status;
                        }
                    }
                    catch (Exception ex)
                    {

                        string s = ex.Message;
                    }
                    signalFixer.FixSignalIteration(expIteration, out fixedSignalGeneratorInput, out fixDone);
                    if (fixDone == true)
                    {
                        break;
                    }
                }
                catch (Exception ex)
                {
                    string s = ex.Message;
                }

            }
            fixData = signalFixer.IterationsData;
            if (i < algorithmParameters.IterationToRun)
            {
                Array.Resize(ref fixData, i+1);
            }
        }
 public void SaveSignalGeneratorInput(ISignalFixerIterationData iterationData)
 {
     SaveFileDialog dlg = new SaveFileDialog();
     dlg.Title = "Select signal generator file name";
     dlg.Filter = "Text File|*.txt";
     DialogResult dlgResult = dlg.ShowDialog();
     if (dlgResult == DialogResult.OK)
     {
         System.IO.File.WriteAllLines(dlg.FileName, iterationData.FixedInput.Select(x => x.ToString()).ToArray());
     }
 }
 public FirstOrderSignalFixer(IAlgorithmParameters algorithmParams, ISignalFixerIterationData[] iterationData)
     : base(algorithmParams, iterationData)
 {
 }