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

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

?? genviterbi.pl

?? 從國外ECC網站上找到的
?? PL
字號:
# Perl script to generate C code for an encoder and
# a Viterbi decoder for any specified rate 1/N, constraint length k <= 16
# convolutional code.
#
# Not recommended for large K codes, as it will generate a *very* large
# program!

# 24 October 1997 Phil Karn, KA9Q

# Here are the polynomials for some optimum convolutional codes. Select only one
# by uncommenting it

# Rate 1/2 codes
#@polys = (0x7,0x5);		# k=3
#@polys = (0xf,0xb);		# k=4
#@polys = (0x17, 0x19);		# k=5
#@polys = (0x13, 0x1b);		# k=5, used in GSM?
#@polys = (0x2f, 0x35);		# k=6
@polys = (0x6d,0x4f);		# k=7; very popular with NASA and industry
#@polys = (0x9f, 0xe5);		# k=8
#@polys = (0x1af, 0x11d);	# k=9; used in IS-95 CDMA
#@polys = (0x45dd, 0x69e3);	# k = 15


# Rate 1/3 codes
#@polys = (0x7, 0x7, 0x5);	#k = 3
#@polys = (0xf, 0xb, 0xd);	#k = 4
#@polys = (0x1f, 0x1b, 0x15);	#k = 5
#@polys = (0x2f, 0x35, 0x39);	#k = 6
#@polys = (0x4f, 0x57, 0x6d);	#k = 7; also popular with NASA and industry
#@polys = (0xef, 0x9b, 0xa9);	#k = 8
#@polys = (0x1ed, 0x19b, 0x127); #k = 9; used in IS-95 CDMA

# end of user-configurable stuff

# Figure out constraint length by looking at the polynomials
$bar = 0;
foreach $i (@polys){
	$bar |= $i;
}
$k = 0;
while($bar != 0){
	$k++;
	$bar >>= 1;
}
die "Max K=16 supported" if ($k > 16);

$nsym = @polys;
$nmets = 1 << $nsym;
$smask = $nmets - 1;
$K = 1 << ($k - 1);
if($K/32 >= 1){
	$D = $K/32;
} else {
	$D = 1;
}


print "unsigned char Partab[] = { ";
for $i (0 ... 255) {
	print parity($i),",";
}
print "};
";

