public EEGEmotionizer(Sampler sampler)
        {
            Sampler = sampler;

            Dictionary<Electrode, Waveform> eegWaveforms = Sampler.GetEEGWaveforms();

            Analyzers = new Dictionary<Electrode, EEGAnalyzer>();
            foreach (KeyValuePair<Electrode, Waveform> eegWaveform in eegWaveforms)
            {
                Analyzers.Add(eegWaveform.Key, new EEGAnalyzer(eegWaveform.Value));
            }

            CalculateAverageActivity();
            CalculateEmotions();
        }
        /// <summary>
        /// Load CSV data in background task
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            CSVWorkerArgs args = (CSVWorkerArgs)e.Argument;
            CSVWorkerResult result = new CSVWorkerResult();
            result.Success = false;

            try
            {
                CsvParser parser = new CsvParser(args.CsvFilePath);
                List<List<string>> csvData = parser.Parse();

                int sampleRate = Convert.ToInt32(parser.GetMetaDataDictionary().GetValue("Sample Rate"));

                Sampler sampler = new Sampler(csvData, sampleRate);
                result.Emotionizer = new EEGEmotionizer(sampler);
                result.Success = true;
            }
            catch (System.IO.IOException ex)
            {
                result.ErrorMessage = ex.Message;
                result.Success = false;
            }

            e.Result = result;
        }