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

3G开发

开发平台:

Visual C++

  1. //
  2. //  File = linear_pll.h
  3. //
  4. #ifndef _COSTAS_LOOP_H_
  5. #define _COSTAS_LOOP_H_
  6. #include "signal_T.h"
  7. #include "anlg_filt_iir.h"
  8. class CostasLoop : public PracSimModel
  9. {
  10. public:
  11. CostasLoop( char* instance_nam,
  12.             PracSimModel *outer_model,
  13.             Signal<float> *in_signal,
  14.             Signal<float> *err_signal,
  15.             Signal<float> *filt_err_signal,
  16.             Signal<float> *ref_signal,
  17.             Signal<float> *vco_freq_sig,
  18.             Signal<float> *ref_phase_sig,
  19.             Signal<float> *out_signal );
  20.    ~CostasLoop(void);
  21.    void Initialize(void);
  22.    int Execute(void);
  23. private:
  24.    double Samp_Intvl;
  25.    Signal<float> *fsig_Input;
  26.    Signal<float> *fsig_Phase_Error;
  27.    Signal<float> *fsig_Filtered_Error;
  28.    Signal<float> *fsig_Osc_Output;
  29.    Signal<float> *fsig_Osc_Freq;
  30.    Signal<float> *fsig_Osc_Phase;
  31.    Signal<float> *fsig_Output;
  32.    bool m_UsingDco;
  33.    double K_Sub_D;
  34.    double K_Sub_0;
  35.    double I_OscOutput;
  36.    double Q_OscOutput;
  37.    double Phi_Sub_2;
  38.    double Phi_Divided;
  39.    double Omega_Sub_0;
  40.    double Center_Freq_Hz;
  41.    float Osc_Output_Prev_Val;
  42.    double Scaler_Divisor;
  43.    AnalogFilterByIir<float> *I_Filter_Core;
  44.    AnalogFilterByIir<float> *Q_Filter_Core;
  45.    AnalogFilterByIir<float> *Prod_Filter_Core;
  46.   
  47. };
  48. #endif