public class SingleFrequencyHatchFilter extends Object
The single frequency Hatch Filter is used to smooth the pseudo-range measurement using either a Doppler measurement or a carrier phase measurement.
Constructor and Description |
---|
SingleFrequencyHatchFilter(ObservationData initCode,
ObservationData initSmoothing,
MeasurementType type,
double wavelength,
double threshold,
int N,
double integrationTime)
Constructor for the Single Frequency Hatch Filter.
|
Modifier and Type | Method and Description |
---|---|
void |
addToCodeHistory(double codeValue)
Add a value to the history of the pseudo-range value.
|
void |
addToSmoothedCodeHistory(double smoothedCodeValue)
Add a value to the history of the smoothed pseudo-range value.
|
protected double |
checkValidData(double codeValue,
double smoothedValue,
boolean cycleSlip)
Checks if need to reset the filter or if cycle slip occurred.
|
ObservationData |
filterData(ObservationData codeData,
ObservationData smoothingData)
This method filters the provided data given the state of the filter.
|
ArrayList<Double> |
getCodeHistory()
Get the history of the pseudo-range values used by the filter.
|
ArrayList<Double> |
getSmoothedCodeHistory()
Get the history of the smoothed pseudo-range values used by the filter.
|
double |
getThreshold()
Get the threshold for loss of lock detection.
|
void |
resetFilterNext(double codeValue)
Reset the filter in the case of a NaN phase value, skipping the smoothing at the present instant
and initializing at the next one, keeping the current code value.
|
protected void |
resetK()
Reset the current index of the filter to 1.
|
protected void |
resetNextBoolean()
Set the flag for resetting the filter to true.
|
protected double |
smoothedCode(double codeValue,
double smoothingValue)
Computes the smoothed code value.
|
void |
updatePreviousSmoothedCode(double smoothedCode)
Update the previous smoothed value for the pseudo-range.
|
void |
updatePreviousSmoothingValue(double smoothingValue)
Update the previous smoothing value.
|
public SingleFrequencyHatchFilter(ObservationData initCode, ObservationData initSmoothing, MeasurementType type, double wavelength, double threshold, int N, double integrationTime)
The threshold parameter corresponds to the maximum difference between non-smoothed and smoothed pseudo range value, above which the filter is reset.
initCode
- initial code measurementinitSmoothing
- initial smoothing measurementtype
- type of the smoothing measurement (CARRIER_PHASE or DOPPLER)wavelength
- measurement value wavelength (m)threshold
- threshold for loss of lock detection
(represents the maximum difference between smoothed
and measured values for loss of lock detection)N
- window size of the Hatch FilterintegrationTime
- time interval between two measurements (s)public ObservationData filterData(ObservationData codeData, ObservationData smoothingData)
codeData
- input code observation datasmoothingData
- input smoothing observation datapublic ArrayList<Double> getCodeHistory()
public ArrayList<Double> getSmoothedCodeHistory()
public double getThreshold()
It represents the maximum difference between smoothed and measured values for loss of lock detection.
public void updatePreviousSmoothedCode(double smoothedCode)
smoothedCode
- the previous smoothed value for the pseudo-rangepublic void updatePreviousSmoothingValue(double smoothingValue)
smoothingValue
- the previous smoothing valuepublic void addToCodeHistory(double codeValue)
codeValue
- the value to add to the historypublic void addToSmoothedCodeHistory(double smoothedCodeValue)
smoothedCodeValue
- the value to add to the historypublic void resetFilterNext(double codeValue)
codeValue
- pseudo range value before the reset.protected void resetNextBoolean()
protected void resetK()
protected double smoothedCode(double codeValue, double smoothingValue)
This method corresponds to Eq. (4.23) of "Subirana, J. S., Hernandez-Pajares, M., and José Miguel Juan Zornoza. GNSS Data Processing: Fundamentals and Algorithms. European Space Agency."
codeValue
- value of the input code measurement (non-smoothed)smoothingValue
- value of the measurement used to smooth the code measurementprotected double checkValidData(double codeValue, double smoothedValue, boolean cycleSlip)
If yes, the smoothed value is reinitialized to the last code value. If no, the smoothed value value is not changed and the filter counter is updated.
codeValue
- value of the input code measurement (non-smoothed)smoothedValue
- the smoothed code valuecycleSlip
- true if cycle slip is detectedCopyright © 2002-2022 CS GROUP. All rights reserved.