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

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

?? vittest.c

?? 從國外ECC網站上找到的
?? C
字號:
/* Test a soft decision viterbi decoder
 * Copyright 1999 Phil Karn, KA9Q
 * May be used under the terms of the GNU Public License
 */

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <memory.h>

void modnoise(unsigned char *,unsigned int,double,double);
int viterbi(
long *metric,           /* Final path metric (returned value) */
unsigned char *data,	/* Decoded output data */
unsigned char *symbols,	/* Raw deinterleaved input symbols */
unsigned int nbits,	/* Number of output bits; 2*(nbits+6) input symbols will be read */
int mettab[2][256],	/* Metric table, [sent sym][rx symbol] */
unsigned int startstate,         /* Encoder starting state */
unsigned int endstate            /* Encoder ending state */
);

/* Convolutionally encode data into binary symbols */
int encode(
unsigned char *symbols,
unsigned char *data,
unsigned int nbytes,
unsigned int startstate,
unsigned int endstate
);



/* Lookup table giving count of 1 bits for integers 0-255 */
unsigned char Bitcnt[] = {
 0, 1, 1, 2, 1, 2, 2, 3,
 1, 2, 2, 3, 2, 3, 3, 4,
 1, 2, 2, 3, 2, 3, 3, 4,
 2, 3, 3, 4, 3, 4, 4, 5,
 1, 2, 2, 3, 2, 3, 3, 4,
 2, 3, 3, 4, 3, 4, 4, 5,
 2, 3, 3, 4, 3, 4, 4, 5,
 3, 4, 4, 5, 4, 5, 5, 6,
 1, 2, 2, 3, 2, 3, 3, 4,
 2, 3, 3, 4, 3, 4, 4, 5,
 2, 3, 3, 4, 3, 4, 4, 5,
 3, 4, 4, 5, 4, 5, 5, 6,
 2, 3, 3, 4, 3, 4, 4, 5,
 3, 4, 4, 5, 4, 5, 5, 6,
 3, 4, 4, 5, 4, 5, 5, 6,
 4, 5, 5, 6, 5, 6, 6, 7,
 1, 2, 2, 3, 2, 3, 3, 4,
 2, 3, 3, 4, 3, 4, 4, 5,
 2, 3, 3, 4, 3, 4, 4, 5,
 3, 4, 4, 5, 4, 5, 5, 6,
 2, 3, 3, 4, 3, 4, 4, 5,
 3, 4, 4, 5, 4, 5, 5, 6,
 3, 4, 4, 5, 4, 5, 5, 6,
 4, 5, 5, 6, 5, 6, 6, 7,
 2, 3, 3, 4, 3, 4, 4, 5,
 3, 4, 4, 5, 4, 5, 5, 6,
 3, 4, 4, 5, 4, 5, 5, 6,
 4, 5, 5, 6, 5, 6, 6, 7,
 3, 4, 4, 5, 4, 5, 5, 6,
 4, 5, 5, 6, 5, 6, 6, 7,
 4, 5, 5, 6, 5, 6, 6, 7,
 5, 6, 6, 7, 6, 7, 7, 8,
};

