📄 serialmain.asv
字号:
clear;
clc;
BPH=2;
number_of_states=16;
fanout=2^BPH;
L=floor(log(number_of_states)/log(fanout));
nextstate=zeros(number_of_states,fanout);
output=zeros(number_of_states,fanout);
formerstate=zeros(number_of_states,fanout);
for i=0:number_of_states-1
for j=0:fanout-1
[next_state,out_put]=G_func(i,j,L,fanout);
nextstate(i+1,j+1)=next_state;
output(i+1,j+1)=out_put;
formerstate(next_state+1,j+1)=i;
end
end
dfhtrel.numinput=fanout;
dfhtrel.numoutput=fanout*number_of_states;
dfhtrel.numstates=number_of_states;
dfhtrel.nextstates=nextstate;
dfhtrel.outputs=output;
dfhtrel.formerstates=formerstate;
K=3;
trel=poly2trellis(K,[7,5]);
formerstate1=trel.numStates.*ones(trel.numStates,trel.numInputSymbols,trel.numInputSymbols);
for i=0:trel.numStates-1
for j=0:trel.numInputSymbols-1
k=1;
while(formerstate1(trel.nextStates(i+1,j+1)+1,k,j+1)~=trel.numStates)
k=k+1;
end
formerstate1(trel.nextStates(i+1,j+1)+1,k,j+1)=i;
end
end
tim=25;
rho_in_dB=4;
itera=2;
p=zeros(1,length(tim));
pb=0;
for i=1:tim
p(i)=itera_decode(rho_in_dB,itera,dfhtrel,trel,K,formerstate1);
%p(i)=itera_decode_rayleigh(rho_in_dB,itera,dfhtrel,trel,K,formerstate1);
%p(i)=itera_decode_slowfading(rho_in_dB,itera,dfhtrel,trel,K,formerstate1);
pb=pb+p(i);
i
end
pb=pb/tim;
sprintf('pb=%f',pb)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -