/// <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); } }
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); } }
/// <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); } }