swep_tone_rcvr.h
上传用户:jtjnyq9001
上传日期:2014-11-21
资源大小:3974k
文件大小:2k
源码类别:

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = correlator.h
  3. //
  4. #ifndef _CORRELATOR_H_
  5. #define _CORRELATOR_H_
  6. //#include "intsig.h"
  7. #include "signal_T.h"
  8. #include "control_T.h"
  9. #include "psmodel.h"
  10. class SweptToneReceiver : public PracSimModel
  11. {
  12. public:
  13.   SweptToneReceiver( char* instance_name,
  14.                   PracSimModel* outer_model,
  15.                   Signal<float>* in_sig,
  16.                   Signal<float>* ref_sig,
  17.                   Signal<float>* out_sig,
  18.                   Control<bool>* rx_enable,
  19.                   Control<double>* inst_freq_ctl,
  20.                   Control<double>* block_phase_ctl );
  21.   ~SweptToneReceiver(void);
  22.   void Initialize(void);
  23.   int Execute(void);
  24. private:
  25.   int Proc_Block_Size;
  26.   double Samp_Intvl;
  27.   // correlation array - contains In_Sig
  28.   // values and is padded out with zeros
  29.   std::complex<float> *X;
  30.   // correlation array - contains Ref_Sig
  31.   // values and is padded out with zeros
  32.   std::complex<float> *Y;
  33.   // an array of zeros used to quickly
  34.   // pad the ends of X and Y with zeros
  35.   std::complex<float> *Zero_Array;
  36.   std::complex<float> Max_Corr;
  37.   float Max_Corr_Angle;
  38.   float Max_Corr_Time;
  39.   int Full_Corr_Size;
  40.   double Ns_Exp;
  41.   Signal<float> *In_Sig;
  42.   Signal<float> *Out_Sig;
  43.   Signal<float> *Ref_Sig;
  44.   Control<double> *Inst_Freq_Ctl;
  45.   Control<double> *Block_Phase_Ctl;
  46.   int Num_Phases;
  47.   double Max_Phase_Shift;
  48.   char *Response_File_Name;
  49.   int Max_Num_Freqs;
  50.   int Num_Freqs;
  51.   Control<bool>* Rx_Enable;
  52.   bool Tone_Received;
  53.   ofstream *Response_File;
  54.   double *Freqs;
  55.   double *Magnitudes;
  56.   double *Phases;
  57.   double Prev_Phase;
  58. };
  59. #endif