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

📄 aux_sig_buf.cpp

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

#include <stdlib.h>
#include <fstream>
//#include <math.h>
//#include "parmfile.h"
#include "aux_sig_buf.h"
//#include "misdefs.h"
//extern ParmFile *ParmInput;
#include "psstream.h"
   
extern PracSimStream ErrorStream;
#ifdef _DEBUG
  extern ofstream *DebugFile;
#endif
//extern int PassNumber;
//ofstream PowerDebug("power.txt", ios::out);

//======================================================
// constructor - parms read from ParmFile

template <class T>
AuxSignalBuffer<T>::AuxSignalBuffer( T sample, int nominal_block_size )
{
   Max_Sample_Count = 3*nominal_block_size;
   Buffer_Start = new T[Max_Sample_Count];
   Write_Ptr = Buffer_Start;
   Sample_Count = 0;
}
//=============================================
template <class T>
AuxSignalBuffer<T>::~AuxSignalBuffer( void )
{ 
   delete[] Buffer_Start;
};

//===========================================
template <class T>
T* AuxSignalBuffer<T>::Load(  T *in_sig_ptr,
                              int in_sig_block_size,
                              int *in_sig_buf_count)
{
   int idx;
   T *input_ptr = in_sig_ptr;

   Sample_Count += in_sig_block_size;
   if(Sample_Count > Max_Sample_Count)
   {
      ErrorStream << "Too many samples in AuxSignalBuffer" << endl;
      exit(-99);
   }
   for(idx=0; idx<in_sig_block_size; idx++)
   {
      *Write_Ptr++ = *input_ptr++;
   }
   *in_sig_buf_count = Sample_Count;
   return(Buffer_Start);
}
//===========================================
template <class T>
void AuxSignalBuffer<T>::Release(  int num_samps_to_release)
{
   T* src_ptr;
   T* dest_ptr;
   int idx;

   Sample_Count -= num_samps_to_release;
   Write_Ptr -= num_samps_to_release;
   src_ptr = Buffer_Start + num_samps_to_release;
   dest_ptr = Buffer_Start;

   for(idx=0; idx<Sample_Count; idx++)
   {
      *dest_ptr++ = *src_ptr++;
   }
}
template AuxSignalBuffer<float>;

⌨️ 快捷键说明

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