📄 gensamples.h
字号:
#ifndef GENSAMPLES_H
#define GENSAMPLES_H
#include "simulator.h"
/* Input Arguments */
#define TIME_VEC prhs[0]
#define PRN prhs[1]
#define RX_POS prhs[2]
//#define SV_POS prhs[3]
/* Output Arguments */
#define TP_OUT plhs[0]
#define DOPPLER_OUT plhs[1]
#define LightSpeed 299792458.0
#define FrequencyL1 1575.42e6
#define Wedot 7.2921151467e-5 // WGS 84 value of the Earth's rotation rate (radians/second)
#if 0
typedef struct raw_eph
{
double Ttr; // GPS week number
double weekn; // Transmit time TOW
//double IODE; //Add
double Crs;
double dn;
double M0;
double Cuc;
double ec;
double Cus;
double sqrtA;
double Toe;
double Cic;
double W0;
double Cis;
double i0;
double Crc;
double omeg;
double omegdot;
double Idot;
double Tgd;
double Toc; // should be Toc (time of clock)
double af2;
double af1;
double af0;
/*double codeL2;
double L2p;
double SVaccuracy;
double SVhealth;
double IODC;*/
}RAW_EPH;
#endif
typedef struct eph_c3
{
double sv; // satellite number
double week; // GPS week number
double zcount; // seconds of GPS week
double tgd; // group delay
double aodc; // clock issue data
double toc; // reference time of clock
double af2; // clock parameter (sec/sec2)
double af1; // clock parameter (sec/sec)
double af0; // clock parameter (sec)
double aode; // orbit issue data
double crs; // harmonic correction term
double deltan; // mean anomaly correction
double m0; // mean anomaly at reference time
double cuc; // harmonic correction term
double e; // eccentricity
double cus; // harmonic correction term
double sqrta; // square root of semi-major axis
double toe; // reference time of orbit
double cic; // harmonic correction term
double omega0; // longitude of ascending node
double cis; // harmonic correction term
double i0; // inclination at reference time
double crc; // harmonic correction term
double w; // argument of perigee
double omegdot; // rate of right ascension
double idot; // rate of inclination
} EPH_C3;
/*
typedef struct gps_eph
{
double prn; // satellite number
double wn; // GPS week number
double tow; // seconds of GPS week
double tgd; // group delay (sec)
double aodc; // clock data issue
double toc; // reference time of clock
double af2; // clock parameter (sec/sec2)
double af1; // clock parameter (sec/sec)
double af0; // clock parameter (sec)
double aode; // orbit data issue
double deltan; // mean anomaly correction
double m0; // mean anomaly at reference time
double e; // eccentricity
double roota; // square root of semi-major axis
double toe; // reference time of orbit
double cic; // harmonic correction term (rad)
double crc; // harmonic correction term (m)
double cis; // harmonic correction term (rad)
double crs; // harmonic correction term (m)
double cuc; // harmonic correction term (rad)
double cus; // harmonic correction term (m)
double omega0; // longitude of ascending node
double omega; // argument of perigee
double i0; // inclinatin at reference time
double omegadot; // rate of right ascension
double idot; // rate of inclination
} EPH_C3;
*/
void GenComSig( double * t_vect, int t_length, double **RxPos, int Num_RxPos,
double **EphData, int Num_eph, double *ComSig_I,double *ComSig_Q, OPTION *pOption );
void Tp_Doppler( double Tp[], double Tc[], double time[], int n_T, int prn, double **Rx_pos, int m_RX,OPTION *pOption);
void Signal_prn(double *sv_signal_I, double *sv_signal_Q, int prn, double * t_vect, int t_length,double **RxPos, int Num_RxPos,
double **EphData, int Num_eph, OPTION *pOption);
void comp_eph( int prn_sv, OPTION *pOption, double t );
void comp_SV_posvel(int prn, double *xs, double *ys, double *zs, double *vxs, double *vys, double *vzs, double *clk_bias, double t);
void comp_sat_pos(int prn, double *xsv, double *ysv, double *zsv, double *clk_offset, double t);
void rotate(double *xs1, double *ys1, double *zs1, double xs2, double ys2, double zs2, double dt);
void spline(double x[], double y[], int n, double yp1, double ypn, double y2[]);
void splint(double xa[], double ya[], double y2a[], int n, double x, double *y);
void splintarray(double xa[], double ya[], double y2a[], int n, double x[], double startvalue,double y[], int m);
void Read_SVeph( OPTION *pOption, double );
void Allocate_Mem ( int, int );
void FREE_Mem( );
int sv_exist ( int prn );
int SV_LOS_detect( int prn, double * Upos, double gps_time);
int Read_line (char line[], double *p1, double *p2, double *p3, double *p4 );
int Read_line1( char line[], int *pi1, int *pi2,int *pi3,int *pi4,int *pi5, int *pi6,
double *pd1, double *pd2, double *pd3, double *pd4 );
int Read_line2( char line[],double *p1, double *p2, double *p3);
int Generate_Signalwaveform(OPTION *pOption, double Waveform[] );
double GenerateTropDelay( double *SvXyz, // satellite position
double *StationXyz, // station position
OPTION* pOption);
double GenerateIonoDelay(double *SvXyz, double* upos, double gps_time, OPTION* pOption);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -