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