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

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

?? berlekamp.c

?? rs編碼的matlab程序
?? C
字號:
/*********************************************************************** * Berlekamp-Peterson and Berlekamp-Massey Algorithms for error-location * * From Cain, Clark, "Error-Correction Coding For Digital Communications", pp. 205. * * This finds the coefficients of the error locator polynomial. * * The roots are then found by looking for the values of a^n * where evaluating the polynomial yields zero. * * Error correction is done using the error-evaluator equation  on pp 207. * * hqm@ai.mit.edu   Henry Minsky */#include <stdio.h>#include "ecc.h"/* The Error Locator Polynomial, also known as Lambda or Sigma. Lambda[0] == 1 */static int Lambda[MAXDEG];/* The Error Evaluator Polynomial */static int Omega[MAXDEG];/* local ANSI declarations */static int compute_discrepancy(int lambda[], int S[], int L, int n);static void init_gamma(int gamma[]);static void compute_modified_omega (void);static void mul_z_poly (int src[]);/* error locations found using Chien's search*/static int ErrorLocs[256];static int NErrors;/* erasure flags */static int ErasureLocs[256];static int NErasures;/* From  Cain, Clark, "Error-Correction Coding For Digital Communications", pp. 216. */voidModified_Berlekamp_Massey (void){	  int n, L, L2, k, d, i;  int psi[MAXDEG], psi2[MAXDEG], D[MAXDEG];  int gamma[MAXDEG];	  /* initialize Gamma, the erasure locator polynomial */  init_gamma(gamma);  /* initialize to z */  copy_poly(D, gamma);  mul_z_poly(D);	  copy_poly(psi, gamma);	  k = -1; L = NErasures;	  for (n = NErasures; n < NPAR; n++) {	    d = compute_discrepancy(psi, synBytes, L, n);		    if (d != 0) {		      /* psi2 = psi - d*D */      for (i = 0; i < MAXDEG; i++) psi2[i] = psi[i] ^ gmult(d, D[i]);				      if (L < (n-k)) {	L2 = n-k;	k = n-L;	/* D = scale_poly(ginv(d), psi); */	for (i = 0; i < MAXDEG; i++) D[i] = gmult(psi[i], ginv(d));	L = L2;      }			      /* psi = psi2 */      for (i = 0; i < MAXDEG; i++) psi[i] = psi2[i];    }		    mul_z_poly(D);  }	  for(i = 0; i < MAXDEG; i++) Lambda[i] = psi[i];  compute_modified_omega();	}/* given Psi (called Lambda in Modified_Berlekamp_Massey) and synBytes,   compute the combined erasure/error evaluator polynomial as    Psi*S mod z^4  */voidcompute_modified_omega (){  int i;  int product[MAXDEG*2];	  mult_polys(product, Lambda, synBytes);	  zero_poly(Omega);  for(i = 0; i < NPAR; i++) Omega[i] = product[i];}/* polynomial multiplication */voidmult_polys (int dst[], int p1[], int p2[]){  int i, j;  int tmp1[MAXDEG*2];	  for (i=0; i < (MAXDEG*2); i++) dst[i] = 0;	  for (i = 0; i < MAXDEG; i++) {    for(j=MAXDEG; j<(MAXDEG*2); j++) tmp1[j]=0;		    /* scale tmp1 by p1[i] */    for(j=0; j<MAXDEG; j++) tmp1[j]=gmult(p2[j], p1[i]);    /* and mult (shift) tmp1 right by i */    for (j = (MAXDEG*2)-1; j >= i; j--) tmp1[j] = tmp1[j-i];    for (j = 0; j < i; j++) tmp1[j] = 0;		    /* add into partial product */    for(j=0; j < (MAXDEG*2); j++) dst[j] ^= tmp1[j];  }}	/* gamma = product (1-z*a^Ij) for erasure locs Ij */voidinit_gamma (int gamma[]){  int e, tmp[MAXDEG];	  zero_poly(gamma);  zero_poly(tmp);  gamma[0] = 1;	  for (e = 0; e < NErasures; e++) {    copy_poly(tmp, gamma);    scale_poly(gexp[ErasureLocs[e]], tmp);    mul_z_poly(tmp);    add_polys(gamma, tmp);  }}			void compute_next_omega (int d, int A[], int dst[], int src[]){  int i;  for ( i = 0; i < MAXDEG;  i++) {    dst[i] = src[i] ^ gmult(d, A[i]);  }}	intcompute_discrepancy (int lambda[], int S[], int L, int n){  int i, sum=0;	  for (i = 0; i <= L; i++)     sum ^= gmult(lambda[i], S[n-i]);  return (sum);}/********** polynomial arithmetic *******************/void add_polys (int dst[], int src[]) {  int i;  for (i = 0; i < MAXDEG; i++) dst[i] ^= src[i];}void copy_poly (int dst[], int src[]) {  int i;  for (i = 0; i < MAXDEG; i++) dst[i] = src[i];}void scale_poly (int k, int poly[]) {	  int i;  for (i = 0; i < MAXDEG; i++) poly[i] = gmult(k, poly[i]);}void zero_poly (int poly[]) {  int i;  for (i = 0; i < MAXDEG; i++) poly[i] = 0;}/* multiply by z, i.e., shift right by 1 */static void mul_z_poly (int src[]){  int i;  for (i = MAXDEG-1; i > 0; i--) src[i] = src[i-1];  src[0] = 0;}/* Finds all the roots of an error-locator polynomial with coefficients * Lambda[j] by evaluating Lambda at successive values of alpha.  *  * This can be tested with the decoder's equations case. */void Find_Roots (void){  int sum, r, k;	  NErrors = 0;    for (r = 1; r < 256; r++) {    sum = 0;    /* evaluate lambda at r */    for (k = 0; k < NPAR+1; k++) {      sum ^= gmult(gexp[(k*r)%255], Lambda[k]);    }    if (sum == 0)       { 	ErrorLocs[NErrors] = (255-r); NErrors++; 	if (DEBUG) fprintf(stderr, "Root found at r = %d, (255-r) = %d\n", r, (255-r));      }  }}/* Combined Erasure And Error Magnitude Computation  *  * Pass in the codeword, its size in bytes, as well as * an array of any known erasure locations, along the number * of these erasures. *  * Evaluate Omega(actually Psi)/Lambda' at the roots * alpha^(-i) for error locs i.  * * Returns 1 if everything ok, or 0 if an out-of-bounds error is found * */intcorrect_errors_erasures (unsigned char codeword[], 			 int csize,			 int nerasures,			 int erasures[]){  int r, i, j, err;  /* If you want to take advantage of erasure correction, be sure to     set NErasures and ErasureLocs[] with the locations of erasures.      */  NErasures = nerasures;  for (i = 0; i < NErasures; i++) ErasureLocs[i] = erasures[i];  Modified_Berlekamp_Massey();  Find_Roots();    if ((NErrors <= NPAR) && NErrors > 0) {     /* first check for illegal error locs */    for (r = 0; r < NErrors; r++) {      if (ErrorLocs[r] >= csize) {	if (DEBUG) fprintf(stderr, "Error loc i=%d outside of codeword length %d\n", i, csize);	return(0);      }    }    for (r = 0; r < NErrors; r++) {      int num, denom;      i = ErrorLocs[r];      /* evaluate Omega at alpha^(-i) */      num = 0;      for (j = 0; j < MAXDEG; j++) 	num ^= gmult(Omega[j], gexp[((255-i)*j)%255]);            /* evaluate Lambda' (derivative) at alpha^(-i) ; all odd powers disappear */      denom = 0;      for (j = 1; j < MAXDEG; j += 2) {	denom ^= gmult(Lambda[j], gexp[((255-i)*(j-1)) % 255]);      }            err = gmult(num, ginv(denom));      if (DEBUG) fprintf(stderr, "Error magnitude %#x at loc %d\n", err, csize-i);            codeword[csize-i-1] ^= err;    }    return(1);  }  else {    if (DEBUG && NErrors) fprintf(stderr, "Uncorrectable codeword\n");    return(0);  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人综合网| 97se亚洲国产综合在线| 亚洲美腿欧美偷拍| 国产精品色一区二区三区| 日韩欧美区一区二| 日韩欧美一级二级三级| 精品女同一区二区| 久久这里只有精品6| 国产视频一区在线播放| 中文字幕欧美区| 国产精品久久久久久久久搜平片 | ㊣最新国产の精品bt伙计久久| 久久久无码精品亚洲日韩按摩| 久久精品免费在线观看| 亚洲国产精品v| 亚洲女人小视频在线观看| 亚洲精品乱码久久久久| 天天免费综合色| 精品一区二区国语对白| 成人一区在线看| 91国偷自产一区二区开放时间 | 日本欧美一区二区| 精品无码三级在线观看视频| 国产91精品入口| 在线观看不卡视频| 日韩一区二区三区免费观看| 国产欧美日韩在线观看| 又紧又大又爽精品一区二区| 麻豆免费看一区二区三区| 成人禁用看黄a在线| 欧美在线不卡视频| 久久香蕉国产线看观看99| 亚洲天堂福利av| 美女视频网站黄色亚洲| 成人av在线播放网站| 日韩一区二区三区在线观看 | av中文字幕在线不卡| 欧美午夜精品久久久| 欧美岛国在线观看| 一区二区三区在线视频观看| 久久国产精品色| 色噜噜狠狠一区二区三区果冻| 欧美不卡在线视频| 一区二区高清视频在线观看| 国产久卡久卡久卡久卡视频精品| 欧美在线免费播放| 欧美激情一区二区在线| 免费欧美日韩国产三级电影| 91日韩一区二区三区| 久久综合丝袜日本网| 图片区日韩欧美亚洲| 91在线观看一区二区| 欧美电视剧免费观看| 亚洲3atv精品一区二区三区| 99久久伊人久久99| 久久久久久久免费视频了| 肉丝袜脚交视频一区二区| 972aa.com艺术欧美| 久久久久久久久99精品| 视频一区中文字幕国产| 欧美在线免费观看亚洲| 亚洲欧美偷拍三级| 99久久国产综合色|国产精品| 欧美精品一区视频| 日韩av电影免费观看高清完整版在线观看 | 成人av影视在线观看| 精品国产污污免费网站入口 | thepron国产精品| ww久久中文字幕| 日本不卡免费在线视频| 777午夜精品视频在线播放| 亚洲一线二线三线视频| 色8久久人人97超碰香蕉987| 亚洲欧洲av一区二区三区久久| 国产呦精品一区二区三区网站| 欧美大片在线观看一区| 精品一区二区三区免费播放| 欧美一卡2卡3卡4卡| 看电视剧不卡顿的网站| 欧美一区二区三区在| 青娱乐精品视频在线| 日韩免费看的电影| 国产在线视频不卡二| 久久综合国产精品| 黄一区二区三区| 国产亚洲成aⅴ人片在线观看 | 日韩av不卡一区二区| 91精品蜜臀在线一区尤物| 热久久国产精品| 精品国产乱码91久久久久久网站| 国产一区二区三区精品视频| 中文字幕欧美三区| 一本色道亚洲精品aⅴ| 亚洲成av人在线观看| 欧美成人福利视频| 成人激情小说网站| 亚洲成人资源网| 日韩欧美一区二区久久婷婷| 国产精品一品二品| 亚洲人xxxx| 日韩一二三区视频| 国产成人av电影在线| 亚洲一区免费观看| 欧美v国产在线一区二区三区| 成人免费视频网站在线观看| 亚洲一区二区中文在线| 日韩一区二区在线看| 成人爽a毛片一区二区免费| 亚洲一区二区在线视频| 精品国一区二区三区| 一本久道中文字幕精品亚洲嫩| 日本aⅴ精品一区二区三区| 国产日产亚洲精品系列| 在线观看亚洲专区| 国产成人99久久亚洲综合精品| 亚洲一区二区av在线| 国产婷婷色一区二区三区在线| 欧美色视频一区| 成人一区二区三区视频在线观看| 丝袜脚交一区二区| 国产精品免费看片| 日韩视频123| 色综合视频一区二区三区高清| 久久精品99国产精品| 亚洲另类在线一区| 国产亚洲人成网站| 51精品视频一区二区三区| 99视频超级精品| 国内成+人亚洲+欧美+综合在线| 亚洲午夜久久久久| 国产精品麻豆99久久久久久| 日韩免费看的电影| 欧美日韩五月天| 色老汉一区二区三区| a在线欧美一区| 国产成人精品一区二区三区四区| 天堂精品中文字幕在线| 伊人色综合久久天天| 国产精品久久久久久久浪潮网站| 精品国产91洋老外米糕| 欧美一区二区大片| 日韩午夜激情av| 欧美高清视频www夜色资源网| 91久久线看在观草草青青| a在线播放不卡| 91在线视频免费91| 91免费国产视频网站| 成人av小说网| 91在线观看视频| 91亚洲精品一区二区乱码| 岛国一区二区在线观看| 风间由美中文字幕在线看视频国产欧美| 蜜桃av噜噜一区| 久久99久久久欧美国产| 青青国产91久久久久久| 久久国产成人午夜av影院| 麻豆精品一区二区综合av| 蜜桃视频一区二区| 久久99热狠狠色一区二区| 狠狠色丁香婷综合久久| 国产成人精品免费网站| 国产suv精品一区二区三区| 丁香另类激情小说| 91免费版在线| 欧美调教femdomvk| 3751色影院一区二区三区| 在线成人午夜影院| 欧美不卡视频一区| 久久一区二区视频| 成人欧美一区二区三区黑人麻豆 | 欧美视频精品在线观看| 欧美人伦禁忌dvd放荡欲情| 在线综合亚洲欧美在线视频| 日韩欧美电影在线| 欧美高清在线精品一区| 亚洲色图色小说| 日本中文字幕不卡| 国产91丝袜在线观看| 欧美在线三级电影| 久久一区二区三区四区| 亚洲人吸女人奶水| 男人操女人的视频在线观看欧美| 精品亚洲aⅴ乱码一区二区三区| 国产盗摄精品一区二区三区在线| 96av麻豆蜜桃一区二区| 欧美一区二区私人影院日本| 欧美国产欧美综合| 亚洲成人av免费| 国产曰批免费观看久久久| 一本大道av一区二区在线播放| 欧美一区二区网站| ㊣最新国产の精品bt伙计久久| 日韩国产精品大片| 91在线免费看| 精品动漫一区二区三区在线观看| 一区二区在线观看免费视频播放| 久久se这里有精品| 精品视频免费在线| 国产精品入口麻豆九色| 蜜桃视频在线观看一区二区|