main(argc,argv)
int argc;
char *argv[];
{
  double ebn0,esn0,noise;
  int mettab[2][256];
  int amp,nbits,nbytes,i;
  unsigned char *symbols;
  unsigned char *data,*decdata;
  unsigned long metric;
  long t,ntrials;
  long seed;
  extern char *optarg;
  unsigned long biterrs = 0;
  unsigned long framerrs = 0;
  int timetrial;
  int verbose = 0;
  int rate; /* 1/rate is the actual code rate */
  extern int Rate;
  
  amp = 100;
  ebn0 = 5.0;
  nbits = 1152;
  ntrials = 10;
  timetrial = 0;
  time(&seed);
  while((i = getopt(argc,argv,"a:e:n:N:qs:t")) != EOF){
    switch(i){
    case 'a':
      amp = atoi(optarg);	/* Signal amplitude in units */
      break;
    case 'e':
      ebn0 = atof(optarg);	/* Eb/N0 in dB */
      break;
    case 'n':
      nbits = atoi(optarg);	/* Number of data bits */
      break;
    case 'N':
      ntrials = atoi(optarg);
      break;
    case 's':
      seed = atoi(optarg);
      break;
    case 't':	/* Generate noise once, for decoder timing */
      timetrial = 1;
      break;
    case 'v':
      verbose++;
      break;
    case '?':
      usage();
      exit(1);
    }
  }
  nbytes = nbits/8;
  srandom(seed);
  
  esn0 = ebn0 - 10*log10((double)Rate);	/* Es/N0 in dB */	
  
  /* Compute noise voltage. The 0.5 factor accounts for BPSK seeing
   * only half the noise power, and the sqrt() converts power to
   * voltage.
   */
  noise = sqrt(0.5/pow(10.,esn0/10.));
  
  data = malloc(nbytes);
  decdata = malloc(nbytes);
  symbols = malloc((nbits+20)*Rate); /* 20 > max K */
  
  /* Generate metrics analytically, with gaussian pdf */	
  gen_met(mettab,amp,noise,0.,4);
  printf("metric table range %d to %d\n",mettab[0][0],mettab[1][0]);
  
  /* Generate data */
  memset(data,0,nbytes);	/* Default to all 0's */
  data[0] = 0x01;
  data[1] = 0x23;
  data[2] = 0x45;
  data[3] = 0x67;
  data[4] = 0x55;
  data[nbytes-4] = 0x55;
  data[nbytes-3] = 0xaa;
  data[nbytes-2] = 0xff;
  data[nbytes-1] = 0xff;
  
  i = 0;
  if(timetrial){
    encode(symbols,data,nbytes,0,0);
    modnoise(symbols,(nbits+20)*2,amp,noise);
    for(t = 1;t <= ntrials;t++)
      viterbi(&metric,decdata,symbols,nbits,mettab,0,0);
    printf("bits decoded = %ld\n",nbits*ntrials);
    exit(0);
  }
  printf("original data:\n",t);
  for(i=0;i<nbytes;i++)
    printf("%02x",data[i]);
  printf("\n");			
  for(t = 1;t <= ntrials;t++){
    /* Modulate and add noise */
    encode(symbols,data,nbytes,0,0);
    modnoise(symbols,(nbits+20)*Rate,amp,noise);
    viterbi(&metric,decdata,symbols,nbits,mettab,0,0);
    if(memcmp(data,decdata,nbytes) != 0){
      printf("frame %d decoded data:\n",t);
      for(i=0;i<nbytes;i++)
	printf("%02x",decdata[i]);
      printf("\n");
      framerrs++;
      for(i=0;i<nbytes;i++){
	biterrs += Bitcnt[data[i]^decdata[i]];
      }
    }
  }
  printf("Seed %ld Amplitude %d units, Eb/N0 = %lg dB\n",seed,amp,ebn0);
  printf("Amplitude %d units, Eb/N0 = %lg dB\n",amp,ebn0);
  printf("Frame length = %d bits, #frames = %ld, bits decoded = %ld\n",
	 nbits,ntrials,nbits*ntrials);
  printf("frame errors: %ld (%g)\n",framerrs,(double)framerrs/ntrials);
  printf("bit errors: %ld (%g)\n",biterrs,(double)biterrs/(nbits*ntrials));
}

