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

📄 vtb_decoding.m

📁 信道编码程序
💻 M
字号:
function [state,decoding_x1]=vtb_decoding(symbol_per_frame, H, r, table);                    
                      S(1,:,:)=[-1,-1;1 1;];
                      S(2,:,:)=[-1,1;1 -1;];
                      h=abs(H(1,1))^2+abs(H(1,2))^2;
      for i=1:2,
          for m=1:2,
    BX(i,m)=h-2*real(r(1,1)*conj(H(1,1)*S(table(1,i,1),m,1)*table(1,i,2))+r(1,2)*conj(H(1,2))*S(table(1,i,1),m,1));          %  decoding  x1 
    BY(i,m)=h-2*real(r(1,1)*conj(H(1,2)*S(table(1,i,1),m,2))-r(1,2)*conj(H(1,1))*S(table(1,i,1),m,2)*conj(table(1,i,2)));          %  decoding  x2 
          end
      path(i,:)=BX(i,:)+BY(i,:); 
          [y,x]=min(path(i,:));
       state(1, i, :)=[1,x-1, y, i-1];  %[current state,decoding x1, path accumulation, decoding x2];
   end;

          
            for k=2:symbol_per_frame,  % path matric calculation
             
                for i=1:2,
                   for m=1:2,
    BX(i,m)=h-2*real(r(k,1)*conj(H(1,1)*S(table(1,i,1),m,1)*table(1,i,2))+r(k,2)*conj(H(1,2))*S(table(1,i,1),m,1));          %  decoding  x1 
    BY(i,m)=h-2*real(r(k,1)*conj(H(1,2)*S(table(1,i,1),m,2))-r(k,2)*conj(H(1,1))*S(table(1,i,1),m,2)*conj(table(1,i,2)));          %  decoding  x2 
    
    BX1(i,m)=h-2*real(r(k,1)*conj(H(1,1)*S(table(2,i,1),m,1)*table(2,i,2))+r(k,2)*conj(H(1,2))*S(table(2,i,1),m,1));          %  decoding  x1 
    BY1(i,m)=h-2*real(r(k,1)*conj(H(1,2)*S(table(2,i,1),m,2))-r(k,2)*conj(H(1,1))*S(table(2,i,1),m,2)*conj(table(2,i,2)));          %  decoding  x2 
 
                   end
      path1(i,:)=BX(i,:)+BY(i,:);
      path2(i,:)=BX1(i,:)+BY1(i,:);
          [y1,x1]=min(path1(i,:));
          [y2,x2]=min(path2(i,:));
   
                    zz(1)=y1+state(k-1,1,3);
                     zz(2)=y2+state(k-1,2,3);
                     [y, x]=min(zz);
                     switch x,
                         case 1,
                            state(k, i,:)=[1,x1-1, y,i-1];
                        case 2,
                            state(k, i, :)=[2,x2-1, y,i-1];
                        otherwise,
                             display('matric is error');
                     end;
                 end;
             end;

⌨️ 快捷键说明

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