graymap_16qam.c

来自「在无线网络的接收机端」· C语言 代码 · 共 44 行

C
44
字号
#include"math.h"
#include"stdio.h"
#include"AWGN.h"

void Graymap16QAM(double *inputbit,double *out_I,double *out_Q,int bitlen)
{
	int in=0;
	int out=0;
	int site_I,site_Q;
	double GrayMap[4];
	GrayMap[0] =  -3/(sqrt(10)); 
	GrayMap[1] =  -1/(sqrt(10));
	GrayMap[2] = 3/(sqrt(10)); 
	GrayMap[3] = 1/(sqrt(10));  
	if(bitlen%4)
	{
		printf("%s","Wrong bit length!");
	}
	
	while(in<bitlen)
	{
		site_I=0;
		site_Q=0;
		if(*(inputbit+in)) site_I+=1;
		in++;
		if(*(inputbit+in)) site_I+=2;
		in++;
		if(*(inputbit+in)) site_Q+=1;
		in++; 
		if(*(inputbit+in)) site_Q+=2;
		in++;
		*(out_I+out)=GrayMap[site_I];
		*(out_Q+out)=GrayMap[site_Q];
		out++;
	}
}







⌨️ 快捷键说明

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