Example #1
0
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)
Example #2
0
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()