中易网

matlab解码求助

答案:2  悬赏:0  
解决时间 2021-02-10 09:26
matlab解码求助
最佳答案
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)*Interval else
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)*Interval end

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;
全部回答
我做过一个。 编码: % b1; %%%输入代码中出现的字符,按ascii排序 % m1; %%%b1中字符在codes中首次出现的位置 % n1; %%%codes中字符在b1中出现的位置 function coding_callback(incodes) global decod clc; digits(16);%%设置输出编码的小数点位数 incodes=input('please input the encoding string:\n','s'); incodes=['state tree']; [b1, m1, n1] = unique(incodes, 'first'); incodes(sort(m1)); length(b1); for ii=1:length(b1) a(ii)=length(find(n1(1:end)==ii)); rate(ii)=a(ii)/length(n1); %%%b1中每个字符出现的概率区间 low1(1)=0; %%%b1区间下限 high1(1)=rate(1); %%%b1区间上限 if ii>1 low1(ii)=high1(ii-1); high1(ii)=low1(ii)+rate(ii); end end % high1 %%%每个字符的上限 % low1 %%%每个字符的下限 % rate %%%每个字符所占有比例 %%%%%算术编码过程%%%%%% judge=n1(1); rang(1)=high1(judge)-low1(judge); low(1)=low1(judge); high(1)=high1(judge); for jj=2:length(incodes) judge=n1(jj); low(jj)=low(jj-1)+low1(judge).*rang(jj-1); %%%%codes中第jj个字符编码后的下限 high(jj)=low(jj-1)+high1(judge).*rang(jj-1); %%%%codes中第jj个字符编码后的上限 rang(jj)=high(jj)-low(jj); %%%%codes中第jj个字符编码后的区间 end r=vpa(rang); x=vpa(low(length(incodes))); y=vpa(high(length(incodes))); decod=(x+y)./2 set(decod,'string',num2str(decod)); save code.mat x y r decod low1 high1 b1 incodes rate
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
摄像头的电源是独立供电有什么优点呢!
paypal用国内的手机注册的在国外能用么
我女朋友对我太冷怎么办?
化德农贸批发市场在什么地方啊,我要过去处理
在x战警电影里,x教授说:我是艾克斯·查尔斯
方太油烟机真的太差了,我买的实用天数只有一
延吉市公安局我要买多大的房子才能在延吉落户
商业企业主营业务成本怎么算
为什么有那么多黑众泰的人
赞美济南的名句
欧洲工业革命起于何时?
洗脸的时候是睁眼睛还是闭眼睛啊?
有谁在洛阳交通技工驾校学过驾照,学校咋样啊
江字开头的古风名字最好五个字
我的裤子裆部老是磨烂 请问是什么原因 该什么
推荐资讯
奔驰和梅赛德斯,奔驰和戴姆勒分别是什么关系?
壁挂式太阳能集热效果如何?
洒水车泵吸不起来水怎么办?
海悦宾馆地址在哪,我要去那里办事
强交险可不可以一下子交几年的保险
SBL比赛在哪看视频
怎样让女生身上充满香味?
别克君越p0340进气凸轮轴传感器回路
深圳到达州的机票是多少钱?
物业费包括楼道照明费吗
真绣家纺地址在哪,我要去那里办事
濉溪南三桥兽医站在哪
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?