📄 pcm.m
字号:
function code=pcmcoding(S)
% A率PCM编码,采用逐次比较法
%S为输入信号
%判断S的极性
z=sign(S);
%求S的最大值
MaxS=max(abs(S));
%归一化
S=abs(S/MaxS);
%量化
QuantizS=S*2048;
%代码存储矩阵
code=zeros(length(S),8);
%各个量化值的段落码
for i=1:length(S)
if QuantizS>=128
code(i,2)=1;
elseif QuantizS>=512
code(i,3)=1;
elseif QuantizS>=1024
code(i,4)=1;
end
end
%各个量化值的段内码
DuanluoN=zeros(length(S));
for i=1:length(S)
DuanluoN(i)=bin2dec(num2str(code(i,2:4)));
end
DuanluoQidianDianping=[0,16,32,64,128,256,512,1024];
DuanluoLianghuaJiange=[1,1,2,4,8,16,32,64];
for i=1:length(S)
k=dec2bin((QuantizS(i)-DuanluoQidianDianping(DuanluoN(i)))/DuanluoLianghuaJiange(DuanluoN(i)));
code(i,5)=k/8;
code(i,6)=mod(k,8)/4;
code(i,7)=mod(k,4)/2;
code(i,8)=mod(k,2)/2;
end
for i=1:length(S)
if z(i)>0
code(i,1)=1;
elseif z(i)<0
code(i,1)=0;
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -