永发信息网

matlab解码求助

答案:1  悬赏:30  手机版
解决时间 2021-03-26 08:47
  • 提问者网友:戎马万世
  • 2021-03-26 03:04
matlab解码求助
最佳答案
  • 五星知识达人网友:大漠
  • 2021-03-26 03:41
1.PCM 编码实现(M函数)

function code=PCMcoding(Range,S)搜索
code=zeros(1,8);
Normalization=abs(S)/Range;
deta=1/2048;
if sign(S)==1
code(1)=1;
else
code(1)=0;
end
detas=ceil(Normalization/deta);
if detas>128
code(2)=1;
if detas>512
code(3)=1;
if detas>1024
code(4)=1;
end
elseif detas>256
code(4)=1;
end
elseif detas>32
code(3)=1;
if detas>64
code(4)=1;
end
elseif detas>16
code(4)=1;
end

Tribal=bin2dec(num2str(code(2:4)))+1;
if Tribal==1
Interval=1;
else Interval=(2^(Tribal+2))/16;
end
if Tribal==1
code(5)=(2^3)*Interval code(6)=code(5)*(2^3)*Interval+(2^2)*Interval code(7)=code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+(2^1)*Interval code(8)=code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+code(7)*(2^1)*Interval+(2^0)*Intervalelse
code(5)=2^(Tribal+2)+(2^3)*Interval code(6)=2^(Tribal+2)+code(5)*(2^3)*Interval+(2^2)*Interval code(7)=2^(Tribal+2)+code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+(2^1)*Interval code(8)=2^(Tribal+2)+code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+code(7)*(2^1)*Interval+(2^0)*Intervalend

2。PCM 解码实现(M函数)

%PCM Decoding
function S=PCMdecoding(Range,code)
deta=Range/2048;
Tribal=bin2dec(num2str(code(2:4)))+1;
if Tribal==1
Interval=1;
else Interval=(2^(Tribal+2))/16;
end
if Tribal==1
S=code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+code(7)*(2^1)*Interval+code(8)*(2^0)*Interval+Interval;
else
S=2^(Tribal+2)+code(5)*(2^3)*Interval+code(6)*(2^2)*Interval+code(7)*(2^1)*Interval+code(8)*(2^0)*Interval+Interval;
end
S=S*deta;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