亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.cpp

?? turbo碼的相關程序
?? CPP
字號:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <time.h>
#include <memory.h>
#include "turbo.h"

// for rand2()
#define IM1 2147483563
#define IM2 2147483399
#define AM (1.0/IM1)
#define IMM1 (IM1-1)
#define IA1 40014
#define IA2 40692
#define IQ1 53668
#define IQ2 52774
#define IR1 12211
#define IR2 3791
#define NTAB 32
#define NDIV (1+IMM1/NTAB)
#define EPS 1.2e-7
#define RNMX (1.0-EPS)
#define PI 3.1415926
long id2=-16000;
long id3=-17000;

double rand2(long *idnum);
double AWGN(double mean, double std_dev);

int main()
{
	int Max_Error;
	long i,j;	
	double EbN0;	// dB
	double EbN0Pow;
	double noise;	// sigma
	
	int looptimes;	

	double Pb;
	int ErrorFlag;
	int ErrorBits,ErrorBlocks;	

	int SimPoints;
	float StartEbN0;

	printf("Please input the Max Errors\n");
	scanf("%d",&Max_Error);

	printf("Please input the Start EbN0\n");
	scanf("%f",&StartEbN0);

	printf("Please input the number of EbN0 points\n");
	scanf("%d",&SimPoints);
	
	#ifdef PUNCTURE
		TURBOCODE TurboCode = TURBOCODE(BLOCKSIZE, CONSTRAINT, POLY1, POLY2, CODERATE, 
									ITERATION, 1, LOOKUPTABLE);
	#else
		TURBOCODE TurboCode = TURBOCODE(BLOCKSIZE, CONSTRAINT, POLY1, POLY2, CODERATE, 
									ITERATION, 0, LOOKUPTABLE);
	#endif
	

	FILE * errorfile;
	errorfile = fopen("error.dat", "w");
	fclose(errorfile);

	FILE * result;
	result=fopen("result.dat", "w");
	fclose(result);	

	for (j=0;j<SimPoints;j++)
	{
		ErrorBits = 0;
		ErrorBlocks = 0;
		EbN0 = StartEbN0 + 0.2*j;
		EbN0Pow = pow(10.0,EbN0/10.0);		
		noise = 0.5/(EbN0Pow*TurboCode.RATE);
		noise = sqrt(noise);   //sigma
		
		TurboCode.EbN0 = EbN0;	
		TurboCode.Noise = noise;
		
		srand(time(NULL));		
		looptimes = 0;
		ErrorBits = 0;
		ErrorBlocks = 0;	
		
		TurboCode.AverageIterNum = 0;		
		
		while ( (ErrorBlocks < Max_Error) )		
		{
			looptimes++;
			if (looptimes % 500 == 0)
			{
				printf("%d blocks decoded, Average %f Iterationv\n",looptimes,TurboCode.AverageIterNum/looptimes);
			}			
			
			for (i=1; i<=TurboCode.BlockSize; i++)
				TurboCode.SourceBits[i] = rand() & 1;				
			
			TurboCode.encoder();
			
			if (TurboCode.PunctureFlag)
			{
				int k = 0;
				for (i=1;i<TurboCode.BlockSize+1;i++)
				{
					TurboCode.CodedBits[i*3-2] = AWGN(TurboCode.EncodedBits[i*2-1],noise);					
					k++;
					if (k%2 != 0)			
					{
						TurboCode.CodedBits[i*3-1] = AWGN(TurboCode.EncodedBits[i*2],noise);
						TurboCode.CodedBits[i*3] = 0.0;
					}
					else
					{
						TurboCode.CodedBits[i*3-1] = 0.0;
						TurboCode.CodedBits[i*3] = AWGN(TurboCode.EncodedBits[i*2],noise);						
					}
				}
			}
			else			
				for (i=1;i<TurboCode.BlockSize+1;i++)
				{
					TurboCode.CodedBits[i*3-2] = AWGN(TurboCode.EncodedBits[i*3-2],noise);
					TurboCode.CodedBits[i*3-1] = AWGN(TurboCode.EncodedBits[i*3-1],noise);
					TurboCode.CodedBits[i*3] = AWGN(TurboCode.EncodedBits[i*3],noise);
				}
			
			TurboCode.log_BCJR_decoder();

			ErrorFlag = 0;
			
			FILE* errorfile;
			errorfile=fopen("error.dat","a");
				
			for (i=1;i<=TurboCode.BlockSize;i++)
			{
				if ( !(TurboCode.SourceBits[i] == TurboCode.DecodedBits[i]) )
				{
					ErrorBits++;
					ErrorFlag = 1;
					fprintf(errorfile,"EbN0 = %f, No %d Block, No. %d ErrorBits at No. %d Bits of No. %d ErrorBlocks\n",EbN0,looptimes,ErrorBits,i,ErrorBlocks+1);
					printf("EbN0 = %f, No %d Block, No. %d ErrorBits at No. %d Bits of No. %d ErrorBlocks\n",EbN0,looptimes,ErrorBits,i,ErrorBlocks+1);
				}
			}

			if (ErrorFlag == 1)
			{				
				ErrorBlocks ++;				
				Pb = (double) (ErrorBits) / (double) (looptimes*TurboCode.BlockSize);
			}					

			fclose(errorfile);			
		}
		
		TurboCode.AverageIterNum = TurboCode.AverageIterNum / looptimes;

		FILE*  result;
		result = fopen("result.dat","a");
		fprintf(result,"%f	%f	%f	%f\n",EbN0,Pb,Max_Error/1.0/looptimes,TurboCode.AverageIterNum);
		fclose(result);		
	}	

	return 1;
}

