Loop Filter

Loop Filter

The default loop filter are provided by TrackingLoopFilters.jl. This includes

The default loop filter for the carrier loop is ThirdOrderBilinarLF and the default loop filter for the code loop is SecondOrderBilinearLF. This is set by the initialization of the TrackingState and can be changed by:

state = TrackingState(
  GPSL1,
  carrier_doppler,
  code_phase,
  carrier_loop_filter = ThirdOrderBilinearLF(),
  code_loop_filter = SecondOrderBilinearLF()
)

The bandwidth of the loop filter is set by the track function:

next_results = track(
  next_signal,
  get_state(results),
  prn,
  sample_frequency,
  carrier_loop_filter_bandwidth = 18Hz,
  code_loop_filter_bandwidth = 1Hz
)

You can easily implement a custom loop filter MyLoopFilter <: AbstractLoopFilter. In this case, a specialized propagate and get_filter_output is needed. For more information refer to TrackingLoopFilters.jl.