/// <summary> ///获取每个发射机的频段信息 /// </summary> public static List <FrequencyBand> GetTxFrequenceBand(string txpath, string setuppath, int txindex) { List <FrequencyBand> TxFrequenceBand = new List <FrequencyBand>(); List <TxObject> txs = TxReader(txpath); SetupObject setupfile = SetupFileProceed.GetSetupFile.GetSetup(setuppath); WaveformStp txwaveform = GetTxWaveForm(txs[txindex], setupfile); if (txwaveform.type == null) { throw new Exception("波形信息错误"); } if (txwaveform.type == "Sinusoid") { if (txwaveform.bandwidth < 2) { FrequencyBand temp = new FrequencyBand((int)(txwaveform.CarrierFrequency - 1), (int)(txwaveform.CarrierFrequency + 1), (txs[txindex].at.power)); TxFrequenceBand.Add(temp); } else { FrequencyBand temp = new FrequencyBand((int)(txwaveform.CarrierFrequency - txwaveform.bandwidth / 2), (int)(txwaveform.CarrierFrequency + txwaveform.bandwidth / 2), (txs[txindex].at.power)); TxFrequenceBand.Add(temp); } } else { psd TxDivFrequence = new psd(txwaveform.type, txwaveform.PulseWidth, (long)txwaveform.CarrierFrequency, txwaveform.Rolloff, txwaveform.FrequencyVariation, txwaveform.StartFrequency, txwaveform.StopFrequency); DivFrequency Frequencyinfo = TxDivFrequence.GetFandPSD(); TxFrequenceBand = GetBandInformation((txs[txindex].at.power), Frequencyinfo); } return(TxFrequenceBand); }
/// <summary> ///从setup中获取发射机波形信息 /// </summary> private static List <FrequencyBand> GetBandInformation(double power, DivFrequency Frequencyinfo) { List <FrequencyBand> TxFrequencyBand = new List <FrequencyBand>(); for (int i = 0; i < 7; i++) { double divPower = (power * Frequencyinfo.proportion[i]); FrequencyBand param = new FrequencyBand((int)(Frequencyinfo.startFre[i] / 1000000), (int)(Frequencyinfo.endFre[i] / 1000000), divPower); TxFrequencyBand.Add(param); } return(TxFrequencyBand); }