Beispiel #1
0
        /// <summary>
        /// 计算二阶互调
        /// </summary>
        /// <param name="transmitter">计算互调用发射机</param>
        /// <param name="max">计算互调用发射机在发射机组中位置</param>
        private void CalculateSecondOrderIM(Transmitter transmitter1, Transmitter transmitter2)
        {
            Transmitter minTransmitter, maxTransmitter;

            if (transmitter1.Freq > transmitter2.Freq)
            {
                minTransmitter = transmitter2;
                maxTransmitter = transmitter1;
            }
            else
            {
                minTransmitter = transmitter1;
                maxTransmitter = transmitter2;
            }
            if (this.currentReceiver.IsValidatingFreq(minTransmitter.Freq + maxTransmitter.Freq))
            {
                SecondOrderIMItem item = new SecondOrderIMItem(new ComparableFreq[] { minTransmitter.ComparableFreq, maxTransmitter.ComparableFreq }, new int[] { 1, 1 });
                item.DisturbedFreqs = new ComparableFreq[] { this.currentReceiver.ComparableFreq };
                this.imResult.RegisterIMItem(item);
            }
            if (this.currentReceiver.IsValidatingFreq(maxTransmitter.Freq - minTransmitter.Freq))
            {
                SecondOrderIMItem item = new SecondOrderIMItem(new ComparableFreq[] { maxTransmitter.ComparableFreq, minTransmitter.ComparableFreq }, new int[] { 1, -1 });
                item.DisturbedFreqs = new ComparableFreq[] { this.currentReceiver.ComparableFreq };
                this.imResult.RegisterIMItem(item);
            }
        }
Beispiel #2
0
        private void CalcStationSecondOrderIM(Transmitter transmitter, int max)
        {
            Transmitter minTransmitter, maxTransmitter;

            if (this.stationtransmitters[max].Freq > transmitter.Freq)
            {
                minTransmitter = transmitter;
                maxTransmitter = stationtransmitters[max];
            }
            else
            {
                minTransmitter = stationtransmitters[max];
                maxTransmitter = transmitter;
            }
            if (this.currentReceiver.IsValidatingFreq(minTransmitter.Freq + maxTransmitter.Freq))
            {
                SecondOrderIMItem item = new SecondOrderIMItem(new ComparableFreq[] { minTransmitter.ComparableFreq, maxTransmitter.ComparableFreq }, new int[] { 1, 1 });
                item.DisturbedFreqs = new ComparableFreq[] { this.currentReceiver.ComparableFreq };
                this.imResult.RegisterIMItem(item);
            }
            if (this.currentReceiver.IsValidatingFreq(maxTransmitter.Freq - minTransmitter.Freq))
            {
                SecondOrderIMItem item = new SecondOrderIMItem(new ComparableFreq[] { maxTransmitter.ComparableFreq, minTransmitter.ComparableFreq }, new int[] { 1, -1 });
                item.DisturbedFreqs = new ComparableFreq[] { this.currentReceiver.ComparableFreq };
                this.imResult.RegisterIMItem(item);
            }
        }
Beispiel #3
0
 /// <summary>
 /// 计算二阶互调
 /// </summary>
 /// <param name="min">计算互调用较小频率在发射机组中位置</param>
 /// <param name="max">计算互调用较大频率在发射机组中位置</param>
 private void CalcSecondOrderIM(int min, int max)
 {
     if (this.currentReceiver.IsValidatingFreq(this.stationtransmitters[min].Freq + this.stationtransmitters[max].Freq))
     {
         SecondOrderIMItem item = new SecondOrderIMItem(new ComparableFreq[] { this.stationtransmitters[min].ComparableFreq, this.stationtransmitters[max].ComparableFreq }, new int[] { 1, 1 });
         item.DisturbedFreqs = new ComparableFreq[] { this.currentReceiver.ComparableFreq };
         this.imResult.RegisterIMItem(item);
     }
     else if (this.currentReceiver.IsValidatingFreq(this.stationtransmitters[max].Freq - this.stationtransmitters[min].Freq))
     {
         SecondOrderIMItem item = new SecondOrderIMItem(new ComparableFreq[] { this.stationtransmitters[max].ComparableFreq, this.stationtransmitters[min].ComparableFreq }, new int[] { 1, -1 });
         item.DisturbedFreqs = new ComparableFreq[] { this.currentReceiver.ComparableFreq };
         this.imResult.RegisterIMItem(item);
     }
 }