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

📄 coder.c

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

#include "parameter.h"                   //
////////////////////////////////////////////
char decision_m(int);
void RCS_CODE(char *,char *,char);
void interleaver(char *,char *,char);



///////////////////////////////////随机产生一帧数据
void rand_data(int frame_long)
{  
	int i,j;
	for (i=0;i<frame_long;i++)
	{
	j=rand()%2;
	if (j==0)
		channel_input[i]=0;
	else 
		channel_input[i]=1;
	}
}

//RCS编码的初始化
void initialize_turbo_code()
{  char lm,ln;
   int m,n;
	if(G1/100<8 && (G1/10-G1/100*10)<8 && (G1-G1/10*10)<8 &&
		G2/100<8 && (G2/10-G2/100*10)<8 && (G2-G2/10*10)<8)
	{
		if(G1>=178 || G2>=178)
		printf("error: 约束长度超过限定7");
	
	}
	else 
	printf("error: 参数设置错误");
	m=G1/100*8*8+(G1/10-G1/100*10)*8+G1-G1/10*10;
	n=G2/100*8*8+(G2/10-G2/100*10)*8+G2-G2/10*10;
	lm=decision_m(m);
	ln=decision_m(n);
	restrict_l=(lm>ln)?lm:ln;
    }



////////////////////////////////////////RCS编码
void turbo_code(char *a,char *b)
{   short i;
	for(i=0;i<fra_long;i++)
		b[3*i]=a[i];
	RCS_CODE(a,b,1);
/*
for(i=0;i<fra_long;i++)
printf("%d,,",a[i]);
printf("\n");*/
	interleaver(a,interleave_out,0);
/*   interleaver(interleave_out,a,1);
	for(i=0;i<fra_long;i++)
		printf("%d,,",a[i]);
	for(i=0;i<fra_long;i++)
		printf("%d",interleave_out[i]);
      printf("\n");*/

	RCS_CODE(interleave_out,b,2);

//	for(i=0;i<fra_long;i++)
//		printf("%d",b[3*i+2]);
//	printf("\n");
//	for(i=0;i<fra_long;i++)
//		printf("%d",interleave_out[i]);
}

/////////////////////////////change from char to float
void char2float(char *a,float *b)
{
	short i;
   for(i=0;i<fra_long*3;i++)
   {
	   if(a[i]==1)
		   b[i]=1;
	   else
		   b[i]=-1;}
}



































































⌨️ 快捷键说明

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