interleaving.cpp

来自「在vc上做的802.16d ofdm phy的仿真」· C++ 代码 · 共 21 行

CPP
21
字号
//#include "dlTxBurstData.h"
#include "typedef.h"

void interleaving (Uint8   *pInterleavingIn, Uint16  ncbps, 
				   Uint8  ncpc, Uint8    *pInterleavingOut)	
{
	Int16 halfNum;
	Int16 prePermutIndex, firstPermutIndex, secondPermutIndex;

	halfNum = (ncpc == 1) ? 1 : (ncpc >> 1);

	for (prePermutIndex = 0; prePermutIndex < ncbps; prePermutIndex++)
	{
        firstPermutIndex = (ncbps/12) * (prePermutIndex%12) + prePermutIndex/12;

		secondPermutIndex = halfNum * (firstPermutIndex / halfNum) 
		   + (firstPermutIndex + ncbps - 12 * firstPermutIndex / ncbps) % halfNum;

		pInterleavingOut[secondPermutIndex] = pInterleavingIn[prePermutIndex];
	}
}

⌨️ 快捷键说明

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