function [a_quan,code]=u_PCM(a,n)
%a,n,a_quan,code 分別為輸入序列,量化電平數(shù),量化輸出和量化編碼序列
amax=max(abs(a));
a_quan=a/amax;
b_quan=a_quan;
d=2/n;
q=d.*[a:n-1];
q=q-((n-1)/2)*d;
for i=1:n
a_quan(find((q(i)-d/2<=a_quan)&(a_quan<=q(i)+d/2)))=q(i).*ones(1,length(find((q(i)-d/2<=a_quan)&(a_quan<=q(i)+d/2))));
b_quan(find(a_quan==q(i)))=(i-1).*ones(1,length(find(a_quan==q(i))));
a_quan=a_quan*amax;
nu=ceil(log2(n));
for i=1:length(a)
for j=nu:-1:0
if(fix(b_quan(i)/2^j)==1)
code(i,(nu-j))=1;
b_quan(i)=b_quan(i)-2^j;
end
end
end
end
%Start SystemView Definition ---------------
%SVU nInputs=1;
%SVU InputCaption0='In0';
%SVU nOutputs=1;
%SVU OutputCaption0='Out0';
%SVU nParameters=1;
%SVU ParameterCaption0='Param0';
%SVU FunctionSyntax='[Out0] = u_PCM(In0,Param0);';
%End SystemView Definition -----------------