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

📄 phase_genie.cpp

📁 《无线通信系统仿真——c++使用模型》这本书的源代码
💻 CPP
字号:
//
//  File = phase_genie.cpp
//

#include <stdlib.h>
#include <fstream>
#include <strstream>
#include "parmfile.h"
#include "misdefs.h"
#include "phase_genie.h"
#include "model_graph.h"
extern ParmFile *ParmInput;
extern int PassNumber;

//======================================================

PhaseRecoveryGenie::PhaseRecoveryGenie( char* instance_name,
                                PracSimModel* outer_model,
                                Signal< std::complex<float> > *recov_carrier_sig )
              :PracSimModel(instance_name,
                            outer_model)
{
  MODEL_NAME(PhaseRecoveryGenie);

  //-----------------------------------
  // Read configuration parameters
  OPEN_PARM_BLOCK;

  GET_DOUBLE_PARM(Carrier_Phase_Deg);
  Carrier_Phase = PI * Carrier_Phase_Deg / 180.0;
  Carrier_Val = std::complex<float>( float(cos(Carrier_Phase)), float(sin(Carrier_Phase)) );

  //-----------------------------------
  //  Signals

  Recov_Carrier_Sig = recov_carrier_sig;

  MAKE_OUTPUT( Recov_Carrier_Sig );

  return;
  }
//================================================
PhaseRecoveryGenie::~PhaseRecoveryGenie( void ){ };

//=======================================================

void PhaseRecoveryGenie::Initialize()
{
  Block_Size = Recov_Carrier_Sig->GetBlockSize();
  return;
}

//=======================================
int PhaseRecoveryGenie::Execute()
{
  int is;
  std::complex<float> carrier_val;
  std::complex<float> *recov_carrier_sig_ptr;
  Recov_Carrier_Sig->SetValidBlockSize(Block_Size);

  carrier_val = Carrier_Val;
  recov_carrier_sig_ptr = GET_OUTPUT_PTR( Recov_Carrier_Sig );

  for(is=0; is<Block_Size; is++)
    {
    *recov_carrier_sig_ptr++ = carrier_val;
    }
  return(_MES_AOK);

}

⌨️ 快捷键说明

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