📄 宋柳佳的pcm编码.m
字号:
function k=pcm(a)
A=a/max(abs(a)); %归一化
A=abs(A);
p=[0 1/128 1/64 1/32 1/16 1/8 1/4 1/2 1];%段落比较划分
c=[1 1 2 4 8 16 32 64]; %每段的最小量化间隔
for i=1:length(a)
for j=1:length(p)
if (A(i)<p(j))
break;
end;
end;
f(i)=j-2; %取得段落码
m(i)=16*(A(i)-p(j-1))/(p(j)-p(j-1)); %取得段内码
if(a(i)>0) %判定极性码
d(i)=1;
else
d(i)=0;
end;
l(i,1)=fix(f(i)/4);f(i)=mod(f(i),4); %对折线段落进行编码(十进制转化为二进制)
l(i,2)=fix(f(i)/2);f(i)=mod(f(i),2);
l(i,3)=fix(f(i));
m(i)=fix(m(i));
if(m(i)==16) %对段落内段进行编码(十进制转化为二进制)
m(i)=15;
end;
n(i,1)=fix(m(i)/8);m(i)=mod(m(i),8);
n(i,2)=fix(m(i)/4);m(i)=mod(m(i),4);
n(i,3)=fix(m(i)/2);m(i)=mod(m(i),2);
n(i,4)=fix(m(i));
end;
d=d';
k=[d,l,n];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -