📄 cnc_trellis.m
字号:
% function [nxt_s,nxt_o,nxt_s_c1,nxt_s_c2,lst_s_c1,lst_s_c2] = cnc_trellis(code_g);function [nxt_s,nxt_o] = cnc_trellis(code_g);% 只适应于 1/2 码率的二进制非递归卷积码[n,K] = size(code_g);M=2^(K-1);code_g_oct=zeros(1,2);%这一步的目的:将二进制转换成八进制%这一步的意义:poly2trellis的需要for j1=1:2 sum_dec=0; for i1=1:K sum_dec=sum_dec+code_g(j1,K+1-i1).*(2^(i1-1)); %二进制转换成十进制 end code_g_oct(1,j1)=str2num(dec2base(sum_dec,8)); %十进制转换成八进制endnxt_s_c1=-1*ones(M,2);nxt_s_c2=-1*ones(M,2);trellis=poly2trellis(K,code_g_oct);nxt_o_dec=trellis.outputs;nxt_s=trellis.nextStates;nxt_o_0=nxt_o_dec(:,1);nxt_o_1=nxt_o_dec(:,2);temp1_0=de2bi(nxt_o_0,2,'left-msb');temp1_1=de2bi(nxt_o_1,2,'left-msb');nxt_o(:,1:2)=temp1_0;nxt_o(:,3:4)=temp1_1;% temp1_0_c1=temp1_0(:,1);% temp1_1_c1=temp1_1(:,1);% nxt_s_0=nxt_s(:,1);% nxt_s_1=nxt_s(:,2);% Index1=find(temp1_0_c1==0);% Index2=find(temp1_1_c1==0);% nxt_s_c1(Index1,1)=nxt_s_0(Index1);% nxt_s_c1(Index2,1)=nxt_s_1(Index2);% Index1=find(temp1_0_c1==1);% Index2=find(temp1_1_c1==1);% nxt_s_c1(Index1,2)=nxt_s_0(Index1);% nxt_s_c1(Index2,2)=nxt_s_1(Index2);% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% temp1_0_c2=temp1_0(:,2);% temp1_1_c2=temp1_1(:,2);% Index1=find(temp1_0_c2==0);% Index2=find(temp1_1_c2==0);% nxt_s_c2(Index1,1)=nxt_s_0(Index1);% nxt_s_c2(Index2,1)=nxt_s_1(Index2);% Index1=find(temp1_0_c2==1);% Index2=find(temp1_1_c2==1);% nxt_s_c2(Index1,2)=nxt_s_0(Index1);% nxt_s_c2(Index2,2)=nxt_s_1(Index2);% % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % [value,lst_s_c1]=sort(nxt_s_c1);% lst_s_c1=lst_s_c1-1;% [value,lst_s_c2]=sort(nxt_s_c2);% lst_s_c2=lst_s_c2-1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -