/// <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 WaveformStp GetTxWaveForm(TxObject tx, SetupObject setup) { WaveformStp txwaveform = new WaveformStp(); List <WaveformStp> waveform = setup.waveform.allWaveforms; List <AntennaStp> antenna = setup.antenna.allAntennas; if (tx.at.waveformNum == -1) { for (int j = 0; j < antenna.Count; j++) { if (tx.at.antennaNum == antenna[j].antenna) { tx.at.waveformNum = antenna[j].waveform; } } } int i; for (i = 0; i < waveform.Count; i++) { if (tx.at.waveformNum == waveform[i].waveform) { txwaveform = waveform[i]; } } return(txwaveform); }