📄 concodequant.m
字号:
% compute probabilities for the quantization of the % Euclidean metric (for Viterbi decoding in Gaussian noise)sigma = 1;a1 = 1;a2 = -1; % signal amplitudesq1 = -1; % quantization levelsq2 = 0;q3 = 1;% compute the probability of falling in the quantized regionp4 = qf((q3-a1)/sigma);p3 = qf((q2-a1)/sigma) - p4;p2 = qf((q1-a1)/sigma) - (p3+p4);p1 = 1-(p2+p3+p4);% compute log probabilitiesp4l = -log(p4);p3l = -log(p3);p2l = -log(p2);p1l = -log(p1);% p4l = log2(p4);% p3l = log2(p3);% p2l = log2(p2);% p1l = log2(p1);% subtract off the smallest probability% p4d = p4l-p1l;% p3d = p3l-p1l;% p2d = p2l-p1l;% p1d = 0;p4d = 0;p3d = p3l-p4l;p2d = p2l-p4l;p1d = p1l-p4l;% search for a scale factor that will result in smallest truncation errorminm = 2;clist = 1:.001:5;maxpd = max([p1d,p2d,p3d,p4d]);maxqlist = [];mlist = [];clist2 = [];maxdespd = 8;for c = clist r4 = p4d*c - floor(p4d*c); r3 = p3d*c - floor(p3d*c); r2 = p2d*c - floor(p2d*c); r1 = p1d*c - floor(p1d*c); if(c*maxpd > maxdespd) % if we have the largest value we want to get break; end maxqlist = [maxqlist c*maxpd]; clist2 = [clist2 c];% m = max([r4 r3 r2 r1]); m = sum([r4 r3 r2 r1]); mlist = [mlist m]; if(m < minm) cmin = c; minm = m; endendplot(clist2,mlist); hold on;plot(clist2,maxqlist);% the un-truncated probabilitiescminp4d*cminp3d*cminp2d*cminp1d*cmin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -