public override double Voltage(double phase) { double time = phase * period; double phase1 = time / period1; double phase2 = time / period2; phase1 -= (int)phase1; phase2 -= (int)phase2; return(wave1.Voltage(phase1) + wave2.Voltage(phase2)); }
public static double CalculateMeanVoltage(IWave wave, int calculate_times = 1000) { double delta_phase = 1.0 / (double)calculate_times; double little_sum = 0; double mean = 0; double phase = 0; for (int i = 0; i < calculate_times; i++) { little_sum += wave.Voltage(phase); phase += delta_phase; if ((i & 0xf) == 0) { mean += little_sum / calculate_times; little_sum = 0; } } mean += little_sum / calculate_times; return(mean); }
public override double Voltage(double phase) { return(-origin.Voltage(phase)); }