Loop Filter
The default loop filter are provided by TrackingLoopFilters.jl. This includes
- first order loop filter
FirstOrderLF
- second order biliner loop filter
SecondOrderBilinearLF
- second order boxcar loop filter
SecondOrderBoxcarLF
- third order bilinear loop filter
ThirdOrderBilinarLF
- third order boxcar loop filter
ThirdOrderBoxcarLF
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.