⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 16qamdemode.c

📁 在无线网络的接收机端
💻 C
字号:
#include"AWGN.h"
#include"math.h"
#define PI 3.14159

int LLR(double receive)
{
	double temp;
	double temp1;
	int i;
	int j;

	double s[4]={-3/sqrt(10),-1/sqrt(10),3/sqrt(10),1/sqrt(10)};
	
	temp1=receive-s[0];
	temp1*=temp1;
	j=0;

	for(i=1;i<4;i++)
	{
		temp=receive-s[i];
		temp*=temp;
		if(temp1>temp)
		{
			temp1=temp;
			j=i;
		}
	}
	return j;
}

void Demode(double *out_I,double *out_Q,double *outbit,int len)
{
	int inpos=0;
	int outpos=0;
	int Is=0;
	int Qs=0;
	while(inpos<(int)(len/4))
	{
		Is=LLR(out_I[inpos]);
		Qs=LLR(out_Q[inpos]);
		inpos++;
		switch(Is){
		case 0: *(outbit+outpos)=0;*(outbit+outpos+1)=0;break;
		case 1: *(outbit+outpos)=1;*(outbit+outpos+1)=0;break;
		case 2: *(outbit+outpos)=0;*(outbit+outpos+1)=1;break;
        case 3: *(outbit+outpos)=1;*(outbit+outpos+1)=1;break;
		}
		outpos+=2;
		switch(Qs){
		case 0: *(outbit+outpos)=0;*(outbit+outpos+1)=0;break;
		case 1: *(outbit+outpos)=1;*(outbit+outpos+1)=0;break;
		case 2: *(outbit+outpos)=0;*(outbit+outpos+1)=1;break;
        case 3: *(outbit+outpos)=1;*(outbit+outpos+1)=1;break;
		}
		outpos+=2;
	}
}










⌨️ 快捷键说明

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