⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rx_init_viterbi.m

📁 编译成功的源代码
💻 M
字号:
function rx_init_viterbi

global sim_consts;
global prev_state;
global prev_state_outbits;

sim_consts = struct( 'ConvCodeGenPoly', [1 0 1 1 0 1 1;1 1 1 1 0 0 1 ]);%定义卷积编码器的生成矩阵
prev_state = zeros(64, 2);
prev_state_outbits = zeros(64, 2, 2);

for state = 0:63
   state_bits = (fliplr(kron(dec2bin(state,6),1))~=48);%移位寄存器的状态
   input_bit= state_bits(1)
   for transition = 0:1
      prev_state_bits = [state_bits(2:6) transition];%上一级的移位寄存器的状态
      prev_state(state+1,transition+1) = base2dec(fliplr(prev_state_bits)+48,2);%用来存储上一级移位寄存器状态
      
      %第一个生成器的输出码字
      prev_state_outbits(state+1, transition+1, 1) = 2*(rem(sum(sim_consts.ConvCodeGenPoly(1,:).* ...
         [input_bit prev_state_bits ]),2)) - 1;
     %第二个生成器的输出码字
      prev_state_outbits(state+1, transition+1, 2) = 2*(rem(sum(sim_consts.ConvCodeGenPoly(2,:).* ...
         [input_bit prev_state_bits]),2)) - 1;
   end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -