Beispiel #1
0
        private void RenderWave()
        {
            if (this.maxFrequency.Value > 0.0 && this.pluseType != PluseType.None)
            {
                double tao = 0.0;
                //Compute the time domain data
                double[] tSteps;
                double[] pluses = MathUtility.GetPulseSerials(minFrequency.Value, maxFrequency.ChangeUnit(Frequency.FrequencyUnit.Hz), lossness, pluseType, serialsLength, ref tao, out tSteps);

                //Compute the frequency data
                double[] fSteps;
                double[] ffts = MathUtility.ComputeFrequencyData(pluseType, tao, maxFrequency.ChangeUnit(Frequency.FrequencyUnit.Hz), serialsLength, out fSteps);

                double[] lossNew = new double[serialsLength];
                double   value   = 1.0 / Math.Pow(10.0, lossness / 20.0);
                for (int i = 0; i < serialsLength; i++)
                {
                    lossNew[i] = value;
                }

                //Render the wave
                RenderTimeDomainWave(tSteps, pluses);
                RenderFrequencyDomainWave(fSteps, ffts, lossNew);
            }
            else
            {
                RenderTimeDomainWave(null, null);
                RenderFrequencyDomainWave(null, null, null);
            }
        }
Beispiel #2
0
        private void ResetTimeDelay()
        {
            float     phase     = this.txtPhase.Value;
            Frequency frequency = new Frequency(this.txtFreq.Value, (Frequency.FrequencyUnit) this.cboFreqUnit.SelectedItem);

            if (frequency.Value > 0.0)
            {
                float timeDelay = (float)MathUtility.ComputeTimeDelay(phase, frequency.ChangeUnit(Frequency.FrequencyUnit.Hz));

                //Set this value to txtTimeDelay
                txtTimeDelay.Value = new Time(timeDelay, Time.TimeUnit.sec).ChangeUnit((Time.TimeUnit)cboTimeDelayUnit.SelectedItem);
            }
        }
Beispiel #3
0
        private void ResetPhase()
        {
            Time      timeDelay = new Time(this.txtTimeDelay.Value, (Time.TimeUnit)cboTimeDelayUnit.SelectedItem);
            Frequency frequency = new Frequency(this.txtFreq.Value, (Frequency.FrequencyUnit) this.cboFreqUnit.SelectedItem);

            txtPhase.Value = (float)MathUtility.ComputePhase(timeDelay.ChangeUnit(Time.TimeUnit.sec), frequency.ChangeUnit(Frequency.FrequencyUnit.Hz));
        }