Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
snSDR Class Reference

Software Defined Receiver Base Class. More...

#include <snSDR.h>

Inheritance diagram for snSDR:
snBlockSerial snBlock snSDRStandard

Public Member Functions

 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...
 

Protected Member Functions

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

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
 

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...
 

Detailed Description

Software Defined Receiver Base Class.

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

Constructor & Destructor Documentation

snSDR::snSDR ( SNSignal  pSNSignal)

Software Defined Receiver base class constructor.

Member Function Documentation

bool snSDR::Aquisition ( std::vector< double >  aq_signal,
signed long long  samplesPerChip,
double  search_length,
double &  AqFreq,
Samples_Type AqCodePhase,
snWidget snw,
snCurve3D curve_aq 
)
protected

Aquisition() performs a parallel code phase search aquisition.

Both the incoming signal and the code are Fourier transformed and then multiplied. The result is inverse Fourier transformed and should contain the aquisition peak. The maximum is searched and returned as aquisition frequency and code phase.

Returns

< array for Fourier transform of signal input , time domain

< array for Fourier transform of signal input, frequency domain

< array for Fourier transform of signal input , time domain

< array for Fourier transform of signal input, frequency domain

< plan for calling FFTW

< plan for calling FFTW

< array for Fourier transform of code signal , time domain

< array for Fourier transform of code signal, frequency domain

< plan for calling FFTW

< array for Fourier transform of aq result, frequency domain

< array for Fourier transform of aq result, time domain

< array for Fourier transform of aq result, frequency domain

< array for Fourier transform of aq result, time domain

< plan for calling FFTW

< plan for calling FFTW

< phase points that go into sin() and cos() are pre-calculated

< memory for aq results, vector will have size: acFreqSteps x acSmpls

void snSDR::calculate_loop_coefficients ( double &  tau1,
double &  tau2,
double  LBW,
double  zeta,
double  k 
)
protected
double snSDR::costas_discriminator_atan ( double  I_P,
double  Q_P 
)
protected
double snSDR::discriminator_dot_product_normalized ( double  I_E,
double  Q_E,
double  I_P,
double  Q_P,
double  I_L,
double  Q_L 
)
protected
double snSDR::discriminator_early_minus_late_power_normalized ( double  I_E,
double  Q_E,
double  I_L,
double  Q_L 
)
protected
unsigned int snSDR::next_power_of_two ( unsigned int  val)
protected

Member Data Documentation

double snSDR::intermed_freq
protected
SettingsSDR snSDR::SDR
protected

parameter set for SDR parameters


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