private void dataTrans() { Complex[] H = new Complex[MAX_OS_FRTCM_LIST.Count]; double v = 0; for (int i = 0; i < MAX_OS_FRTCM_LIST.Count; i++) { H[i] = Complex.Divide(MAX_OS_FRTCM_LIST[i], MAX_OS_TCMD_LIST[i]); MAGNITUDE_BODE.Add(-20.0 * Math.Log10(H[i].Magnitude)); v = Math.Atan2(H[i].Imaginary, H[i].Real); if (v < 0) { v = v + 2 * Math.PI; } PHASE_BODE.Add(-v * 180 / Math.PI); } FREQUENCY_BODE = FREQUENCIES_LIST; }
private void dataTrans() { for (int i = 0; i < MAX_OS_FRTCM_LIST.Count; i++) { Complex H = new Complex(); H.Real = ((MAX_OS_FRTCM_LIST[i].Real * MAX_OS_TCMD_LIST[i].Real) + (MAX_OS_FRTCM_LIST[i].Imag * MAX_OS_TCMD_LIST[i].Imag)) / (Math.Pow(MAX_OS_TCMD_LIST[i].Real, 2) + Math.Pow(MAX_OS_TCMD_LIST[i].Imag, 2)); H.Imag = ((MAX_OS_FRTCM_LIST[i].Imag * MAX_OS_TCMD_LIST[i].Real) - (MAX_OS_FRTCM_LIST[i].Real * MAX_OS_TCMD_LIST[i].Imag)) / (Math.Pow(MAX_OS_TCMD_LIST[i].Real, 2) + Math.Pow(MAX_OS_TCMD_LIST[i].Imag, 2)); MAGNITUDE_BODE.Add(-20.0 * Math.Log10(H.Mag)); double v = -H.Phs; PHASE_BODE.Add(v); //double v = Math.Atan2(H.Imag, H.Real); //if (v < 0) // v = v + 2 * Math.PI;; //PHASE_BODE.Add(-v * 180 / Math.PI); } FREQUENCY_BODE = FREQUENCIES_LIST; }