Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
snSDRStandard Class Reference

Software Defined Receiver. More...

#include <snSDRStandard.h>

Inheritance diagram for snSDRStandard:
snSDR snBlockSerial snBlock

Public Member Functions

 snSDRStandard (libconfig::Setting &Settings, SNSignal pSNSignal, ProcessingParameters &pProcSig, snWidget *psnw, snWidget *ptrkw, snWidget *ptrkw4, snWidget *ptrkw3, snWidget *ptrkw2, ConcBuf *pConcBuf1)
 SDRGPS constructor. More...
 
 ~snSDRStandard ()
 
void run ()
 implements QThread's run() More...
 
bool dbl_eq (double x, double v)
 
- Public Member Functions inherited from snSDR
 snSDR (SNSignal pSNSignal)
 Software Defined Receiver base class constructor. More...
 
- Public Member Functions inherited from snBlockSerial
 snBlockSerial (SNSignal pSNSignal)
 snBlockSerial constructor More...
 
Samples_Type get_absolute_sample () const
 returns the absolute amount of processed samples More...
 
- Public Member Functions inherited from snBlock
 snBlock (SNSignal pSNSignal)
 snBlock constructor More...
 
Blocks_Type getBlks ()
 returns current block number which is being processed More...
 
Blocks_Type getOutputBlks ()
 returns processed block number of a signal sink More...
 
Blocks_Type getTotalBlks ()
 returns total amount of blocks to be processed More...
 
double get_time_per_block ()
 
double get_blks_simulation_time ()
 returns current simulation time dependent on current block number More...
 
bool isActive ()
 returns snBlock status. will return true after requestStop() was called. More...
 
void requestStop ()
 requests to stop processing and return the snBlock main program in run() More...
 

Private Member Functions

void setup_plots ()
 
double cn0_estimation (const std::vector< double > &vI_P, const std::vector< double > &vQ_P)
 
std::vector< double > build_shifted_code (double shift, snModulation *m, Samples_Type samples)
 
double determine_gain_of_code (snModulation *m, double el_spacing)
 

Static Private Member Functions

static double correlation (const std::vector< double > &a, const std::vector< double > &b)
 
static std::vector< double > build_code (const std::vector< double > &indices, snModulation *m)
 

Private Attributes

ProcessingParametersProcSig
 
std::ofstream oResult
 
bool I_enable
 
bool Q_enable
 
snGNSSSignalgnss_signal
 
int prn
 
snGNSSCodegnss_code_I
 
snGNSSCodegnss_code_Q
 
snModulationmodulation_I
 
snModulationmodulation_Q
 
int correlation_length_factor
 
double correlation_length
 
long aq_samples_number
 amount of samples for one aq block More...
 
double aq_frequency
 
Samples_Type aq_code_phase
 
int aPlCode
 
snCurve3Dcurve_aq
 
snCurveComplexcurve_corr_e_I
 
snCurveComplexcurve_corr_p_I
 
snCurveComplexcurve_corr_l_I
 
snPlotComplexRealImagplot_corrs_I
 
snCurveComplexcurve_corr_e_Q
 
snCurveComplexcurve_corr_p_Q
 
snCurveComplexcurve_corr_l_Q
 
snCurveRealcurve_incoming
 
snCurveComplexcurve_carrier_replica
 
snCurveComplexcurve_downmixed
 
snCurveRealcurve_code_e_I
 
snCurveRealcurve_code_p_I
 
snCurveRealcurve_code_l_I
 
snCurveRealcurve_code_e_Q
 
snCurveRealcurve_code_p_Q
 
snCurveRealcurve_code_l_Q
 
snCurveRealcurve_pll_raw_I
 
snCurveRealcurve_pll_raw_Q
 
snCurveRealcurve_pll_filtered
 
snCurveRealcurve_dll_raw_I
 
snCurveRealcurve_dll_raw_Q
 
snCurveRealcurve_dll_raw_IQ
 
snCurveRealcurve_dll_filtered
 
snCurveRealcurve_remcodephase
 
snCurveRealcurve_pr
 
snCurveRealcurve_corrfunc1_I
 
