⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 finedelayest_sim.cpp

📁 无线通信系统的仿真vc7.0代码
💻 CPP
字号:
//
//  File = finedelayest_sim.cpp
//
#define SIM_NAME "FineDelayEst\0"
#define SIM_TITLE "Fine Delay Estimation Testbed\0"

#include "global_stuff.h"

//=====================
// model includes
#include "sinc_wave.h"
#include "bitgen.h"
#include "basewav.h"
#include "butt_filt_iir.h"
//#include "bitwav.h"
//#include "multi_sine_gen.h"
#include "ramp_gen.h"
//#include "sine_gen.h"
#include "contin_delay_tester.h"
#include "contin_delay2_T.h"
#include "coarse_delay_est.h"
#include "fine_delay_est.h"
#include "discrete_delay_T.h"
#include "dft_delay_T.h"
#include "siganchr.h"
//=========================================================

main()
{
   #include "sim_preamble.cpp"
  //=========================================================================
  //  Misc special processing

   SincWaveform(  4, //num_sidelobes
                 50, //samps_per_hump
                 "sinc_wave.txt\0");//out_filename


  //=========================================================================
  //  Allocate signals

  BIT_SIGNAL(bit_seq);
  BIT_SIGNAL(bit_clock);
  FLOAT_SIGNAL(binary_wave);
  FLOAT_SIGNAL(filt_wave);
  FLOAT_SIGNAL(test_sig);
  FLOAT_SIGNAL(test_sig_2);
  FLOAT_SIGNAL(delayed_test_sig);
  FLOAT_SIGNAL(delayed_ref_sig);
  FLOAT_SIGNAL(coarse_dly_ref_sig);
  FLOAT_SIGNAL(corr_out_sig);

  FLOAT_SIGNAL(baseband_wave);

  //============================================================
  //  Construct, initialize and connect models



   BitGener* bit_gen = new BitGener( "bit_gen\0",
                                      CommSystem,
                                      bit_seq );
  
   SignalAnchor* bit_seq_anchr = new SignalAnchor( "bit_seq_anchr\0",
                                                   CommSystem,
                                                   bit_seq );

   BasebandWaveform* baseband_gen = new BasebandWaveform(   "baseband_gen\0",
                                                CommSystem,
                                                bit_seq,
                                                binary_wave,
                                                bit_clock );

  ButterworthFilterByIir<float>* base_filt = new ButterworthFilterByIir<float>( "base_filt\0",
                                                        CommSystem,
                                                        binary_wave,
                                                        filt_wave);

  
  ContinuousDelay2< float >* delay_2 = new ContinuousDelay2< float >( 
                                                "delay_2\0",
                                                CommSystem,
                                                filt_wave,
                                                delayed_test_sig);

  Control<float>* coarse_delay_est_cntl = new Control<float>( "coarse_delay_est_cntl\0",
                                                          CommSystem);

   Control<int>* samps_delay_est_cntl = new Control<int>( "samps_delay_est_cntl\0",
                                                            CommSystem);

   Control<bool>* coarse_dly_is_valid_cntl = new Control<bool>( "coarse_dly_is_valid_cntl\0",
                                                            CommSystem);

   CoarseDelayEstimator* correlator = new CoarseDelayEstimator(  "correlator\0",
                                                    CommSystem,
                                                    delayed_test_sig,
                                                    filt_wave,
                                                    corr_out_sig,
                                                    coarse_dly_is_valid_cntl,
                                                    coarse_delay_est_cntl,
                                                    samps_delay_est_cntl);

   DiscreteDelay< float >* coarse_dly_adj = new DiscreteDelay<float>(  "coarse_dly_adj\0",
                                                               CommSystem,
                                                               filt_wave,
                                                               coarse_dly_ref_sig,
                                                               samps_delay_est_cntl,
                                                               coarse_dly_is_valid_cntl);

  Control<float>* fine_delay_est_cntl = new Control<float>( "fine_delay_est_cntl\0",
                                                          CommSystem);

   Control<bool>* fine_dly_is_valid_cntl = new Control<bool>( "fine_dly_is_valid_cntl\0",
                                                            CommSystem);

   FineDelayEstimator* phase_slope_est = new FineDelayEstimator(  "phase_slope_est\0",
                                                    CommSystem,
                                                    delayed_test_sig,
                                                    coarse_dly_ref_sig,
                                                    coarse_dly_is_valid_cntl,
                                                    fine_dly_is_valid_cntl,
                                                    fine_delay_est_cntl);

   ContinuousDelay2<float>* fine_dly_adj = new ContinuousDelay2<float>( 
                                                         "fine_dly_adj\0",
                                                         CommSystem,
                                                         coarse_dly_ref_sig,
                                                         delayed_ref_sig,
                                                         fine_delay_est_cntl,
                                                         fine_dly_is_valid_cntl);

//  SignalAnchor* temp_anchor = new SignalAnchor( "temp_anchor\0",
//                                                CommSystem,
//                                                filt_wave,
//                                                0.0078125, //samp_intvl
//                                                4096 ); //block_size
//  SignalAnchor* temp_anchor_3 = new SignalAnchor( "temp_anchor_3\0",
//                                                CommSystem,
//                                                ref_seq,
//                                                1.0, //samp_rate
//                                                128 ); //block_size
  //=============================================================

  #include "sim_postamble.cpp"
  return 0;
}  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -