예제 #1
0
def test_Task_generate1():
  '''
  Task object generation test
  '''
  outputConfig = HighRateConfig
  sv0 = GPSSatellite(1)
  sv0.setL1CAEnabled(True)
  signalSources = [sv0]
  noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
  tcxo = None
  signalFilters = [None] * 4
  groupDelays = True
  bands = [outputConfig.GPS.L1]
  generateDebug = True

  task = Task(outputConfig,
              signalSources,
              noiseParams,
              tcxo,
              signalFilters,
              groupDelays,
              bands,
              generateDebug)
  nSamples = 1024
  userTime0_s = 0.
  firstSampleIndex = 1
  task.update(userTime0_s, nSamples, firstSampleIndex)
  inputParams, sigs, debugData = task.perform()
  assert inputParams[0] == userTime0_s
  assert inputParams[1] == nSamples
  assert inputParams[2] == firstSampleIndex
  assert isinstance(debugData, dict)
  assert sigs.shape == (outputConfig.N_GROUPS, nSamples)
예제 #2
0
def test_Task_update1():
  '''
  Task object parameter update test
  '''
  outputConfig = NormalRateConfig
  sv0 = GPSSatellite(1)
  sv0.setL1CAEnabled(True)
  signalSources = [sv0]
  noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
  tcxo = TCXOPoly(())
  signalFilters = [None] * 4
  groupDelays = False
  bands = [outputConfig.GPS.L1]
  generateDebug = False

  task = Task(outputConfig,
              signalSources,
              noiseParams,
              tcxo,
              signalFilters,
              groupDelays,
              bands,
              generateDebug)

  userTime0_s = 123.
  nSamples = 1024
  firstSampleIndex = 1
  task.update(userTime0_s, nSamples, firstSampleIndex)
  assert task.nSamples == nSamples
  assert task.firstSampleIndex == firstSampleIndex
  assert task.userTime0_s == userTime0_s
  assert task.noise.shape == (outputConfig.N_GROUPS, nSamples)
  assert isinstance(task.signals, numpy.ndarray)
  assert task.signals.shape == (outputConfig.N_GROUPS,  nSamples)
예제 #3
0
def test_Task_computeGroupTimeVectors1():
  '''
  Task object group time vector test
  '''
  outputConfig = NormalRateConfig
  sv0 = GPSSatellite(1)
  sv0.setL1CAEnabled(True)
  signalSources = [sv0]
  noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
  tcxo = TCXOPoly((1.,))
  signalFilters = [None] * 4
  groupDelays = True
  bands = [outputConfig.GPS.L1]
  generateDebug = False

  task = Task(outputConfig,
              signalSources,
              noiseParams,
              tcxo,
              signalFilters,
              groupDelays,
              bands,
              generateDebug)
  nSamples = 1024
  userTime0_s = 0.
  firstSampleIndex = 1
  task.update(userTime0_s, nSamples, firstSampleIndex)
  userTimeAll_s = task.computeTimeVector()
  result = task.computeGroupTimeVectors(userTimeAll_s)
  assert isinstance(result, list)
  for i in range(outputConfig.N_GROUPS):
    assert (result[i] == userTimeAll_s + outputConfig.GROUP_DELAYS[i]).all()
예제 #4
0
def test_Task_generate0():
  '''
  Task object generation test
  '''
  outputConfig = HighRateConfig
  sv0 = GPSSatellite(1)
  sv0.setL1CAEnabled(True)
  signalSources = [sv0]
  noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
  tcxo = TCXOPoly((1.,))
  signalFilters = [LowPassFilter(outputConfig,
                                 outputConfig.GPS.L1.INTERMEDIATE_FREQUENCY_HZ),
                   None, None, None]
  groupDelays = True
  bands = [outputConfig.GPS.L1]
  generateDebug = False

  task = Task(outputConfig,
              signalSources,
              noiseParams,
              tcxo,
              signalFilters,
              groupDelays,
              bands,
              generateDebug)
  nSamples = 1024
  userTime0_s = 0.
  firstSampleIndex = 1
  task.update(userTime0_s, nSamples, firstSampleIndex)
  inputParams, sigs, debugData = task.perform()
  assert inputParams[0] == userTime0_s
  assert inputParams[1] == nSamples
  assert inputParams[2] == firstSampleIndex
  assert debugData is None
  assert sigs.shape == (outputConfig.N_GROUPS, nSamples)
