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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? turbosystem.cpp

?? turbo碼搭建了簡單的系統(tǒng)來進行糾錯展示,可以實現(xiàn)從編碼,加入錯誤,譯碼,輸入輸出碼字對比等基本功能,另外加入了交互模塊,用戶可以自己設(shè)定錯誤比特的數(shù)目和位置,使糾錯功能顯而易見.
?? CPP
字號:
#include "math.h" 
#include "stdio.h"     
#define L_TOTAL 64      
#define NSTATE  4       
#include "iostream.h"   
#include "iomanip.h" 
#include <stdlib.h> 
#include<time.h>
#define randomize() srand((unsigned)time(NULL))  
   
#define M       2            
#define DELTA 30 
typedef unsigned char BYTE ;
typedef unsigned int UINT ;
typedef int     INT;
    
              
static const char EnNextOut[2][NSTATE] = 
{       0,0,1,1,
        1,1,0,0
};
static const char NextOut[2][NSTATE] = 
{       -1,-1,1,1,
        1,1,-1,-1
};
static const BYTE NextState[2][NSTATE] =
{       0,2,3,1,
        2,0,1,3
};

static const char TailBit[NSTATE] =
{       0,1,1,0
};
static const char LastOut[2][NSTATE] =
{       -1,1,-1,1,
        1,-1,1,-1
};

static const BYTE LastState[2][NSTATE] =     
{       0,3,1,2,
        1,2,0,3
};
void RSC_Encode(char *mesg, char *parity, unsigned int size, bool force);
void sova(double *msg, double *parity, double *L_a,double *L_all, bool index);
void systemdecode(double *input,double *output,int n);
void systemencode(char *input,char *stream,int n);

void RSC_Encode(char *mesg, char *parity, unsigned int size, bool force)
{
        BYTE state,uk;
        unsigned x; 
        state=0;
        for (x=0;x<size;x++)
        {
                if (x>=size-2 && force)
                {
                        mesg[x] = TailBit[state];
                }
                uk = mesg[x] ? 1 : 0;
                parity[x] = EnNextOut[uk][state];
                state = NextState[uk][state];      
		}		
}


void sova(double *msg, double *parity, double *L_a,double *L_all, bool index)
{
        double path_metric[L_TOTAL+1][NSTATE];
        double m_diff[L_TOTAL+1][NSTATE];
        char prev_bit[L_TOTAL+1][NSTATE],estbit[L_TOTAL],bit;
        double sum0,sum1;
        double llr;
        double INFINITY = 1E+10;        
        UINT mlstate[L_TOTAL+1],nstate,s,tempstate;
        INT k,i,j;   
        nstate=NSTATE;      
        for (k=0;k<=L_TOTAL;k++)
                for (s=0;s<s;s++)
                        path_metric[k][s]=-INFINITY;
                
        path_metric[0][0] = 0;
        for (k=0;k<L_TOTAL;k++)
                for (s=0;s<nstate;s++)
                {
                        sum0=-msg[k]+parity[k]*LastOut[0][s]-L_a[k]/2+path_metric[k][LastState[0][s]];//?????????
                        sum1=msg[k]+parity[k]*LastOut[1][s]+L_a[k]/2+path_metric[k][LastState[1][s]];//????????
                        if (sum0>sum1){
                                path_metric[k+1][s]=sum0;
                                m_diff[k+1][s]=sum0-sum1;
                                prev_bit[k+1][s]=0;
                        }else{
                                path_metric[k+1][s]=sum1;
                                m_diff[k+1][s]=sum1-sum0;
                                prev_bit[k+1][s]=1;
                        }
                }       
        if (index)
                mlstate[L_TOTAL]=0;
        else{
                mlstate[L_TOTAL]=0;
                for (s=1;s<nstate;s++)
                        if (path_metric[L_TOTAL][s]>path_metric[L_TOTAL][mlstate[L_TOTAL]])
                                mlstate[L_TOTAL]=s;
        }
        for (k=L_TOTAL-1;k>=0;k--)
        {
                estbit[k]=prev_bit[k+1][mlstate[k+1]];
                mlstate[k]=LastState[estbit[k]][mlstate[k+1]];
        }       
        for (k=0;k<L_TOTAL;k++)
        {
                llr=INFINITY;
                for (i=0;i<=DELTA;i++)
                {
                        if (k+i<L_TOTAL)
                        {
                                bit=1-estbit[k+i];//????????????????????????
                                tempstate=LastState[bit][mlstate[k+i+1]];
                                for (j=i-1;j>=0;j--)
                                {
                                        bit=prev_bit[k+j+1][tempstate];
                                        tempstate=LastState[bit][tempstate];
                                }
                                if (bit != estbit[k])
                                        if (llr>m_diff[k+i+1][mlstate[k+i+1]])
                                                llr=m_diff[k+i+1][mlstate[k+i+1]];
                        }
                }
                L_all[k] = (2*estbit[k]-1) * llr;
        }
}

