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

📄 qpsk_noise.c

📁 c语言编写的一个turbo码的程序。采用了高斯信道QPSK调制
💻 C
字号:
////////////////////////////////////////////
#include "stdio.h"                        //
#include "math.h"                         //
#include "malloc.h"                       //
#include "stdlib.h"                       //
#include "time.h"                        //
                                         //
#include "parameter.h"                   //
////////////////////////////////////////////
float gngausscos(float);

void qpsk_noise(float *a,float b)
{
short i;
  float sgma,snr;
  snr=pow(10,b/10);
  sgma=sqrt(3/(snr*2));
 // printf("%f,",snr);
  i=0;
  for(i=0;i<fra_long*3;i++)
  {
// if (i==1536)
//	 printf("CC");
  a[i]=a[i]+gngausscos(sgma);
   printf("%f,",gngausscos(sgma));
  }

  }
/*
  float sgma,snr;	
  float s00[2]={1,0},s01[2]={0,1},s11[2]={-1,0},s10[2]={0,-1},add[2],r[2],c[4];
  for(i=0;i<fra_long*2;i=i+2)
	{
		snr=pow(10,b/10);
		sgma=(sqrt(2/snr))/2;
		add[0]=gngausscos(sgma);
		add[1]=gngausscos(sgma);
		if((a[i]==0)&&(a[i+1]==0))
			for(j=0;j<2;j++)
				r[j]=add[j]+s00[j];
			
			else if((a[i]==0)&&(a[i+1]==1))
				for(j=0;j<2;j++)
					r[j]=add[j]+s01[j];
				else if((a[i]==1)&&(a[i+1]==0))
					for(j=0;j<2;j++)
						r[j]=add[j]+s10[j];
					else 
						for(j=0;j<2;j++)
							r[j]=s11[j]+add[j];
												
c[0]=r[0]*s00[0]+r[1]*s00[1];
c[1]=r[0]*s01[0]+r[1]*s01[1];
c[2]=r[0]*s10[0]+r[1]*s10[1];
c[3]=r[0]*s11[0]+r[1]*s11[1];
						
//-----------------------------------------------check
if((c[0]>c[1])&&(c[0]>c[2])&&(c[0]>c[3]))
	{
		a[i]=0;
		a[i+1]=0;}
else if((c[1]>c[0])&&(c[1]>c[2])&&(c[1]>c[3]))
	{
		a[i]=0;
		a[i+1]=1;}
else if((c[2]>c[0])&&(c[2]>c[1])&&(c[2]>c[3]))
{
	a[i]=1;
	a[i+1]=0;}
else
	{
		a[i]=1;
		a[i+1]=1;}
	}*/
////////////////////////////////////////////////////////////////////////

float gngausscos(float sgma)
{ float u=0.0,m,z=0,h=0;
	m=rand();
	u=m/32768;
	z=2*log(1/(1-u));
	z=sqrt(z);
	z=sgma*z;
	m=rand();
	u=m/32768;
	h=cos(2*pi*u);
	h=z*h;
	return h;}






























































⌨️ 快捷键说明

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