// function rand2 follows
double rand2(long *idnum)
{
	int j;
	long k;
	static long idnum2=123456789;
	static long iy=0;
	static long iv[NTAB];
	double temp;
	if (*idnum<=0)
	{
		if (-(*idnum)<1) *idnum=1;
		else *idnum=-(*idnum);
		idnum2=(*idnum);
		for (j=NTAB;j>=0;j--)
		{
			k=(*idnum)/IQ1;
			*idnum=IA1*(*idnum-k*IQ1)-k*IR1;
			if (*idnum<0) *idnum+=IM1;
			if (j<NTAB) iv[j]=*idnum;
		}
		iy=iv[0];
	}
	k=(*idnum)/IQ1;
	*idnum=IA1*(*idnum-k*IQ1)-k*IR1;
	if (*idnum<0) *idnum+=IM1;
	k=idnum2/IQ2;
	idnum2=IA2*(idnum2-k*IQ2)-k*IR2;
	if (idnum2<0) idnum2+=IM2;
	j=iy/NDIV;
	iy=iv[j]-idnum2;
	iv[j]=*idnum;
	if (iy<1) iy+=IMM1;
	if ((temp=AM*iy)>RNMX) return RNMX;
	else return temp;
}

double AWGN(double mean, double std_dev)
{
	double rand2(long *idnum);	
	double u1,u2,a,b;
	u1=(double) (rand2(&id2));
	u2=(double) (rand2(&id3)); 
	a=2*PI*u1;
	b=sqrt(-2.0*log(u2));
	
	return mean + std_dev * b * cos(a);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区四区视频| 久久精品视频一区二区| 久久不见久久见免费视频7| 国产精品久久久久影院| 欧美大胆人体bbbb| 欧美色中文字幕| 成人福利视频网站| 激情综合网最新| 亚洲va欧美va人人爽午夜| 国产精品国产自产拍高清av| 精品国产91亚洲一区二区三区婷婷 | 欧美精品一区二区三区蜜桃视频| 色综合婷婷久久| 国产91高潮流白浆在线麻豆| 免费在线视频一区| 丝袜脚交一区二区| 一区二区久久久久久| 国产精品久久久久久久久快鸭| 26uuu色噜噜精品一区二区| 在线观看91精品国产麻豆| 99精品黄色片免费大全| 成人av在线资源| 国产91精品在线观看| 美女国产一区二区三区| 天天av天天翘天天综合网| 亚洲欧美一区二区久久 | 日韩精品乱码免费| 亚洲国产一区二区a毛片| 亚洲免费在线视频一区 二区| 亚洲国产精品二十页| 久久久久久麻豆| 久久亚洲综合色一区二区三区| 日韩欧美卡一卡二| 日韩欧美一二三| 欧美成va人片在线观看| 日韩精品一区在线| 欧美不卡视频一区| 337p日本欧洲亚洲大胆精品| 精品毛片乱码1区2区3区| 精品久久久久久久久久久久包黑料| 欧美一级片在线看| 日韩欧美中文字幕精品| 精品成人免费观看| 久久精品人人做人人综合| 国产亚洲欧洲一区高清在线观看| 国产亚洲午夜高清国产拍精品| 久久婷婷久久一区二区三区| 精品欧美一区二区三区精品久久| 久久久久国产精品麻豆| 亚洲国产高清不卡| 亚洲日本免费电影| 亚洲一卡二卡三卡四卡| 肉丝袜脚交视频一区二区| 老司机一区二区| 粉嫩aⅴ一区二区三区四区五区| 成人夜色视频网站在线观看| 91亚洲精华国产精华精华液| 欧美日产国产精品| 久久亚洲二区三区| 欧美国产精品劲爆| 亚洲在线观看免费视频| 理论电影国产精品| 成人不卡免费av| 欧美色涩在线第一页| 欧美一级生活片| 久久嫩草精品久久久精品| 国产精品欧美久久久久无广告 | 中文字幕中文字幕在线一区 | 精品视频一区三区九区| 欧美一区二区三区性视频| 久久久99免费| 亚洲精品国产一区二区精华液 | 亚洲午夜免费电影| 美女一区二区久久| 成人高清av在线| 欧美另类一区二区三区| 国产亚洲精品中文字幕| 亚洲欧美aⅴ...| 老司机精品视频导航| 成人动漫视频在线| 欧美一区二区三区性视频| 国产精品每日更新在线播放网址| 性做久久久久久久免费看| 国产一区欧美二区| 91蜜桃网址入口| 精品国产免费人成在线观看| 亚洲精品视频在线观看网站| 美腿丝袜在线亚洲一区| 91麻豆国产自产在线观看| 精品国产在天天线2019| 亚洲一区二区在线免费看| 激情综合五月天| 欧美日韩夫妻久久| 国产精品久久久久影院色老大| 日韩精品国产欧美| 色婷婷av一区二区三区gif| 久久久久久久久一| 亚洲va国产天堂va久久en| 成人av在线一区二区| 精品久久久久一区二区国产| 一区二区三区.www| 国产a级毛片一区| 欧美日韩国产综合久久| 国产精品久久二区二区| 另类小说色综合网站| 欧美午夜宅男影院| 日韩一区中文字幕| 国产主播一区二区| 欧美肥大bbwbbw高潮| 亚洲在线一区二区三区| www.亚洲色图| 国产欧美日韩在线看| 蜜桃视频一区二区| 制服.丝袜.亚洲.中文.综合| 亚洲最快最全在线视频| 97se狠狠狠综合亚洲狠狠| 国产欧美日韩激情| 国内不卡的二区三区中文字幕| 91 com成人网| 亚洲1区2区3区视频| 欧美性色黄大片| 亚洲最色的网站| 欧美亚洲一区三区| 一区二区三区在线视频播放| 9i在线看片成人免费| 中文字幕不卡在线观看| 国产精品一区二区在线观看网站| 精品久久久久av影院| 国内精品伊人久久久久av一坑| 精品国产污网站| 国产一区二区三区av电影| 久久伊人中文字幕| 国产在线观看免费一区| 久久一夜天堂av一区二区三区| 狠狠色丁香婷综合久久| 久久色在线视频| 国产成人亚洲综合a∨猫咪| 欧美精品一区二区三区久久久| 国内久久精品视频| 久久九九国产精品| 成人性生交大片免费看在线播放| 国产精品久久久99| 色综合天天综合网国产成人综合天 | 国产精品一品视频| 日本一区二区不卡视频| 不卡一区二区三区四区| 亚洲男人都懂的| 欧美性视频一区二区三区| 日本中文在线一区| 日韩视频免费直播| 国产综合色在线| 国产午夜精品在线观看| 成人精品视频一区二区三区| 国产精品国产三级国产三级人妇| 91麻豆视频网站| 日韩国产欧美三级| 精品国产免费久久| 不卡一区二区中文字幕| 亚洲午夜私人影院| 精品久久免费看| 99在线精品一区二区三区| 亚洲香肠在线观看| 欧美成人一级视频| 99久久综合狠狠综合久久| 夜夜亚洲天天久久| 日韩一区二区精品葵司在线| 国产剧情一区二区| 亚洲乱码国产乱码精品精可以看| 欧美老肥妇做.爰bbww| 国内精品国产成人国产三级粉色| 综合网在线视频| 欧美乱熟臀69xxxxxx| 岛国精品一区二区| 午夜视频一区在线观看| 久久精品人人做人人综合 | 日韩久久精品一区| 成人av影院在线| 琪琪久久久久日韩精品| 亚洲国产精品t66y| 欧美肥妇bbw| 99久久er热在这里只有精品66| 午夜精品福利久久久| 国产拍揄自揄精品视频麻豆| 欧美无砖砖区免费| 国产91精品一区二区麻豆亚洲| 亚洲成人自拍网| 国产精品久久久久久久久搜平片 | 久久影院电视剧免费观看| 91久久精品一区二区三区| 韩国三级电影一区二区| 玉米视频成人免费看| 26uuu久久天堂性欧美| 欧美性色综合网| 不卡大黄网站免费看| 激情文学综合网| 午夜成人在线视频| 国产精品国产三级国产普通话99 | 国产精品素人视频| 欧美一区二区三区在线电影| 日本精品免费观看高清观看|