void systemencode(char *input,char *stream,int n)
{       INT i;
        char imsg[L_TOTAL],msg[L_TOTAL];
        char chkBuffer[2][L_TOTAL];	
		bool puncture=true;
		unsigned m_Inter_table[64];
        UINT k1,k2;
		for(i=0;i<n;i++)
		{msg[i]=*input;
		       input++;
		}
        for (k1=0;k1<8;k1++) 
               for (k2=0;k2<8;k2++)
                        m_Inter_table[k1*8+k2]=k2*8+k1;
          
	
        RSC_Encode(msg,chkBuffer[0],L_TOTAL,true); 
        for (i=0;i<L_TOTAL;i++)
                imsg[i]=msg[m_Inter_table[i]];
        
        RSC_Encode(imsg,chkBuffer[1],L_TOTAL,false);
		for (i=0;i<L_TOTAL;i++)
		{
		  *stream=msg[i];
		     stream++;
		  *stream=chkBuffer[i%2][i];
		     stream++;
		}
}
void systemdecode(double *input,double *output,int n)
{double msghat[L_TOTAL];
	INT niter=6; 
        double msg[L_TOTAL],imsg[L_TOTAL];
        double parity[2][L_TOTAL];
        double L_all[L_TOTAL];
        double L_e[L_TOTAL],L_a[L_TOTAL];
        INT i,iter; 
		 UINT k1,k2;
		 double stream[200];
	unsigned m_Inter_table[64];
	for(i=0;i<2*n;i++)
	{stream[i]=*input;
	  input++;
	}
       
        for (k1=0;k1<8;k1++) 
               for (k2=0;k2<8;k2++)
                        m_Inter_table[k1*8+k2]=k2*8+k1;
        for (i=0;i<L_TOTAL;i++)
        {
                parity[0][i]=0;
                parity[1][i]=0;
        }
        for (i=0;i<L_TOTAL;i++)
        {               
                        msg[i]=stream[2*i];
                        parity[i%2][i]=stream[i*2+1];
        }                
        for (i=0;i<L_TOTAL;i++)
                imsg[i]=msg[m_Inter_table[i]];        
        for (i=0;i<L_TOTAL;i++)
                L_e[i]=0;
               
        for (iter=0;iter<niter;iter++)
        {          
                for (i=0;i<L_TOTAL;i++) 
                        L_a[m_Inter_table[i]]=L_e[i];
                       sova(msg,parity[0],L_a,L_all,true);       
                for (i=0;i<L_TOTAL;i++)
                        L_e[i]=L_all[i]-2*msg[i]-L_a[i];
                for (i=0;i<L_TOTAL;i++) 
                        L_a[i]=L_e[m_Inter_table[i]];
                        sova(imsg,parity[1],L_a,L_all,false);   
                for (i=0;i<L_TOTAL;i++)
                        L_e[i]=L_all[i]-2*imsg[i]-L_a[i];
                }
		 for (i=0;i<L_TOTAL;i++)
                        if(L_all[i]>0)
                                msghat[m_Inter_table[i]]=1;
                        else
                                msghat[m_Inter_table[i]]=0;

       for (i=0;i<L_TOTAL;i++)
	   {*output=msghat[i];
	     output++;
	   }
}
	       
