📄 decode.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 + -