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

📄 bicustm_vb_sandp.m

📁 一种比特交织编码调制
💻 M
字号:
function [est,est_p]=BICUSTM_VB_SandP(rec_s, g, L_a) 
% 
% Frame size, info. + tail bits
L_total = length(L_a);
[n,K] = size(g); 
m = K - 1;
nstates = 2^m;
Infty = 1e10;
%%
% Set up the trellis defined by g.
[next_out, next_state, last_out, last_state] = trellis(g);

% Initialize path metrics to -Infty
for t=1:L_total+1
   for state=1:nstates
      path_metric(state,t) = -Infty;
   end
end

% Trace forward to compute all the path metrics
path_metric(1,1) = 0;
for t=1:L_total
   y = rec_s(2*t-1:2*t);
   for state=1:nstates
      sym0 = last_out(state,1:2);
      sym1 = last_out(state,3:4);
      state0 = last_state(state,1);
      state1 = last_state(state,2);
      Mk0 = y*sym0' - L_a(t)/2 + path_metric(state0,t);
      Mk1 = y*sym1' + L_a(t)/2 + path_metric(state1,t);
      
      if Mk0>Mk1
         path_metric(state,t+1)=Mk0;
         Mdiff(state,t+1) = Mk0 - Mk1;
         prev_bit_s(state, t+1) = 0;
      else
         path_metric(state,t+1)=Mk1;
         Mdiff(state,t+1) = Mk1 - Mk0;
         prev_bit_s(state,t+1) = 1;
      end

   end
end
      
% For decoder 1, trace back from all zero state, 
% for decoder two, trace back from the most likely state
mlstate(L_total+1) = 1;

% Trace back to get the estimated bits, and the most likely path
for t=L_total:-1:1
   est(t)=prev_bit_s(mlstate(t+1),t+1);
   mlstate(t)=last_state(mlstate(t+1),est(t)+1);
   %x=last_out(mlstate(t+1),(est(t)+1)*2);
   %est_p(t)=(x+1)/2;
   %est_p(t)=(last_out(mlstate(t+1),(est(t)+1)*2)+1)/2;
   est_p(t)=(next_out(mlstate(t),(est(t)+1)*2)+1)/2;
end

                  
               
      
        
   

⌨️ 快捷键说明

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