예제 #5
0
def test_Task_computeTcxoVector2():
  '''
  Task object TCXO helper test
  '''
  outputConfig = NormalRateConfig
  sv0 = GPSSatellite(1)
  sv0.setL1CAEnabled(True)
  signalSources = [sv0]
  noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
  tcxo = TCXOPoly((1.,))
  signalFilters = [None] * 4
  groupDelays = False
  bands = [outputConfig.GPS.L1]
  generateDebug = False

  task = Task(outputConfig,
              signalSources,
              noiseParams,
              tcxo,
              signalFilters,
              groupDelays,
              bands,
              generateDebug)
  userTime0_s = 123.
  nSamples = 1024
  firstSampleIndex = 1
  task.update(userTime0_s, nSamples, firstSampleIndex)

  tcxoVector = task.computeTcxoVector()
  assert isinstance(tcxoVector, numpy.ndarray)
  assert tcxoVector.shape == (1024,)
  assert (tcxoVector != 0.).all()
예제 #6
0
def test_Task_createNoise():
  '''
  Task object noise helper test
  '''
  outputConfig = NormalRateConfig
  sv0 = GPSSatellite(1)
  sv0.setL1CAEnabled(True)
  signalSources = [sv0]
  noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
  tcxo = TCXOPoly((1.,))
  signalFilters = [None] * 4
  groupDelays = False
  bands = [outputConfig.GPS.L1]
  generateDebug = False

  task = Task(outputConfig,
              signalSources,
              noiseParams,
              tcxo,
              signalFilters,
              groupDelays,
              bands,
              generateDebug)
  userTime0_s = 123.
  nSamples = outputConfig.SAMPLE_BATCH_SIZE
  firstSampleIndex = 1
  task.update(userTime0_s, nSamples, firstSampleIndex)

  noiseMatrix = task.createNoise()
  assert isinstance(noiseMatrix, numpy.ndarray)
  assert noiseMatrix.shape == (outputConfig.N_GROUPS, nSamples)
  assert numpy.mean(noiseMatrix) < 0.1
  assert (noiseMatrix != 0.).sum() > 1000
예제 #7
0
def test_Task_update1():
    '''
  Task object parameter update test
  '''
    outputConfig = NormalRateConfig
    sv0 = GPSSatellite(1)
    sv0.setL1CAEnabled(True)
    signalSources = [sv0]
    noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
    tcxo = TCXOPoly(())
    signalFilters = [None] * 4
    groupDelays = False
    bands = [outputConfig.GPS.L1]
    generateDebug = False

    task = Task(outputConfig, signalSources, noiseParams, tcxo, signalFilters,
                groupDelays, bands, generateDebug)

    userTime0_s = 123.
    nSamples = 1024
    firstSampleIndex = 1
    task.update(userTime0_s, nSamples, firstSampleIndex)
    assert task.nSamples == nSamples
    assert task.firstSampleIndex == firstSampleIndex
    assert task.userTime0_s == userTime0_s
    assert task.noise.shape == (outputConfig.N_GROUPS, nSamples)
    assert isinstance(task.signals, numpy.ndarray)
    assert task.signals.shape == (outputConfig.N_GROUPS, nSamples)
