public Complex[,] CalculateGammaOUT(ComplexLinearSpace gammaS_Sweep, out double MaxMagnitude, out double MinMagnitude) { MaxMagnitude = double.MinValue; MinMagnitude = double.MaxValue; Complex[,] gammaOUT_Sweep = new Complex[gammaS_Sweep.Mag.N, gammaS_Sweep.Phase.N]; for (int mag_ind = 0; mag_ind < gammaS_Sweep.Mag.N; mag_ind++) { for (int phase_ind = 0; phase_ind < gammaS_Sweep.Phase.N; phase_ind++) { Complex currentGammaS = MenialOperations.ComplexFromMagPhase(gammaS_Sweep.Mag.v[mag_ind], gammaS_Sweep.Phase.v[phase_ind], true); gammaOUT_Sweep[mag_ind, phase_ind] = this.gamma_OUT(currentGammaS); if (gammaOUT_Sweep[mag_ind, phase_ind].Magnitude > MaxMagnitude) { MaxMagnitude = gammaOUT_Sweep[mag_ind, phase_ind].Magnitude; } else if (gammaOUT_Sweep[mag_ind, phase_ind].Magnitude < MinMagnitude) { MinMagnitude = gammaOUT_Sweep[mag_ind, phase_ind].Magnitude; } } } return(gammaOUT_Sweep); }
public Complex[,] CalculateGammaOUT(ComplexLinearSpace gammaS_Sweep) { Complex[,] gammaOUT_Sweep = new Complex[gammaS_Sweep.Mag.N, gammaS_Sweep.Phase.N]; for (int mag_ind = 0; mag_ind < gammaS_Sweep.Mag.N; mag_ind++) { for (int phase_ind = 0; phase_ind < gammaS_Sweep.Phase.N; phase_ind++) { Complex currentGammaS = MenialOperations.ComplexFromMagPhase(gammaS_Sweep.Mag.v[mag_ind], gammaS_Sweep.Phase.v[phase_ind], true); gammaOUT_Sweep[mag_ind, phase_ind] = this.gamma_OUT(currentGammaS); } } return(gammaOUT_Sweep); }
public void toS() { if (this.state == STATE.Z) //Conversion from Z to S Param. { for (int freq_ind = 0; freq_ind < this.freq.Count; freq_ind++) { //Copy those parameters. Complex[,] temp_params = MenialOperations.CopyMatrix <Complex>(this.p[freq_ind]); //Make a new temp object w/those parmeters. TwoPortNetwork temp_tpn = new TwoPortNetwork(temp_params, this.state, this.Zo); //Convert that new temp object (TwoPortNetwork at this frequency) to new parameters. temp_tpn.toS(); //Reassign into this object. this.p[freq_ind] = MenialOperations.CopyMatrix <Complex>(temp_tpn.p); } } this.state = STATE.S; }