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

📄 decoder_pc.m

📁 本源码介绍了OFDM的基本原理的仿真
💻 M
字号:
%%%%%%%%%%%% this is the program of punctured convolutional code decoder%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [decode1]=decoder(codedbit,R)
    switch R,
    case 1/3,
         trel = poly2trellis(9,[557 663 711]); 
         tcode = -2*codedbit+1;
         decode1 = vitdec(tcode,trel,40,'trunc','unquant');

     case 1/2,
         trel = poly2trellis(7,[171 133]);   % Define trellis.
         tcode = -2*codedbit+1;
         decode1 = vitdec(tcode,trel,35,'trunc','unquant');

     case 2/3,
         trel = poly2trellis(7,[171 133]);  % Define trellis.
         tcode = -2*codedbit+1;
         codedbit1=zeros(length(codedbit)*4/3,1);
         codedbit1(1:4:end)=tcode(1:3:end);
         codedbit1(2:4:end)=tcode(2:3:end);
         codedbit1(3:4:end)=tcode(3:3:end);
         decode1 = vitdec(codedbit1,trel,35,'trunc','unquant');
      
     case 3/4,
         trel = poly2trellis(7,[171 133]);  % Define trellis.
         tcode = -2*codedbit+1;
         codedbit1=zeros(length(codedbit)*3/2,1);
         codedbit1(1:3:end)=tcode(1:2:end);
         codedbit1(2:3:end)=tcode(2:2:end);
         decode1 = vitdec(codedbit1,trel,35,'trunc','unquant');
   
     case 4/5,
         trel = poly2trellis(7,[171 133]);  % Define trellis.
         tcode = -2*codedbit+1;
         codedbit1=zeros(length(codedbit)*8/5,1);
         codedbit1(1:8:end) = tcode(1:5:end); % Write actual data.
         codedbit1(3:8:end) = tcode(2:5:end);
         codedbit1(5:8:end) = tcode(3:5:end);
         codedbit1(7:8:end) = tcode(4:5:end);
         codedbit1(8:8:end) = tcode(5:5:end);
         decode1 = vitdec(codedbit1,trel,40,'trunc','unquant');
      case 4/9,
         trel = poly2trellis(9,[557 663 711]); 
         tcode = -2*codedbit+1;
         codedbit1=zeros(length(codedbit)*4/3,1);
         codedbit1(1:4:end)=tcode(1:3:end);
         codedbit1(2:4:end)=tcode(2:3:end);
         codedbit1(3:4:end)=tcode(3:3:end);
         decode1 = vitdec(codedbit1,trel,40,'trunc','unquant');
     case 15/16,
         trel = poly2trellis(7,[171 133]);  % Define trellis.
         tcode = -2*codedbit+1;
         codedbit1=zeros(length(codedbit)*15/8,1);
         codedbit1(1:15:end) = tcode(1:8:end);
         codedbit1(3:15:end) = tcode(2:8:end);
         codedbit1(5:15:end) = tcode(3:8:end);
         codedbit1(7:15:end) = tcode(4:8:end);
         codedbit1(9:15:end) = tcode(5:8:end);
         codedbit1(11:15:end) = tcode(6:8:end);
         codedbit1(13:15:end) = tcode(7:8:end);
         codedbit1(15:15:end) = tcode(8:8:end);
         decode1 = vitdec(codedbit1,trel,35,'trunc','unquant');
       otherwise,
      error('Unsupported Rate');
  end

⌨️ 快捷键说明

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