/// <summary>
        /// Funkcja wykonujaca konkadenacje sygnałów
        /// </summary>
        private static AnalogSignal operatorConcadenation(AnalogSignal firstSignal, AnalogSignal secondSignal)
        {
            AnalogSignal concadenateOfSignals = new AnalogSignal(firstSignal, secondSignal);

            double[] course;
            concadenateOfSignals.lengthOfBuffer = firstSignal.LengthOfBuffer + secondSignal.LengthOfBuffer;
            course = new double[concadenateOfSignals.LengthOfBuffer];
            for (int time = 0; time < firstSignal.LengthOfBuffer; time++)
            {
                course[time] = firstSignal.Course[time];
                // Sprawdzenie maksymalnej amplitudy i przypisanie jej do parametru
                if (course[time] > concadenateOfSignals.Amplitude)
                {
                    concadenateOfSignals.Amplitude = course[time];
                }
            }
            for (int time = firstSignal.LengthOfBuffer; time < concadenateOfSignals.LengthOfBuffer; time++)
            {
                course[time] = secondSignal.Course[time - firstSignal.LengthOfBuffer];
                // Sprawdzenie maksymalnej amplitudy i przypisanie jej do parametru
                if (course[time] > concadenateOfSignals.Amplitude)
                {
                    concadenateOfSignals.Amplitude = course[time];
                }
            }
            concadenateOfSignals.SetCourse(course);
            return(concadenateOfSignals);
        }
        /// <summary>
        /// Funkcja wykonujaca mnozenie sygnalow
        /// </summary>
        private static AnalogSignal operatorMultiplication(AnalogSignal firstSignal, AnalogSignal secondSignal)
        {
            AnalogSignal productOfSignals = new AnalogSignal(firstSignal, secondSignal);

            double[] course;
            course = new double[productOfSignals.LengthOfBuffer];
            for (int time = 0; time < productOfSignals.LengthOfBuffer; time++)
            {
                course[time] = firstSignal.Course[time] * secondSignal.Course[time];
                // Sprawdzenie maksymalnej amplitudy i przypisanie jej do parametru
                if (course[time] > productOfSignals.Amplitude)
                {
                    productOfSignals.Amplitude = course[time];
                }
            }
            productOfSignals.SetCourse(course);
            return(productOfSignals);
        }
        /// <summary>
        /// Funkcja realizujaca dodawanie sygnalow
        /// </summary>
        /// <param name="firstSignal">Pierwszy sygnal.</param>
        /// <param name="secondSignal">Drugi sygnal.</param>
        private static AnalogSignal operatorAddition(AnalogSignal firstSignal, AnalogSignal secondSignal)
        {
            double[]     course;
            AnalogSignal sumOfSignals = new AnalogSignal(firstSignal, secondSignal);

            course = new double[sumOfSignals.LengthOfBuffer];

            for (int time = 0; time < sumOfSignals.LengthOfBuffer; time++)
            {
                course[time] = firstSignal.Course[time] + secondSignal.Course[time];
                // Sprawdzenie maksymalnej amplitudy i przypisanie jej do parametru
                if (course[time] > sumOfSignals.Amplitude)
                {
                    sumOfSignals.Amplitude = course[time];
                }
            }

            sumOfSignals.SetCourse(course);
            return(sumOfSignals);
        }