void main()
{  int i,n=64,m,j=0,k; 
char encodeinput[100],wrong[10]={0,0,0,0,0,0,0,0,0,0};
   char encodeoutput[200],output[100];
   double decodeinput[200],decodeoutput[100];
	randomize(); 
	for(i=0; i<n; i++) 
		encodeinput[i]=rand()%2;
	systemencode(encodeinput,encodeoutput,n);
	printf("the input of encoder is :\n");
    for(i=0;i<62; i++)
		printf("%2d",encodeinput[i]);
	printf("\n");
    printf("the output of encoder is :\n");
    for(i=0;i<128;i++)
	{printf("%2d",encodeoutput[i]);
	 if(i%20==19)
     printf("\n");
	}
	printf("\n");
	printf("please input the number of the wrong bit\n");
	scanf("%d",&m);
	printf("please input the positions of the wrong bit (0-127)\n");
	for(i=0;i<m;i++)
	{	scanf("%d",&wrong[m]);
	   if(encodeoutput[wrong[m]]==0)
		   encodeoutput[wrong[m]]=1;
	   else
		   encodeoutput[wrong[m]]=0;  
	  }
	printf("the input of decoder is :\n");
        for(i=0;i<128;i++)
		{printf("%2d",encodeoutput[i]);
		  if(i%20==19)
           printf("\n");
		}
		printf("\n");
	for(i=0;i<2*n;i++)
		decodeinput[i]=encodeoutput[i]*2-1;

    systemdecode(decodeinput,decodeoutput,n);
     for(i=0;i<n;i++)
	output[i]=decodeoutput[i];
    printf("the output of decoder is :\n");
   for(i=0;i<62;i++)
			printf("%2d",output[i]);
	printf("\n");
	for(i=0;i<62;i++)
	{	if(encodeinput[i]!=decodeoutput[i])
			j++;
	}
    printf("the number of incorrect bit is:%d\n",j);

	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成精品久久久久久| 久久电影网站中文字幕| 毛片一区二区三区| 91小视频在线| 久久青草欧美一区二区三区| 亚洲va欧美va人人爽午夜| 国产一区二区三区在线观看免费视频 | 久久91精品久久久久久秒播| 成人av先锋影音| 欧美成人猛片aaaaaaa| 一区二区三区**美女毛片| 国产成人在线影院| 日韩午夜三级在线| 首页国产欧美日韩丝袜| 在线视频亚洲一区| 中文字幕中文字幕一区二区| 国产高清在线精品| 精品久久国产字幕高潮| 日韩高清不卡在线| 欧美无人高清视频在线观看| 日韩伦理av电影| bt7086福利一区国产| 中文字幕精品一区二区精品绿巨人 | 欧美高清一级片在线观看| 开心九九激情九九欧美日韩精美视频电影 | 黑人精品欧美一区二区蜜桃| 欧美精品乱码久久久久久按摩| 一区二区三区日本| 91久久精品一区二区三区| 亚洲天堂2016| 色综合婷婷久久| 一区二区在线免费| 日本韩国欧美国产| 亚洲在线中文字幕| 欧美日韩1区2区| 青青青爽久久午夜综合久久午夜| 制服丝袜在线91| 全部av―极品视觉盛宴亚洲| 欧美久久高跟鞋激| 日本在线播放一区二区三区| 4438亚洲最大| 久久aⅴ国产欧美74aaa| 精品国产91洋老外米糕| 国产一区 二区 三区一级| 国产丝袜美腿一区二区三区| 国产传媒一区在线| 国产精品不卡视频| 日本高清不卡视频| 午夜免费久久看| 日韩视频不卡中文| 国产精品一区二区三区99| 日本一区二区三区国色天香| 99re6这里只有精品视频在线观看| 日本伊人色综合网| 久久免费偷拍视频| 色综合久久综合| 香蕉成人伊视频在线观看| 日韩午夜激情免费电影| 国产电影精品久久禁18| 亚洲黄色在线视频| 日韩精品一区二区在线| 国产精品18久久久久久久久 | 日韩欧美在线综合网| 国产精品综合一区二区| 又紧又大又爽精品一区二区| 91麻豆精品久久久久蜜臀| 国产成人亚洲精品青草天美| 亚洲摸摸操操av| 精品国产乱码久久久久久久| www.欧美亚洲| 日本欧美在线观看| 亚洲欧洲日韩av| 欧美另类高清zo欧美| 国产成人欧美日韩在线电影| 亚洲午夜精品在线| 欧美国产日韩精品免费观看| 精品婷婷伊人一区三区三| 国产福利一区在线| 三级影片在线观看欧美日韩一区二区| 久久久国际精品| 欧美日韩极品在线观看一区| 成人国产亚洲欧美成人综合网| 天天影视涩香欲综合网| 亚洲视频资源在线| 久久久久久免费毛片精品| 欧美日韩电影在线播放| 91首页免费视频| 国产一区二区三区观看| 丝袜国产日韩另类美女| 亚洲欧美区自拍先锋| 久久久不卡网国产精品一区| 制服丝袜日韩国产| 欧美综合一区二区| 91丨国产丨九色丨pron| 国产精品一区二区无线| 久久99精品网久久| 日韩av网站在线观看| 亚洲一区二区四区蜜桃| 自拍视频在线观看一区二区| 日本一区二区视频在线| 久久男人中文字幕资源站| 日韩欧美一二三四区| 欧美老女人第四色| 欧美亚洲日本国产| 在线观看免费视频综合| 91麻豆产精品久久久久久| 成人av电影在线观看| 成人午夜免费视频| 国产aⅴ综合色| 国产91清纯白嫩初高中在线观看 | 国产精品99久| 国产在线播精品第三| 精品制服美女丁香| 精品亚洲成a人| 久久精品免费观看| 激情综合网最新| 国产真实乱对白精彩久久| 精品在线免费视频| 国内一区二区视频| 国产呦萝稀缺另类资源| 国产乱人伦偷精品视频免下载| 日本aⅴ亚洲精品中文乱码| 奇米影视在线99精品| 美女免费视频一区| 国产福利一区在线观看| 成人性生交大片免费看视频在线 | 91福利国产成人精品照片| 91香蕉视频mp4| 欧美丝袜丝nylons| 欧美日韩国产免费一区二区| 91精品国产高清一区二区三区蜜臀| 678五月天丁香亚洲综合网| 欧美成人aa大片| 日本一区二区三区国色天香| 中文字幕一区二区三区不卡在线 | 久久先锋资源网| 中文字幕av不卡| 亚洲一区二区高清| 毛片av中文字幕一区二区| 国产精品18久久久久久久网站| 99re66热这里只有精品3直播| 欧美私模裸体表演在线观看| 欧美一区二区成人| 中文字幕不卡在线播放| 亚洲制服丝袜一区| 国产伦精一区二区三区| 99热这里都是精品| 91麻豆精品国产91久久久久久久久| www激情久久| 亚洲免费资源在线播放| 久久激五月天综合精品| av在线不卡观看免费观看| 欧美日韩免费视频| 久久久久久久av麻豆果冻| 亚洲精品免费在线| 老司机免费视频一区二区三区| 成人动漫精品一区二区| 宅男在线国产精品| 成人免费在线视频| 久久99国产精品久久99| 一本色道a无线码一区v| 精品久久久网站| 亚洲一区二区三区精品在线| 国产美女在线观看一区| 欧美人狂配大交3d怪物一区| 国产精品九色蝌蚪自拍| 经典三级一区二区| 欧美色中文字幕| 中文字幕中文字幕一区二区| 久久91精品国产91久久小草| 在线欧美小视频| 国产精品萝li| 国产精品综合av一区二区国产馆| 色婷婷综合久久久中文一区二区| 日韩精品在线看片z| 亚洲成人自拍偷拍| 色综合咪咪久久| 亚洲国产成人午夜在线一区| 久久成人免费电影| 欧美精品免费视频| 亚洲自拍偷拍麻豆| 91蜜桃网址入口| 国产精品系列在线| 国产精品18久久久久久久久久久久| 欧美一区二区在线播放| 亚洲乱码日产精品bd| av网站一区二区三区| 欧美激情在线观看视频免费| 国内精品嫩模私拍在线| 日韩精品专区在线| 蜜臀av性久久久久蜜臀aⅴ| 欧美人妇做爰xxxⅹ性高电影 | 国产精品美女久久久久久久久久久| 麻豆精品蜜桃视频网站| 欧美日韩高清一区| 午夜精品久久久久久久| 欧美日韩国产高清一区二区三区 | 日日夜夜免费精品| 精品视频色一区| 五月综合激情日本mⅴ|