示例#1
0
        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);
        }
示例#2
0
 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);
 }
示例#3
0
        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;
        }