Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-07-03, 10:08   #3
xiyelover
初级会员
 
注册日期: 2009-07-02
帖子: 5
声望力: 0
xiyelover 正向着好的方向发展
默认 回复: PCM编码及解码

在哪里搜啊。我没搜到啊。我有个关于PCM的程序。但是有错误啊。我不知道错在哪里。你帮我看看。function [out]=pcm_encode(x)
n=length(x)
for i=1:n;
if x(i)>0;
out(i,1)=1;
else
out(i,1)=0;
end
if abs(x(i))>=0&abs(x(i))<32;
out(i,2)=0;out(i,3)=0;out(i,4)=0;step=2;st=0;
elseif 32<=abs(x(i))&abs(x(i))<64;
out(i,2)=0;out(i,3)=0;out(i,4)=1;step=2;st=32;
elseif 64<=abs(x(i))&abs(x(i))<128;
out(i,2)=0;out(i,3)=1;out(i,4)=0;step=4;st=64;
elseif 128<=abs(x(i))&abs(x(i))<256;
out(i,2)=0;out(i,3)=1;out(i,4)=1;step=8;st=128;
elseif 256<=abs(x(i))&abs(x(i))<512;
out(i,2)=1;out(i,3)=0;out(i,4)=0;step=16;st=256;
elseif 512<=abs(x(i))&abs(x(i))<1024;
out(i,2)=1;out(i,3)=0;out(i,4)=1;step=32;st=512;
elseif 1024<=abs(x(i))&abs(x(i))<2048;
out(i,2)=1;out(i,3)=1;out(i,4)=0;step=64;st=1024;
elseif 2048<=abs(x(i))&abs(x(i))<4096 ;
out(i,2)=1;out(i,3)=1;out(i,4)=1;step=128;st=2048;
else
out(i,2)=1;out(i,3)=1;out(i,4)=1;step=128;st=2048;
end
if(abs(x(i))>=4096)
out(i,2:8)=[1 1 1 1 1 1 1];
else tmp=floor((abs(x(i))-st)/step);
t=dec2bin(tmp,4)-48;
out(i,5:8)=t(1:4);
end
end
out=reshape(out',1,8*n);
xiyelover 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 21:21


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.