print "/* Convolutional encoder */
encode(
unsigned char *symbols,
unsigned char *data,
unsigned int nbytes)
{
	unsigned int encstate;
	int i;

	encstate = 0;
	while(nbytes-- != 0){
		for(i=7;i>=0;i--){
			encstate = (encstate << 1) | ((*data >> i) & 1);\n";

foreach $poly (@polys) {
	if($k <= 8){
		print "\t\t\t*symbols++ = Partab[encstate & $poly];\n";
	} elsif($k <= 16){
		print "\t\t\t*symbols++ = Partab[((encstate & $poly) ^ ((encstate & $poly) >> 8)) & 0xff];\n";
	}
}
	
print "\t\t}
		data++;
	}
	return 0;
}\n";

print "/* Viterbi decoder */
int
viterbi(
unsigned 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 */
int mettab[2][256]	/* Metric table, [sent sym][rx symbol] */
){
	unsigned int bitcnt = 0;
	int beststate,i;
	long cmetric[$K],nmetric[$K];
	register int m0,m1;

	/* This next line is arguably illegal C, but it works on
	 * GCC and it avoids having to reference this heavily used
	 * array through a pointer. If you can't compile this, use malloc.
	 */
	unsigned long paths[nbits*",$D,"*sizeof(unsigned long)];
	unsigned long *pp;
	unsigned long dec;
	int mets[$nmets];
	
	pp = paths;
	/* Initialize starting metrics to prefer 0 state */
	cmetric[0] = 0;
	for(i=1;i<$K;i++)
		cmetric[i] = -999999;

	for(;;){\n";

emitbits(0);
# Too much loop unrolling, and we blow out of the Pentium instruction cache
if($k <= 7) {
	emitbits(1);
} else {
	print "\t\tmemcpy(cmetric,nmetric,",$K*4,");\n";
}
print"\t}
	pp -= ",$D,";
	/* Chain back from terminal state to produce decoded data */
	memset(data,0,nbits/8);
	for(i=nbits-$k;i >= 0;i--){
		if(pp[beststate >> 5] & (1 << (beststate & 31))){
			beststate |= $K;	/* 2^(K-1) */
			data[i>>3] |= 0x80 >> (i&7);
		}
		beststate >>= 1;
		pp -= ",$D,";
	}
	return 0;
}\n";

exit;


sub emit_butterfly(@) {

	my $source,$dest,$sym,$odd,$i,$j;

	$i = shift;
	$j = $i * 2;
	$odd = shift;
	$sym = shift;
	if($odd){
		$source = "nmetric";
		$dest = "cmetric";
	} else {
		$source = "cmetric";
		$dest = "nmetric";
	}

print "\t\t/* state $i, symbols ", bsplit($sym,$nsym)," */
		m0 = $source\[$i] + mets[$sym];
		m1 = $source\[",($i+$K/2),"] + mets[",$smask ^ $sym,"];
		$dest\[",2*$i,"] = m0;
		if(m1 > m0){
			$dest\[",2*$i,"] = m1;
			dec |= ";
printf "0x%lx",1 << ((2*$i) & 31);
print					";
		}
		m0 -= (mets[$sym] - mets[",$smask^$sym,"]);
		m1 += (mets[$sym] - mets[",$smask^$sym,"]);
		$dest\[",2*$i+1,"] = m0;
		if(m1 > m0){
			$dest\[",2*$i+1,"] = m1;
			dec |= ";
printf "0x%lx",1 << ((2*$i+1) & 31);
print					";
		}
"

}
sub emitbits(@) {

	my $sym;

	$odd = shift;

	if($odd){
		$dest = "cmetric";
	} else {
		$dest = "nmetric";
	}
	foreach $i (0 ... $nmets-1){
		print "\t\tmets[$i] = ";
		@symbits = bsplit($i,$nsym);
		print "mettab[",pop @symbits,"][symbols[0]]";
		foreach $j (1 ... $nsym-1){
			print " + mettab[",pop @symbits,"][symbols[$j]]";
		}
		print ";\n";
	}
	print "\t\tsymbols += $nsym;\n";
	foreach $i (0 ... $K/2-1){
		$sym = 0;
		foreach $p (@polys){
			$sym = $sym * 2 + parity((2*$i & $p));
		}
		push @stuff,join ' ',$sym,$i;
		if(($i % 16) == 15){
			print "\t\tdec = 0;\n";
			foreach $sym (sort @stuff){
				@a = split(' ',$sym);
				emit_butterfly($a[1],$odd, $a[0]);
			}
			@stuff = ();
			print "\t\t*pp++ = dec;\n";
		}
	}
	if($K/2 < 16){
			print "\t\tdec = 0;\n";
			foreach $sym (sort @stuff){
				@a = split(' ',$sym);
				emit_butterfly($a[0],$odd, $a[1]);
			}
			@stuff = ();
			print "\t\t*pp++ = dec;\n";
	}
	print "\t\tif(++bitcnt == nbits){
			beststate = 0;
			*metric = $dest\[beststate];
			break;
		}\n";
}
sub bsplit()
{
	$x = shift;
	$n = shift;
	my @ret;

	while($n-- > 0){
		push @ret,($x & 1);
		$x = $x >> 1;
	}
	return @ret;
}
sub parity()
{
	$x = shift;

	$x ^= ($x >> 16);
	$x ^= ($x >> 8);
	$x ^= ($x >> 4);
	$x ^= ($x >> 2);
	$x ^= ($x >> 1);
	return ($x & 1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩不卡免费视频| 欧美午夜精品理论片a级按摩| 一区二区三区精品久久久| 久久日韩粉嫩一区二区三区| 日韩一区二区三区高清免费看看| 欧美久久久久中文字幕| 欧美日韩你懂得| 日韩欧美资源站| 精品久久久久一区| 久久综合丝袜日本网| 国产日产欧美精品一区二区三区| 久久免费视频一区| 亚洲欧美综合色| 亚洲国产视频a| 香蕉乱码成人久久天堂爱免费| 亚洲国产欧美另类丝袜| 青青青伊人色综合久久| 久久精工是国产品牌吗| 国产一区二区三区精品视频| 成人综合激情网| 色婷婷综合久久久中文字幕| 91麻豆蜜桃一区二区三区| 在线观看亚洲专区| 精品国产亚洲在线| 国产精品伦理在线| 婷婷一区二区三区| 国产91色综合久久免费分享| 91传媒视频在线播放| 日韩欧美在线1卡| 国产欧美va欧美不卡在线| 亚洲精品视频自拍| 国产呦精品一区二区三区网站| 成人av网站在线观看免费| 欧美巨大另类极品videosbest | 奇米影视一区二区三区| 国产精品18久久久久久vr| 一本色道亚洲精品aⅴ| 日韩午夜av电影| 亚洲色图第一区| 美洲天堂一区二卡三卡四卡视频| 国产成人av网站| 欧美精品乱码久久久久久| 国产精品日韩精品欧美在线| 肉色丝袜一区二区| 91影视在线播放| 精品国产区一区| 亚洲精品国产精华液| 精品在线一区二区| 欧美久久久久久久久中文字幕| 久久精品一区八戒影视| 午夜视频久久久久久| www.亚洲国产| 久久九九全国免费| 麻豆成人在线观看| 欧美日韩精品三区| 亚洲免费大片在线观看| 风流少妇一区二区| 精品久久人人做人人爽| 免费观看在线色综合| 欧美另类一区二区三区| 亚洲日本va午夜在线影院| 高潮精品一区videoshd| 久久综合色综合88| 国内成+人亚洲+欧美+综合在线| 精品视频一区三区九区| 亚洲一区二区三区影院| 在线亚洲高清视频| 夜夜夜精品看看| 91丨porny丨最新| 中文字幕中文在线不卡住| 高清不卡在线观看av| 欧美高清一级片在线观看| 国产suv一区二区三区88区| 久久亚洲综合色一区二区三区| 久久电影网站中文字幕| 日韩视频免费观看高清在线视频| 视频一区视频二区在线观看| 777午夜精品免费视频| 视频一区免费在线观看| 日韩欧美在线不卡| 激情小说欧美图片| 亚洲国产精品t66y| 99国产欧美另类久久久精品 | 在线观看日韩高清av| 日韩毛片在线免费观看| 色成年激情久久综合| 亚洲综合一区二区三区| 欧美日本在线一区| 激情综合色综合久久综合| 久久精品一区蜜桃臀影院| 成人综合婷婷国产精品久久| 亚洲精品少妇30p| 欧美精品久久天天躁| 美国十次了思思久久精品导航| 精品成人一区二区三区四区| 粉嫩高潮美女一区二区三区| 亚洲伦在线观看| 91精品免费观看| 国产一区二区在线免费观看| 国产精品美女一区二区| 欧美日韩国产123区| 国内精品嫩模私拍在线| 亚洲欧美日韩系列| 欧美一级艳片视频免费观看| 国产在线观看免费一区| 中文字幕亚洲成人| 91精品国产福利| 成人精品视频.| 日韩电影免费一区| 国产精品久久久久影院色老大| 成人h版在线观看| 日本欧美加勒比视频| 中文字幕一区二区三区在线播放| 欧美色综合影院| 成人激情开心网| 免费成人av资源网| 亚洲毛片av在线| 国产午夜精品一区二区| 欧美日韩国产中文| 成人爱爱电影网址| 国精产品一区一区三区mba视频| 亚洲欧洲中文日韩久久av乱码| 欧美xxxxx裸体时装秀| 欧洲日韩一区二区三区| 成人永久免费视频| 精品在线免费观看| 天天做天天摸天天爽国产一区| 国产精品久久网站| 精品国产免费人成在线观看| 欧美色图12p| 99re视频精品| 国产成人亚洲综合a∨婷婷图片 | 亚洲欧洲精品一区二区三区| 日韩一级黄色片| 欧美亚洲愉拍一区二区| 99久久精品费精品国产一区二区| 国内精品嫩模私拍在线| 免费成人在线视频观看| 爽好多水快深点欧美视频| 亚洲精品福利视频网站| 亚洲人成网站色在线观看| 日本一区二区三区四区| 久久久欧美精品sm网站| www国产精品av| 久久久亚洲精品一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 欧美日韩三级一区| 91精品视频网| 欧美一级黄色大片| 欧美一二三区在线| 欧美大白屁股肥臀xxxxxx| 日韩欧美一级二级三级久久久 | 国产一区二区三区高清播放| 麻豆精品精品国产自在97香蕉| 日韩黄色片在线观看| 丝袜诱惑制服诱惑色一区在线观看| 一区二区三区在线观看网站| 亚洲欧美日韩在线| 亚洲a一区二区| 肉色丝袜一区二区| 久久99国产精品麻豆| 国产一区二三区| 成人三级伦理片| 暴力调教一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃| 91成人在线免费观看| 欧美高清视频www夜色资源网| 制服.丝袜.亚洲.中文.综合| 欧美一区二视频| www国产精品av| 亚洲乱码中文字幕| 日韩 欧美一区二区三区| 精品制服美女丁香| 99精品一区二区| 91精品国产高清一区二区三区| 亚洲精品一区二区三区四区高清 | 国产成人精品免费网站| 91麻豆福利精品推荐| 欧美日韩极品在线观看一区| 欧美成人精品二区三区99精品| 久久精品在线免费观看| 亚洲综合精品自拍| 久久99精品国产麻豆婷婷| 91麻豆精品一区二区三区| 日韩亚洲电影在线| 18涩涩午夜精品.www| 日韩精品电影在线| 国产成人亚洲综合a∨猫咪| 欧美怡红院视频| 欧美国产在线观看| 午夜欧美在线一二页| 粉嫩一区二区三区在线看| 欧美精品久久久久久久多人混战| 久久九九久精品国产免费直播| 亚洲小说欧美激情另类| 成人小视频免费观看| 欧美一区二区三区在线观看| 最新国产成人在线观看| 韩国av一区二区三区在线观看| 欧美日韩综合一区|