snCurveRealcurve_corrfunc2_I
 
snCurveRealcurve_corrfunc1_Q
 
snCurveRealcurve_corrfunc2_Q
 
snPlotRealplot_pr
 
snPlotRealplot_corrfunc1
 
snPlotRealplot_corrfunc2
 
snCurveRealcurve_cn0
 
snWidgetsnw
 
snWidgettrkw
 
snWidgettrkw2
 
snWidgettrkw3
 
snWidgettrkw4
 
ConcBufConcBuf1
 
int PlotBufSize
 

Additional Inherited Members

- Signals inherited from snBlock
void snLogSignal (const QString &mess)
 is connected in snMainWindow to the log text widget. More...
 
void snLogSignalDebug (const QString &mess, int d)
 is connected in snMainWindow to the log text widget. More...
 
- Protected Member Functions inherited from snSDR
void calculate_loop_coefficients (double &tau1, double &tau2, double LBW, double zeta, double k)
 
unsigned int next_power_of_two (unsigned int val)
 
bool Aquisition (std::vector< double > aq_signal, signed long long samplesPerChip, double search_length, double &AqFreq, Samples_Type &AqCodePhase, snWidget *snw, snCurve3D *curve_aq)
 Aquisition() performs a parallel code phase search aquisition. More...
 
double discriminator_dot_product_normalized (double I_E, double Q_E, double I_P, double Q_P, double I_L, double Q_L)
 
double discriminator_early_minus_late_power_normalized (double I_E, double Q_E, double I_L, double Q_L)
 
double costas_discriminator_atan (double I_P, double Q_P)
 
- Protected Member Functions inherited from snBlockSerial
std::vector< std::complex
< double > > 
get_next_samples (Samples_Type n)
 returns the next samples More...
 
void InitSerialBuffer (Samples_Type size, ConcBuf *pConcBuf)
 initializes the serial buffer. Should be called by snBlocks in their constructor. More...
 
void set_next_sample_index (Samples_Type index)
 allows to go back to a specific samples position in the actual serial buffer More...
 
- Protected Member Functions inherited from snBlock
void snLog (QString mess)
 can be used by snBlocks to log data to log text widget. More...
 
void snLogErr (QString mess)
 
void snLogDeb (QString mess, int DebugLevel)
 can be used by snBlocks to log data to log text widget. More...
 
void increaseBlks ()
 has to be called by snBlocks after processing of the actual concbuf block More...
 
void increaseOutputBlks ()
 has to be called by the sink snBlocks after processing of the actual concbuf block More...
 
void printSummary (std::string caller)
 This member function prints a summary of how much data was processed after the calling snBlock's exit. More...
 
- Protected Attributes inherited from snSDR
SettingsSDR SDR
 parameter set for SDR parameters More...
 
double intermed_freq
 
- Protected Attributes inherited from snBlock
SNSignal Sig
 holds the simulation parameters which are common to all snBlocks More...
 
unsigned int plot_x_max
 
double max_simulation_length
 
Blocks_Type max_blocks
 

Detailed Description

Software Defined Receiver.

Contains the SDR of SNACS. Aquisition and tracking are performed.

Constructor & Destructor Documentation

snSDRStandard::snSDRStandard ( libconfig::Setting &  Settings,
SNSignal  pSNSignal,
ProcessingParameters pProcSig,
snWidget psnw,
snWidget ptrkw,
snWidget ptrkw4,
snWidget ptrkw3,
snWidget ptrkw2,
ConcBuf pConcBuf1 
)

SDRGPS constructor.

Parameters
pSNSignal1struct SNSignal with general parameters
pSNSDR1SDR parameter set
psnwpointer to snWidget
pConcBuf1input ConcBuf
pBufSizebuffer size
snSDRStandard::~snSDRStandard ( )

Member Function Documentation

