graymap16qam.c
来自「该文件包内包含了一个16QAM调制解调程序」· C语言 代码 · 共 55 行
C
55 行
/*
***********************************************************************
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 + =
减小字号Ctrl + -
显示快捷键?