def createScenarioFromSpirentFile(SVNum,CNO=38,Quantize=False): Jerk = 100 dT = 0.001 satelliteDict = Scenario.readSimulatorMotionFile() motionList = [] Time,losX,losY,losZ = satelliteDict[SVNum] Time/=1000 pseudorange = np.sqrt(losX**2+losY**2+losZ**2) velocity = np.diff(pseudorange) velocity-=velocity[0] acceleration = np.diff(velocity) pseudorange = pseudorange[:-2] velocity = velocity[:-1] T = Time[:-2] for i in range(0,acceleration.size): time = Time[i] targetAcceleration = acceleration[i] motionList.append(motion(time,targetAcceleration,Jerk)) TMin = Time[0] TMax = Time[-1] initialState = [0, 0, acceleration[0]] T,stateHistory = GenerateTrajectory(TMin, TMax, initialState, motionList,dT) if Quantize==True: stateHistory = quantizeSpirentStateHistory(T,stateHistory) SignalIn = GenerateSignal(T,stateHistory,CNO) return(T,SignalIn,stateHistory)
def compareRecievers(): channelDict = Scenario.readNMEAFile() satelliteDict = Scenario.readSimulatorMotionFile() startTime = 406800 #second of week CNO = 48 PLLBW = 2 FLLBW = 10 for SVNum in [1,3,6,11,16,18,19,22,31]: T,SignalIn,stateHistory = \ GenSignal.createScenarioFromSpirentFile(SVNum,CNO) coherentIntegrationTime = 4 numOutputSamples = T.size/coherentIntegrationTime print('Running Reciever') Z,DcoFreqArray,LockStateValues,PhaseError = \ runReceiver(T,SignalIn,18,FLLBW) PolarisFreq = DcoFreqArray[500:1000] plt.plot(PolarisFreq,'r') plt.ylabel('Doppler Shift (Hz)') plt.xlabel('Time (s)') plt.ylim(-4,4) plt.title('Bn=18Hz') plt.savefig(str(SVNum)+'18Polaris.eps',format='eps', dpi=1000) plt.close() Z,DcoFreqArray,LockStateValues,PhaseError = \ runReceiver(T,SignalIn,32,FLLBW) PolarisFreq = DcoFreqArray[500:1000] plt.plot(PolarisFreq,'r') plt.ylim(-4,4) plt.ylabel('Doppler Shift (Hz)') plt.xlabel('Time (s)') plt.title('Bn=32Hz') plt.savefig(str(SVNum)+'32Polaris.eps',format='eps', dpi=1000) plt.close()