?? 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 + -