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

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

?? bcjr.cc.txt

?? 壓縮文件中是Error Correction Coding - Mathematical Methods and Algorithms(Wiley 2005)作者:(Todd K. Moon )的配
?? TXT
字號:
// BCJR.cc -- Compute the MAP bit decisions using the BCJR algorithm// Todd K. Moon// Copyright 2004 by Todd K. Moon// Permission is granted to use this program/data// for educational/research only#include "BCJR.h"#include <math.h>#include <iostream>using namespace std;#include "BPSKmodvec.h"BCJR::BCJR(BinConv &encoder, int in_L,double in_sigma2){   L = in_L;   sigma2 = in_sigma2;   Q = (1<<encoder.nu);   n = encoder.n;   k = encoder.k;   numbranches = (1<<k);   // allocate space for alpha, beta, and the posterior probabilities   CALLOCMATRIX(alpha,double,(L+1),Q);   CALLOCMATRIX(beta,double,(L+1),Q);   CALLOCMATRIX(Pp,double,L,numbranches);   buildprev(encoder);   buildoutputmat(encoder);}double **BCJR::MAP1(const double **r, const double **prior, int finalstate)// Compute the MAP probability for u, using the entire r vector at// each step and using the entire gamma probability (not just the// extrinsic part){   int i,k,p,q;   unsigned int in;   int inp;   alphabeta(r,prior,finalstate); // compute alpha and beta   // Find the log likelihood ratios   // Transition: (p,q):  S[1][p] = q for transition due to input 1   // Transition: (p,q):  S[0][p] = q for transition due to input 0   double sum,sum2;   for(k = 0; k < L; k++) {	  sum2 = 0;	  for(inp = 0; inp < numbranches; inp++) {		 sum = 0;		 for(i = 0; i < Q; i++) {			p = i;  q = S[inp][i];			sum += alpha[k][p]*gammakpq(k,p,q,inp,prior[k][inp],r[k])*			   beta[k+1][q];		 }		 Pp[k][inp] = sum;		 sum2 += sum;	  }	  // normalize across all the inputs	  for(inp = 0; inp < numbranches; inp++) {		 Pp[k][inp] /= sum2;	  }   }   // MATDUMP(Pp,L,numbranches);   return Pp;}double **BCJR::MAP2(const double **r,const double **prior, int finalstate)// Compute the MAP probability for u, using only the nonsystematic// part of r.   This is used for computing the extrinsic probabilities{   int i,k,p,q;   unsigned int in,inp;   // Fill in the blanks    // ...   return Pp;}voidBCJR::alphabeta(const double **r,const double **prior,int finalstate)// Compute alpha and beta using the forward-backward algorithm.// Set finalstate<0 if uniformly distributed.// Otherwise, set finalstate to the desired value{   int i,p,q;   double normalpha, normbeta, gamma;   unsigned int in;   double Ppq;					// transition probability   // initialize alpha[0][*]    for(i = 0; i < Q; i++) {	  alpha[0][i] = 0;   }   alpha[0][0] = 1;   // initialize beta[0][*]   if(finalstate>=0) { // initialize for one final state	  for(i = 0; i < Q; i++) {		 beta[L][i] = 0;	  }	  beta[L][finalstate] = 1;   }   else { // initialize all uniformly	  for(i = 0; i < Q; i++) {		 beta[L][i] = 1./Q;	  }   }   // Forward pass: compute the alphas   // Fill in the blanks   // ...   // Backward pass: compute the betas   // Fill in the blanks    // ...}doubleBCJR::gammakpq(int k, int p, int q, int inp, double Ppq, const double *r)// Compute the transition probability; assumes that (p,q) is a // valid state transition// // (This could be simplified more, but is left in this form to// explicitly show the nature of the computations){   double *a;					// output selection   int j;   a = outputmat[p][inp];   double t, sum = 0;   for(j = 0; j < n; j++) {	  t = r[j] - a[j];	  sum += t*t;   }   return Ppq*exp(-sum/(2*sigma2));}doubleBCJR::gammakpq2(int k, int p, int q, int inp, const double *r)// Compute the transition probability; assumes that (p,q) is a valid// state transition// // This version uses only the "nonsystematic" part of r// and is used for computing the extrinsic probabilities//// (Again, this could be simplified more...){   double *a;					// output selection   int j;   a = outputmat[p][inp];   double t, sum = 0;   for(j = 1; j < n; j++) {	  t = r[j] - a[j];	  sum += t*t;   }   return exp(-sum/(2*sigma2));}		 void BCJR::buildprev(BinConv &encoder)// Build the previous state information and the inputfrom information// and the S data{   unsigned int savestate = encoder.getstate();   CALLOCMATRIX(prevstate,unsigned int, Q, numbranches);   CALLOCMATRIX(inputfrom,unsigned int, Q, numbranches);   CALLOCMATRIX(S,unsigned int,numbranches,Q);      // first build the nextstate    unsigned int **nextstate;   CALLOCMATRIX(nextstate,unsigned int,Q,numbranches);   unsigned char ins[k];   unsigned int state;   unsigned int inp;   int i;   unsigned int nextst;   int *nfrom = new int[Q];   	// initialize with zeros	for (i = 0; i<Q; i++)	{		nfrom[i]=0;	}   for(state = 0; state < Q; state++) {	  for(inp = 0; inp < numbranches; inp++)  {		 encoder.setstate(state);		 // convert inp to array		 for(i = 0; i < k; i++) { if(inp&(1<<i)) ins[i] = 1; else ins[i] = 0;}		 encoder.encode(ins);		 nextst = encoder.getstate();		 prevstate[nextst][nfrom[nextst]] = state;		 inputfrom[nextst][nfrom[nextst]] = inp;		 nfrom[nextst]++;		 S[inp][state] = nextst;	  }   }	     for(state = 0; state < Q; state++) { // for each state	  for(inp = 0; inp < numbranches; inp++)  {		 encoder.setstate(state);		 // convert inp to array		 for(i = 0; i < k; i++) { if(inp&(1<<i)) ins[i] = 1; else ins[i] = 0;}		 encoder.encode(ins);		 nextstate[state][inp] = encoder.getstate();	  }   }   for(state = 0; state < Q; state++) {	  unsigned char *outs;	  cout << "state=" << state << ": ";	  for(inp=0; inp < numbranches; inp++) {		 cout << nextstate[state][inp] << " ";		 encoder.setstate(state);		 for(i = 0; i < k; i++) { if(inp&(1<<i)) ins[i] = 1; else ins[i] = 0;}		 outs = encoder.encode(ins);		 cout << "(";		 for(i = 0; i < n; i++) {			cout << int(outs[i]);		 }		 cout << ") ";	  }	  cout << endl;   }   encoder.setstate(savestate);   // print the prevstate table   cout << "fromstates: " << endl;   for(state = 0; state < Q; state++) {	  cout << "state=" << state << ": ";	  for(inp=0; inp < (1<<k); inp++) {		 cout << prevstate[state][inp] << " (";		 cout << inputfrom[state][inp] << ") ";	  }	  cout << endl;   }   delete[] nfrom;   encoder.setstate(savestate);   FREEMATRIX(nextstate);}void BCJR::buildoutputmat(BinConv & encoder)// builds the lookup from [state][input] to output array,{   unsigned int savestate = encoder.getstate();   // outputmat[state][input][outputnum]   CALLOCTENSOR(outputmat,double,Q,numbranches,n);   unsigned char ins[k];   unsigned int state;   unsigned int inp;   int i,j;   unsigned char *out;   unsigned int outint;   double *modout;   BPSKmodvec modulator(n);   for(state = 0; state < Q; state++) { // for each state	  for(inp = 0; inp < numbranches; inp++)  {		 encoder.setstate(state);		 // convert inp to array		 for(i = 0; i < k; i++) { if(inp&(1<<i)) ins[i] = 1; else ins[i] = 0;}		 out = encoder.encode(ins);		 modout = modulator.mod(out);		 for(j = 0; j < n; j++) { 			outputmat[state][inp][j] = modout[j];		 }	  }   }   cout << "outputs: " << endl;   for(state = 0; state < Q; state++) {	  cout << "state=" << state << ": ";	  for(inp=0; inp < numbranches; inp++) {		 for(j = 0; j < n; j++) {			cout << int(outputmat[state][inp][j]);		 }		 cout << " ";	  }	  cout << endl;   }   encoder.setstate(savestate);}		 /*Local Variables:compile-command: "g++ -c -g BCJR.cc"End:*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品一区二区三区| 日日夜夜免费精品| 成人国产亚洲欧美成人综合网| 国产午夜亚洲精品理论片色戒| av资源网一区| 欧美bbbbb| 亚洲精品日日夜夜| 国产欧美一二三区| 日韩精品一区二区三区视频播放| 91视频在线观看免费| 久88久久88久久久| 午夜欧美2019年伦理| 日韩美女啊v在线免费观看| 日韩精品一区二区三区在线播放 | 懂色av中文一区二区三区| 一区二区三区四区av| 日本一区二区动态图| 日韩精品资源二区在线| 久久久久久影视| 制服丝袜亚洲网站| 在线观看网站黄不卡| 成人激情校园春色| 91小视频免费观看| 欧美一区二区三区视频免费| 91福利视频在线| 91免费视频网| 欧美日韩高清在线| 欧美色大人视频| 在线一区二区三区四区五区| 91精品欧美综合在线观看最新| 2020国产精品| 久久久久9999亚洲精品| 亚洲女与黑人做爰| 伊人色综合久久天天| 久久99精品久久久久久久久久久久| 国产91精品欧美| 欧美一卡二卡在线| 国产精品久久久久久久久动漫 | 久久国产夜色精品鲁鲁99| 偷拍一区二区三区四区| 国产一区高清在线| 国产a久久麻豆| 欧美挠脚心视频网站| 国产精品美女久久久久aⅴ| 中文欧美字幕免费| 热久久一区二区| 欧美综合欧美视频| 国产欧美日韩视频一区二区| 图片区小说区国产精品视频 | 亚洲欧美偷拍卡通变态| 久久av资源站| 欧美日韩mp4| 一区二区三区四区中文字幕| 国产精品影视在线| 91麻豆蜜桃一区二区三区| 精品国产麻豆免费人成网站| 国产精品伦理在线| 国产传媒日韩欧美成人| 91亚洲永久精品| 国产午夜一区二区三区| 久久99国内精品| 欧美一区二区三区在线视频| 性欧美疯狂xxxxbbbb| 韩国视频一区二区| 99re热视频精品| 久久久一区二区三区捆绑**| 日本不卡一区二区| 国产宾馆实践打屁股91| 久久综合99re88久久爱| 精品一区二区三区免费毛片爱| 欧美日韩视频一区二区| 午夜精品久久久久久久| 欧美日韩中文字幕一区| 亚洲高清久久久| 国产一区二区主播在线| 精品国产成人在线影院| 欧美a一区二区| 欧美v国产在线一区二区三区| 中文字幕日韩一区| 久久丁香综合五月国产三级网站| 欧美精品欧美精品系列| 成人欧美一区二区三区1314| 99精品久久99久久久久| 亚洲视频小说图片| 欧洲在线/亚洲| 亚洲bt欧美bt精品777| 欧美一区二区三区免费观看视频| 欧美aaa在线| 国产区在线观看成人精品| proumb性欧美在线观看| 亚洲一区二区在线免费看| 白白色 亚洲乱淫| 亚洲尤物视频在线| 欧美日韩在线播放| 精品影院一区二区久久久| 久久久99久久| 欧洲一区二区av| 久久国产精品区| 国产精品丝袜在线| 欧美性受xxxx黑人xyx| 亚洲欧美日韩电影| 欧美男女性生活在线直播观看| 激情综合网av| 亚洲美女视频一区| 久久综合国产精品| 在线一区二区三区四区| 狠狠色丁香久久婷婷综合_中 | 精品国产乱码久久久久久免费| 国产一区二区导航在线播放| 亚洲女同ⅹxx女同tv| 日韩欧美aaaaaa| 一本一本久久a久久精品综合麻豆| 国产精品色一区二区三区| 欧美综合亚洲图片综合区| 久久99国内精品| 亚洲123区在线观看| 亚洲欧洲韩国日本视频| 日韩亚洲欧美综合| 国产精品99久久久| 亚洲成av人片在线观看无码| 国产亚洲一区二区三区四区| 欧美日韩视频专区在线播放| 粉嫩av亚洲一区二区图片| 免费精品视频在线| 亚洲高清久久久| 亚洲欧美综合另类在线卡通| 亚洲精品一区二区三区香蕉| 欧美日韩在线一区二区| 91丨porny丨户外露出| 国产一区不卡视频| 日本伊人色综合网| 亚洲国产精品人人做人人爽| 久久精品日韩一区二区三区| 日韩一区二区免费在线电影| 欧美熟乱第一页| 色先锋资源久久综合| 成人高清免费观看| 国产精品亚洲一区二区三区在线| 日韩激情视频网站| 亚洲国产视频在线| 夜夜亚洲天天久久| 国产精品久久久久久久裸模| 欧美韩日一区二区三区四区| 久久久美女艺术照精彩视频福利播放| 91精品国产91久久综合桃花| 欧美日韩日日夜夜| 欧美裸体一区二区三区| 欧美自拍偷拍午夜视频| 日本精品裸体写真集在线观看| 99精品国产热久久91蜜凸| proumb性欧美在线观看| 99在线视频精品| 色成人在线视频| 欧美三级午夜理伦三级中视频| 欧美三级日韩三级国产三级| 欧美人xxxx| 日韩免费观看高清完整版 | 日韩你懂的在线播放| 欧美一区中文字幕| 精品久久久三级丝袜| 久久精品无码一区二区三区| 国产精品免费久久| 国产精品电影院| 亚洲自拍与偷拍| 美脚の诱脚舐め脚责91 | 午夜影院久久久| 男女男精品视频网| 国产精品123区| 色系网站成人免费| 欧美蜜桃一区二区三区| 欧美大片在线观看| 国产日韩欧美一区二区三区乱码 | 欧美精品一区二区在线播放| 国产欧美一区二区三区鸳鸯浴| 亚洲视频一区在线| 婷婷国产在线综合| 国产伦精品一区二区三区视频青涩 | 久久久国产综合精品女国产盗摄| 国产欧美一区二区三区在线看蜜臀 | 北条麻妃一区二区三区| 欧美亚洲综合色| www激情久久| 艳妇臀荡乳欲伦亚洲一区| 久久精品国产精品亚洲综合| 播五月开心婷婷综合| 欧美三级乱人伦电影| 国产亚洲精品精华液| 午夜久久电影网| 丁香天五香天堂综合| 日韩成人精品在线| 成人黄色a**站在线观看| 欧美日韩国产片| 国产精品嫩草影院av蜜臀| 天天爽夜夜爽夜夜爽精品视频| 国产制服丝袜一区| 欧美视频一区二区在线观看| 国产三级欧美三级日产三级99| 香蕉加勒比综合久久| 99久久精品免费精品国产| 日韩欧美不卡在线观看视频|