usage()
{
  printf("Usage: vittest [options]\n");
  printf("Option&default	meaning\n");
  printf("-a 100		amplitude\n");
  printf("-e 5.0		Eb/N0 in dB\n");
  printf("-n 1152		trial frame size, bits\n");
  printf("-N 10		number of trials\n");
  printf("-s [cur time]	seed for random number generator\n\n");
  printf("-t		select timetest mode (default off)\n");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色一区二区三区免费观看| 亚洲小少妇裸体bbw| 国内外成人在线| 久久亚洲捆绑美女| 成人a免费在线看| 一区二区三区四区不卡在线| 欧美性视频一区二区三区| 亚洲福利一区二区| 精品蜜桃在线看| 成人精品小蝌蚪| 亚洲图片欧美视频| 777奇米四色成人影色区| 久久国产精品99精品国产 | 久久精品国产一区二区三区免费看| 欧美精品久久一区| 国产精品一区一区| 亚洲美女免费在线| 日韩午夜电影在线观看| 国产精品综合二区| 一区二区三区国产精品| 制服丝袜亚洲色图| 国产成人av电影| 亚洲成a人v欧美综合天堂| 日韩女优电影在线观看| av一二三不卡影片| 天堂午夜影视日韩欧美一区二区| 久久视频一区二区| 91黄视频在线| 黄色精品一二区| 成人欧美一区二区三区| 制服丝袜日韩国产| 91免费视频网址| 日本伊人午夜精品| 亚洲精品中文在线影院| 日韩欧美国产综合在线一区二区三区| 国产成人av电影在线| 偷拍一区二区三区四区| 国产午夜精品久久久久久久| 欧美日韩不卡一区二区| 成年人网站91| 久热成人在线视频| 亚洲成人av在线电影| 中文字幕欧美国产| 亚洲精品一线二线三线| 欧美性xxxxxxxx| 91在线免费播放| 国产精品主播直播| 日韩高清不卡一区二区三区| 亚洲欧洲性图库| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美日韩中文另类| 97se狠狠狠综合亚洲狠狠| 国产最新精品精品你懂的| 性久久久久久久久久久久| 国产精品视频一二| 久久久青草青青国产亚洲免观| 欧美日韩日日骚| 91久久精品国产91性色tv| 波多野结衣视频一区| 国产福利不卡视频| 久久av资源站| 麻豆精品视频在线观看视频| 午夜一区二区三区视频| 亚洲色图欧洲色图婷婷| 国产精品夫妻自拍| 国产欧美日韩精品在线| 久久久国际精品| 久久免费电影网| 国产亚洲美州欧州综合国| 精品免费日韩av| 久久这里只有精品6| 欧美草草影院在线视频| 日韩精品一区二区三区swag| 欧美一区二区播放| 91精品国模一区二区三区| 这里是久久伊人| 51午夜精品国产| 日韩一区二区三区电影| 日韩欧美一卡二卡| 欧美一区二区三区在线| 欧美高清视频一二三区| 91精品国产综合久久久久| 9191久久久久久久久久久| 欧美丰满少妇xxxbbb| 欧美一级免费观看| 精品电影一区二区三区 | 久久久久久久久久久久久女国产乱| 欧美精品亚洲二区| 欧美性感一区二区三区| 欧美视频在线播放| 在线播放亚洲一区| 欧美成人精品二区三区99精品| 26uuu精品一区二区在线观看| 久久久午夜电影| 中文字幕在线一区免费| 亚洲欧美国产毛片在线| 一级日本不卡的影视| 天天综合色天天| 极品美女销魂一区二区三区免费| 久久国产成人午夜av影院| 国产成人在线视频免费播放| 不卡视频在线观看| 欧美午夜精品一区| 欧美成人三级在线| 中文字幕久久午夜不卡| 一区二区三区高清在线| 青青草成人在线观看| 国产一区二区免费视频| 99久久精品免费看国产免费软件| 欧美做爰猛烈大尺度电影无法无天| 欧美日韩综合色| 久久久精品国产免大香伊| 亚洲精品视频一区二区| 视频一区二区三区中文字幕| 国产一区二区美女诱惑| 色偷偷一区二区三区| 日韩亚洲电影在线| 自拍偷拍国产精品| 在线亚洲高清视频| 26uuu精品一区二区| 樱桃视频在线观看一区| 久草热8精品视频在线观看| av不卡在线播放| 日韩写真欧美这视频| 最近日韩中文字幕| 韩国一区二区视频| 欧美日韩的一区二区| 国产欧美精品一区| 免费观看在线综合| 色婷婷久久一区二区三区麻豆| 欧美成人一级视频| 亚洲综合色网站| 成人午夜视频在线| 精品国产免费人成电影在线观看四季 | 国产精品久久久久久久久久免费看 | 555夜色666亚洲国产免| 中文字幕一区二区在线播放 | 亚洲成人激情自拍| 成人中文字幕电影| 日韩片之四级片| 亚洲在线中文字幕| 99视频超级精品| 久久精品亚洲麻豆av一区二区 | 久久女同性恋中文字幕| 丝袜亚洲另类欧美| 色婷婷激情一区二区三区| 日本一区二区三区视频视频| 免费成人结看片| 正在播放亚洲一区| 亚洲成人777| 欧美亚洲综合一区| 亚洲欧美电影一区二区| 成人激情动漫在线观看| 亚洲精品在线观看网站| 伦理电影国产精品| 欧美一区二区在线视频| 亚洲国产精品尤物yw在线观看| 色综合久久88色综合天天 | 9191成人精品久久| 一二三区精品福利视频| 99r国产精品| 国产精品国产自产拍在线| 国产九色精品成人porny| 精品日韩欧美一区二区| 美脚の诱脚舐め脚责91| 日韩视频免费直播| 久久成人免费网| 精品91自产拍在线观看一区| 国产自产视频一区二区三区| 久久久精品国产免费观看同学| 国产一区二区三区国产| 国产亚洲视频系列| a4yy欧美一区二区三区| 亚洲视频 欧洲视频| 色婷婷久久99综合精品jk白丝| 亚洲欧美日韩人成在线播放| 成人免费高清视频在线观看| 久久久久久久综合色一本| 成人自拍视频在线观看| 亚洲免费在线播放| 在线视频你懂得一区| 三级影片在线观看欧美日韩一区二区 | 欧美老肥妇做.爰bbww| 日韩福利电影在线| 日韩精品一区二区在线观看| 国产一区二区在线看| 国产精品三级视频| 91精品91久久久中77777| 亚洲成人av电影| 精品成人免费观看| 91网上在线视频| 日本成人超碰在线观看| 国产三级精品三级在线专区| 成人免费av在线| 午夜久久久影院| 国产午夜精品一区二区三区视频| 不卡免费追剧大全电视剧网站| 一片黄亚洲嫩模| 精品福利一区二区三区免费视频| 99国产精品视频免费观看|