(1)A律压缩特性:
其中,A 为压缩系数;y 为归一化的压缩器输出电压;x 为归一化的压缩器输入电压
(2)MATLAB实现
function y=a_pcm(x,a) %x为一个序列,值在0到1,A律量化将得到的结果存在序列y中
t=1/a; %a为一个正实数,大于1
for i=1:length(x)
if x(i)>=0 %判断输入序列值是否大于0
if (x(i)<=t)
y(i)=(a*x(i))/(1+log(a)); %若值小于1/a,用此算法
else
y(i)=(1+log(a*x(i)))/(1+log(a)); %若值大于1/a,用此算法
end
else
if (x(i)>=-t)
y(i)=-(a*-x(i))/(1+log(a)); %若值小于0,用此算法
else
y(i)=-(1+log(a*-x(i)))/(1+log(a));
end
end
end
上述为A律量化函数
x=[0:0.001:1];%定义幅度序列
y1=a_pcm(x,1);%参数为1的A律曲线
y2=a_pcm(x,10);
y3=a_pcm(x,87.65);
plot(x,y1,':',x,y2,'-',x,y3,'-.');
legend('A=1','A=10','A=87.65')
title('对数量化特性曲线')
t=0:0.0001:0.005;
y=sin(1000*pi*t); %输入模拟信号
figure
subplot(2,1,1)
plot(t,y)
axis([0,0.005,-1,1])
xlabel('时间')
ylabel('幅值')
title('原始信号')
z=a_pcm(y,87.65); %实用中,A=87.65,sin(0)到sin(0.005)的量化值
z
subplot(2,1,2)
plot(t,z)
axis([0,0.005,-1,1])
xlabel('时间')
ylabel('幅值')
title('量化信号')