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

📄 rsencoding.cpp

📁 在vc上做的802.16d ofdm phy的仿真
💻 CPP
字号:
#include "rsEncoding.h"
#include "typedef.h"
//#include "codetable.h"

void rsEncoding(Uint8  *pRsEncodingIn, 
				Uint16  rsEncodingInLengthK, 
				Uint16  rsParityBytes, 
				Uint8  *pRsEncodingOut,  
				Uint16  rsEncodingOutLength)
{
	Uint8 shiftRegs[16] = {0}; // shifting register with the maximum length in encoding.

	Uint8 lenOfShiftReg = 16;  //g_pDlBurstProfile->rsParityBytes;
	Uint8 feedBack;
	Uint8 i;
	Uint16 bitIdx;
 	for (bitIdx = 0; bitIdx < rsEncodingInLengthK; bitIdx++)
   	{  
		feedBack = pRsEncodingIn[bitIdx] ^ shiftRegs[lenOfShiftReg-1];

    	if (feedBack != 0) 
    	{ 
			for (i = lenOfShiftReg-1; i > 0; i--)
           	{
		  		shiftRegs[i] = shiftRegs[i-1] ^ AlfaOf[(IndexOf[genFunc[i]] + IndexOf[feedBack])%255];
	   		}
			
	 		shiftRegs[0] = AlfaOf[(IndexOf[genFunc[0]] + IndexOf[feedBack])%255];
      	}
		else 
	   	{
		   	for (i = lenOfShiftReg-1; i > 0;i--)
		 	{
			 	shiftRegs[i] = shiftRegs[i-1];
		  	}
		  	shiftRegs[0] = 0;
	   	}
	}

   	for (i = 0; i < rsParityBytes; i++)
   	{
		pRsEncodingOut[i] = shiftRegs[lenOfShiftReg - 1 - i]; 
   	}

   	for (i = 0; i < rsEncodingInLengthK; i++) 
   	{
	 	  pRsEncodingOut[i + rsParityBytes] = pRsEncodingIn[i];
   	}

//	*rsEncodingOutLength = rsEncodingInLengthK + rsParityBytes;
  	//g_dlTxBurstParam.status = RSENCODE_DONE;
  	
}

⌨️ 快捷键说明

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