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

📄 diffdetector.cpp

📁 QPSK调制Modem的C实现及文档说明
💻 CPP
字号:
/*****************************************************************************
 * Class -- DiffDetector                                                     *
 * Functions -- detect                                                       *
 * Returns -- Detected data bits                                             *
 *                                                                           *
 * Note: every time it processes it takes 9 samples(=1 symbol)               *
 *****************************************************************************/

class DiffDetector
{ private:

   complex PreviousSymbol,CurrentSymbol;
   double DataReal,DataImag;
   int start;

  public:
   DiffDetector(){start=0;}
   void detect(double DataStrobeIn[], int BitsOut[])
    { //complex PreviousSymbol(DataStrobeIn[0],DataStrobeIn[1]);
      if (!start)
       { PreviousSymbol=complex (DataStrobeIn[0],DataStrobeIn[1]);
         start=1;
       }
      else
       { CurrentSymbol=complex (DataStrobeIn[0],DataStrobeIn[1]);
         DataReal=real(PreviousSymbol*conj(CurrentSymbol));
         DataImag=imag(PreviousSymbol*conj(CurrentSymbol));
         if ((DataReal>0)&&(DataImag>0))
          { BitsOut[0]=0;
		    	BitsOut[1]=0;
	       }
		   else if ((DataReal<0)&&(DataImag>0))
          { BitsOut[0]=1;
			   BitsOut[1]=0;
          }
		   else if ((DataReal<0)&&(DataImag<0))
          { BitsOut[0]=1;
			   BitsOut[1]=1;
	       }
		   else
          { BitsOut[0]=0;
			   BitsOut[1]=1;
          }
         PreviousSymbol=CurrentSymbol;
        }
      }
};









⌨️ 快捷键说明

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