std::vector< double > snSDRStandard::build_code ( const std::vector< double > &  indices,
snModulation m 
)
staticprivate
std::vector< double > snSDRStandard::build_shifted_code ( double  shift,
snModulation m,
Samples_Type  samples 
)
private
double snSDRStandard::cn0_estimation ( const std::vector< double > &  vI_P,
const std::vector< double > &  vQ_P 
)
private
double snSDRStandard::correlation ( const std::vector< double > &  a,
const std::vector< double > &  b 
)
staticprivate
bool snSDRStandard::dbl_eq ( double  x,
double  v 
)
inline
double snSDRStandard::determine_gain_of_code ( snModulation m,
double  el_spacing 
)
private
void snSDRStandard::run ( )

implements QThread's run()

starts the software receiver.

void snSDRStandard::setup_plots ( )
private

Member Data Documentation

int snSDRStandard::aPlCode
private
Samples_Type snSDRStandard::aq_code_phase
private
double snSDRStandard::aq_frequency
private
long snSDRStandard::aq_samples_number
private

amount of samples for one aq block

ConcBuf* snSDRStandard::ConcBuf1
private
double snSDRStandard::correlation_length
private
int snSDRStandard::correlation_length_factor
private
snCurve3D* snSDRStandard::curve_aq
private
snCurveComplex* snSDRStandard::curve_carrier_replica
private
snCurveReal* snSDRStandard::curve_cn0
private
snCurveReal* snSDRStandard::curve_code_e_I
private
snCurveReal* snSDRStandard::curve_code_e_Q
private
snCurveReal * snSDRStandard::curve_code_l_I
private
snCurveReal * snSDRStandard::curve_code_l_Q
private
snCurveReal * snSDRStandard::curve_code_p_I
private
snCurveReal * snSDRStandard::curve_code_p_Q
private
snCurveComplex* snSDRStandard::curve_corr_e_I
private
snCurveComplex* snSDRStandard::curve_corr_e_Q
private
snCurveComplex * snSDRStandard::curve_corr_l_I
private
snCurveComplex * snSDRStandard::curve_corr_l_Q
private
snCurveComplex * snSDRStandard::curve_corr_p_I
private
snCurveComplex * snSDRStandard::curve_corr_p_Q
private
snCurveReal* snSDRStandard::curve_corrfunc1_I
private
snCurveReal* snSDRStandard::curve_corrfunc1_Q
private
snCurveReal * snSDRStandard::curve_corrfunc2_I
private
snCurveReal * snSDRStandard::curve_corrfunc2_Q
private
snCurveReal * snSDRStandard::curve_dll_filtered
private
snCurveReal * snSDRStandard::curve_dll_raw_I
private
snCurveReal * snSDRStandard::curve_dll_raw_IQ
private
snCurveReal * snSDRStandard::curve_dll_raw_Q
private
snCurveComplex* snSDRStandard::curve_downmixed
private
snCurveReal* snSDRStandard::curve_incoming
private
snCurveReal * snSDRStandard::curve_pll_filtered
private
snCurveReal* snSDRStandard::curve_pll_raw_I
private
snCurveReal * snSDRStandard::curve_pll_raw_Q
private
snCurveReal * snSDRStandard::curve_pr
private
snCurveReal * snSDRStandard::curve_remcodephase
private
snGNSSCode* snSDRStandard::gnss_code_I
private
snGNSSCode * snSDRStandard::gnss_code_Q
private
snGNSSSignal* snSDRStandard::gnss_signal
private
bool snSDRStandard::I_enable
private
snModulation* snSDRStandard::modulation_I
private
snModulation * snSDRStandard::modulation_Q
private
std::ofstream snSDRStandard::oResult
private
snPlotReal* snSDRStandard::plot_corrfunc1
private
snPlotReal * snSDRStandard::plot_corrfunc2
private
snPlotComplexRealImag* snSDRStandard::plot_corrs_I
private
snPlotReal* snSDRStandard::plot_pr
private
int snSDRStandard::PlotBufSize
private
int snSDRStandard::prn
private
ProcessingParameters& snSDRStandard::ProcSig
private
bool snSDRStandard::Q_enable
private
snWidget* snSDRStandard::snw
private
snWidget * snSDRStandard::trkw
private
snWidget * snSDRStandard::trkw2
private
snWidget * snSDRStandard::trkw3
private
snWidget * snSDRStandard::trkw4
private

The documentation for this class was generated from the following files: