#include <math.h>
#include <string.h>
#include <cblas.h>
#include <stdio.h>
#include "constants.h"
#include "stupid_filter.h"
#include "amb_kf.h"
#include "linear_algebra.h"
#include <lapacke.h>
Go to the source code of this file.
Functions | |
void | amb_from_baseline (u8 num_sats, double *DE, double *dd_meas, double b[3], s32 *N) |
void | init_stupid_filter (stupid_filter_state_t *s, u8 num_sats, sdiff_t *sdiffs, double *dd_meas, double b[3], double ref_ecef[3]) |
u8 | intersect_o_tron (u8 num_sats1, u8 num_sats2, u8 *sats1, sdiff_t *sdiffs, double *dd_meas, sdiff_t *intersection_sats, double *intersection_dd_meas, s32 *N, s32 *intersection_N) |
void | lesq_solution (u8 num_dds, double *dd_meas, s32 *N, double *DE, double b[3], double *resid) |
static void | rebase_N (s32 *N, u8 num_sats, u8 *old_prns, u8 *new_prns) |
void | rebase_stupid_filter (stupid_filter_state_t *s, u8 num_sats, u8 *old_prns, u8 *new_prns) |
void | update_sats_stupid_filter (stupid_filter_state_t *s, u8 num_old, u8 *old_prns, u8 num_new, sdiff_t *sdiffs, double *dd_meas, double ref_ecef[3]) |
void | update_stupid_filter (stupid_filter_state_t *s, u8 num_sats, sdiff_t *sdiffs, double *dd_meas, double b[3], double ref_ecef[3]) |
void amb_from_baseline | ( | u8 | num_sats, |
double * | DE, | ||
double * | dd_meas, | ||
double | b[3], | ||
s32 * | N | ||
) |
Estimate the integer ambiguity vector from a double difference measurement and a given baseline.
Given the double difference carrier phase measurement equation:
where is the double differenced carrier phase between satellite and reference satellite , is the corresponding integer ambiguity, is the unit vector to the th satellite and is the baseline vector between the reover and reference station.
We can estimate given the baseline as follows:
where the matrix is defined as:
num_sats | Number of satellites used |
DE | Double differenced matrix of unit vectors to the satellites |
dd_meas | Double differenced carrier phase measurements in cycles, length `num_sats - 1` |
b | Baseline vector in meters |
N | Vector where integer ambiguity estimate will be stored |
Definition at line 54 of file stupid_filter.c.
void init_stupid_filter | ( | stupid_filter_state_t * | s, |
u8 | num_sats, | ||
sdiff_t * | sdiffs, | ||
double * | dd_meas, | ||
double | b[3], | ||
double | ref_ecef[3] | ||
) |
Definition at line 80 of file stupid_filter.c.
u8 intersect_o_tron | ( | u8 | num_sats1, |
u8 | num_sats2, | ||
u8 * | sats1, | ||
sdiff_t * | sdiffs, | ||
double * | dd_meas, | ||
sdiff_t * | intersection_sats, | ||
double * | intersection_dd_meas, | ||
s32 * | N, | ||
s32 * | intersection_N | ||
) |
Definition at line 119 of file stupid_filter.c.
void lesq_solution | ( | u8 | num_dds, |
double * | dd_meas, | ||
s32 * | N, | ||
double * | DE, | ||
double | b[3], | ||
double * | resid | ||
) |
Definition at line 175 of file stupid_filter.c.
Definition at line 92 of file stupid_filter.c.
void rebase_stupid_filter | ( | stupid_filter_state_t * | s, |
u8 | num_sats, | ||
u8 * | old_prns, | ||
u8 * | new_prns | ||
) |
Definition at line 113 of file stupid_filter.c.
void update_sats_stupid_filter | ( | stupid_filter_state_t * | s, |
u8 | num_old, | ||
u8 * | old_prns, | ||
u8 | num_new, | ||
sdiff_t * | sdiffs, | ||
double * | dd_meas, | ||
double | ref_ecef[3] | ||
) |
Definition at line 141 of file stupid_filter.c.
void update_stupid_filter | ( | stupid_filter_state_t * | s, |
u8 | num_sats, | ||
sdiff_t * | sdiffs, | ||
double * | dd_meas, | ||
double | b[3], | ||
double | ref_ecef[3] | ||
) |
Definition at line 229 of file stupid_filter.c.