예제 #8
0
def test_Task_computeTcxoVector1():
  '''
  Task object TCXO helper test
  '''
  outputConfig = NormalRateConfig
  sv0 = GPSSatellite(1)
  sv0.setL1CAEnabled(True)
  signalSources = [sv0]
  noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
  tcxo = None
  signalFilters = [None] * 4
  groupDelays = False
  bands = [outputConfig.GPS.L1]
  generateDebug = False

  task = Task(outputConfig,
              signalSources,
              noiseParams,
              tcxo,
              signalFilters,
              groupDelays,
              bands,
              generateDebug)
  userTime0_s = 123.
  nSamples = 1024
  firstSampleIndex = 1
  task.update(userTime0_s, nSamples, firstSampleIndex)

  tcxo = task.computeTcxoVector()
  # TCXO object is None because TCXO function is not provided
  assert tcxo is None
예제 #9
0
def test_Task_generate0():
    '''
  Task object generation test
  '''
    outputConfig = HighRateConfig
    sv0 = GPSSatellite(1)
    sv0.setL1CAEnabled(True)
    signalSources = [sv0]
    noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
    tcxo = TCXOPoly((1., ))
    signalFilters = [
        LowPassFilter(outputConfig,
                      outputConfig.GPS.L1.INTERMEDIATE_FREQUENCY_HZ), None,
        None, None
    ]
    groupDelays = True
    bands = [outputConfig.GPS.L1]
    generateDebug = False

    task = Task(outputConfig, signalSources, noiseParams, tcxo, signalFilters,
                groupDelays, bands, generateDebug)
    nSamples = 1024
    userTime0_s = 0.
    firstSampleIndex = 1
    task.update(userTime0_s, nSamples, firstSampleIndex)
    inputParams, sigs, debugData = task.perform()
    assert inputParams[0] == userTime0_s
    assert inputParams[1] == nSamples
    assert inputParams[2] == firstSampleIndex
    assert debugData is None
    assert sigs.shape == (outputConfig.N_GROUPS, nSamples)
예제 #10
0
def test_Task_generate1():
    '''
  Task object generation test
  '''
    outputConfig = HighRateConfig
    sv0 = GPSSatellite(1)
    sv0.setL1CAEnabled(True)
    signalSources = [sv0]
    noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
    tcxo = None
    signalFilters = [None] * 4
    groupDelays = True
    bands = [outputConfig.GPS.L1]
    generateDebug = True

    task = Task(outputConfig, signalSources, noiseParams, tcxo, signalFilters,
                groupDelays, bands, generateDebug)
    nSamples = 1024
    userTime0_s = 0.
    firstSampleIndex = 1
    task.update(userTime0_s, nSamples, firstSampleIndex)
    inputParams, sigs, debugData = task.perform()
    assert inputParams[0] == userTime0_s
    assert inputParams[1] == nSamples
    assert inputParams[2] == firstSampleIndex
    assert isinstance(debugData, dict)
    assert sigs.shape == (outputConfig.N_GROUPS, nSamples)
예제 #11
0
def test_Task_createNoise():
    '''
  Task object noise helper test
  '''
    outputConfig = NormalRateConfig
    sv0 = GPSSatellite(1)
    sv0.setL1CAEnabled(True)
    signalSources = [sv0]
    noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
    tcxo = TCXOPoly((1., ))
    signalFilters = [None] * 4
    groupDelays = False
    bands = [outputConfig.GPS.L1]
    generateDebug = False

    task = Task(outputConfig, signalSources, noiseParams, tcxo, signalFilters,
                groupDelays, bands, generateDebug)
    userTime0_s = 123.
    nSamples = outputConfig.SAMPLE_BATCH_SIZE
    firstSampleIndex = 1
    task.update(userTime0_s, nSamples, firstSampleIndex)

    noiseMatrix = task.createNoise()
    assert isinstance(noiseMatrix, numpy.ndarray)
    assert noiseMatrix.shape == (outputConfig.N_GROUPS, nSamples)
    assert numpy.mean(noiseMatrix) < 0.1
    assert (noiseMatrix != 0.).sum() > 1000
