📄 graymap16qam.c
字号:
/*
***********************************************************************
ANSI C source code
filename:
GrayMap16QAM.c
abstract:
to perform the Gray Mapping
author:
Shen Ke
version:
V 1.0
***********************************************************************
*/
#include "QAMSoftDem.h"
#include "math.h"
#include "stdio.h"
int GrayMap16QAM (int *inbit,int bitlen,double *out_real,double *out_img)
{
int inpos = 0;
int outpos = 0;
int site_r,site_i;
int m = 4;
double GrayMap[4];
GrayMap[0] = 1/(sqrt(10));
GrayMap[1] = 3/(sqrt(10));
GrayMap[2] = -1/(sqrt(10));
GrayMap[3] = -3/(sqrt(10)); // set bitSNR=1,for Psingnal=4*Pbit
if (bitlen%m) {
printf("Wrong bit length!");
return 0;
}
while (inpos<bitlen) {
site_r = 0;
site_i = 0;
if (*(inbit+inpos)) site_r +=2;
inpos++;
if (*(inbit+inpos)) site_i +=2;
inpos++;
if (*(inbit+inpos)) site_r +=1;
inpos++;
if (*(inbit+inpos)) site_i +=1;
inpos++;
*(out_real+outpos) = GrayMap[site_r];
*(out_img+outpos) = GrayMap[site_i];
outpos++;
}
return outpos;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -