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

📄 decode.m

📁 该代码实现了 ook等不同通信通信方式的误码率的仿真比较。
💻 M
字号:
    
function decode_out=decode(detect,s)
% 这是一个译码程序,
% 它将检测得到的序列detect译码成原来的序列decode_out;
%
% 子函数decode_pact将detect序列分组译码;
%

count=0;
leng1=length(detect);
j=1;

switch s 
% OOK start
    case 'ook'
        decode_out=detect;
% OOK end

% DPPM start        
    case 'dppm'
      for i=1:1:leng1
          if detect(i)==0
              count=count+1;
          else
              p=decode_pact(count);
              if j==1
                  decode_out=p;
                  j=j+1;
              else
                  decode_out=cat(2,decode_out,p);
              end
              count=0;
          end
      end
% DPPM end   

% PPM start
    case 'ppm'
        for i=1:16:(leng1-15)
            i1=i;
            while detect(i1)==0&&i1<(i+15) 
                i1=i1+1;
                count=count+1;
            end
            p=decode_pact(count);
            if j==1
               decode_out=p;
               j=j+1;
            else
               decode_out=cat(2,decode_out,p);
            end
            count=0;
        end       
% PPM end 

end
% end of decode


% sub function 子函数
%
function p=decode_pact(count)
%
% DPPM,PPM 分组解码
%

p=zeros(1,4);

%   分组解码   
switch count
    case 0
        p=[0,0,0,0];
    case 1
        p=[1,0,0,0];
    case 2
        p=[0,1,0,0];
    case 3
        p=[1,1,0,0];
    case 4
        p=[0,0,1,0];
    case 5
        p=[1,0,1,0];
    case 6
        p=[0,1,1,0];
    case 7
        p=[1,1,1,0];
    case 8
        p=[0,0,0,1];
    case 9
        p=[1,0,0,1];
    case 10
        p=[0,1,0,1];
    case 11
        p=[1,1,0,1];
    case 12
        p=[0,0,1,1];
    case 13
        p=[1,0,1,1];
    case 14
        p=[0,1,1,1];
    case 15
        p=[1,1,1,1];
end

% end

⌨️ 快捷键说明

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