예제 #12
0
def test_Task_computeTcxoVector2():
    '''
  Task object TCXO helper test
  '''
    outputConfig = NormalRateConfig
    sv0 = GPSSatellite(1)
    sv0.setL1CAEnabled(True)
    signalSources = [sv0]
    noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
    tcxo = TCXOPoly((1., ))
    signalFilters = [None] * 4
    groupDelays = False
    bands = [outputConfig.GPS.L1]
    generateDebug = False

    task = Task(outputConfig, signalSources, noiseParams, tcxo, signalFilters,
                groupDelays, bands, generateDebug)
    userTime0_s = 123.
    nSamples = 1024
    firstSampleIndex = 1
    task.update(userTime0_s, nSamples, firstSampleIndex)

    tcxoVector = task.computeTcxoVector()
    assert isinstance(tcxoVector, numpy.ndarray)
    assert tcxoVector.shape == (1024, )
    assert (tcxoVector != 0.).all()
예제 #13
0
def test_Task_computeTcxoVector1():
    '''
  Task object TCXO helper test
  '''
    outputConfig = NormalRateConfig
    sv0 = GPSSatellite(1)
    sv0.setL1CAEnabled(True)
    signalSources = [sv0]
    noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
    tcxo = None
    signalFilters = [None] * 4
    groupDelays = False
    bands = [outputConfig.GPS.L1]
    generateDebug = False

    task = Task(outputConfig, signalSources, noiseParams, tcxo, signalFilters,
                groupDelays, bands, generateDebug)
    userTime0_s = 123.
    nSamples = 1024
    firstSampleIndex = 1
    task.update(userTime0_s, nSamples, firstSampleIndex)

    tcxo = task.computeTcxoVector()
    # TCXO object is None because TCXO function is not provided
    assert tcxo is None
예제 #14
0
def test_Task_init():
    '''
  Task object initialization test
  '''
    outputConfig = NormalRateConfig
    sv0 = GPSSatellite(1)
    sv0.setL1CAEnabled(True)
    signalSources = [sv0]
    noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
    tcxo = TCXOPoly(())
    signalFilters = [None] * 4
    groupDelays = False
    bands = [outputConfig.GPS.L1]
    generateDebug = False

    task = Task(outputConfig, signalSources, noiseParams, tcxo, signalFilters,
                groupDelays, bands, generateDebug)

    assert task.outputConfig == outputConfig
    assert task.bands == bands
    assert task.generateDebug == generateDebug
    assert task.groupDelays == groupDelays
    assert task.noiseParams == noiseParams
    assert task.signalFilters == signalFilters
    assert task.signalSources == signalSources
    assert task.tcxo == tcxo
    assert isinstance(task.noise, numpy.ndarray)
    assert task.noise.shape == (outputConfig.N_GROUPS,
                                outputConfig.SAMPLE_BATCH_SIZE)
    assert isinstance(task.signals, numpy.ndarray)
    assert task.signals.shape == (outputConfig.N_GROUPS,
                                  outputConfig.SAMPLE_BATCH_SIZE)
예제 #15
0
def test_Task_computeGroupTimeVectors1():
    '''
  Task object group time vector test
  '''
    outputConfig = NormalRateConfig
    sv0 = GPSSatellite(1)
    sv0.setL1CAEnabled(True)
    signalSources = [sv0]
    noiseParams = NoiseParameters(outputConfig.SAMPLE_RATE_HZ, 1.)
    tcxo = TCXOPoly((1., ))
    signalFilters = [None] * 4
    groupDelays = True
    bands = [outputConfig.GPS.L1]
    generateDebug = False

    task = Task(outputConfig, signalSources, noiseParams, tcxo, signalFilters,
                groupDelays, bands, generateDebug)
    nSamples = 1024
    userTime0_s = 0.
    firstSampleIndex = 1
    task.update(userTime0_s, nSamples, firstSampleIndex)
    userTimeAll_s = task.computeTimeVector()
    result = task.computeGroupTimeVectors(userTimeAll_s)
    assert isinstance(result, list)
    for i in range(outputConfig.N_GROUPS):
        assert (result[i] == userTimeAll_s +
                outputConfig.GROUP_DELAYS[i]).all()