谁能举一个PCM编码的例子 很简单的例子就可以

来源:百度知道 编辑:UC知道 时间:2024/05/23 19:42:50
我就知道PCM是从模拟信号取样后变成数字信号的,比如一个模拟信号是sin x,然后如何进行PCM编码呢?好像先编个8位的码 知道的朋友帮帮我 明天要考试 最好用sin x举个例子

文件名:pcm_encode

function[out]=pcm_encode(x)
%将X转化为PCM编码
n=length(x);
%-4096<x<4096
%确定极性码
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;