目录
1.算法概述
在通信中,由于信号量噪比的不恒定而影响通信质量。为了对不同的信号强度保持信号量噪比恒定,在理论上要求压缩特性为对数特性。为了使信号量噪比保持恒定,引入A压缩律与μ压缩律以及相应的近似算法-13折线法和15折线法。 对A律13折线法与μ律15折线法进行理论研究,然后利用MATLAB实现仿真,对A律13折线法与μ律15折线法进行性能分析。最后得到一般来说,U律的15折线比A律的13折线,各个段落的斜率都相差2倍,所以小信号的信号量噪比也比A律大一倍,但是对于大信号来说,u律比a律差。
A律压扩
其特性可表示为:
其中x表示为归一化的压缩器输入电压;y为归一化的压缩器输出电压,A为压扩参数,表示压缩程度。
很明显,小信号时为线性特性,大信号时近似为对数特性。这种压扩特性常把压缩、量化和编码合为一体。A律可用13段折线逼近(相当于A=87.6),便于用数字电路实现。
13段折线的压缩特性如下图。过程为:
第一步:把x(x>0 部分)划分为不均匀的8段。第一分点取在V/2处,然后每段都是剩下部分的1/2。依次取第八段为V~V/2,第七段为V/2~V/4;第一段为V/128~0。
第二步:把每段均匀划分为16等份,每一份表示一个量化级,显然8段共16x8=128= 个量化级,需要二进制7位编码表示。可以看出每个量化级是不均匀的。在小信号的量化台阶很小,使小信号时量化噪声减小。如果按均匀量化计算,以最小台阶 为单位,最大信号需用L=128X16=2048=个量化级表示,既需要11位编码。这样非均匀编码使小信号量化台阶缩小了16倍,相当于小信号信噪比改善了20dB。
第三步:把y轴均匀划分为8段,每段均匀分为16分。这样y也分为128个量化级,与x轴的128个量化级对应。因此,压扩特性各段的斜率 是不同的。第一段斜率
其他段为:
以上分段为x取正值时的情况。而x取负值时,压扩特性与x取正值成奇对称。在正8段和负8段中,正1,2段和负1,2段斜率相同,合为一段。所以原来的16段折线变为13段折线。
U律压扩
μ律压扩的数学解析式:
其中:x为输入信号的归一化值;y为压扩后的信号。对话音信号编码,常采用μ=255,这样适量化信噪比改善约24dB。由于上式的是一个近似的对数关系,因此也称为近似对数压缩律,其15折线:近似m律:
μ律(m-Law)压扩主要用在北美和日本等地区的数字电话通信中。m为确定压缩量的参数,它反映最大量化间隔和最小量化间隔之比,通常取100≤m≤500。由于m律压扩的输入和输出关系是对数关系,所以这种编码又称为对数PCM。
2.仿真效果预览
matlab2022a仿真
3.MATLAB部分代码预览
function ypcm=unmulaw(name)
%本函数针对国际通用的PCM量化mu律15特性近似编码进行解码
% %从文件读入压缩编码
% fid=fopen([name,'.u'],'rb');
% x=fread(fid,'int8');
x=name;
s=sign(x);
x=abs(x);
%归一化
x=x/128;
ypcm=zeros(length(x),1);
%基于15折线的分段解码映射
for i=1:length(x)
if x(i)<1/8 %序列值位于第1折线
ypcm(i)=8/255*x(i);
elseif x(i)<2/8 %序列值位于第2折线
ypcm(i)=16/255*(x(i)-1/16);
elseif x(i)<3/8 %序列值位于第3折线
ypcm(i)=32/255*(x(i)-5/32);
elseif x(i)<4/8 %序列值位于第4折线
ypcm(i)=64/255*(x(i)-17/64);
elseif x(i)<5/8 %序列值位于第5折线
ypcm(i)=128/255*(x(i)-49/128);
elseif x(i)<6/8 %序列值位于第6折线
ypcm(i)=256/255*(x(i)-129/256);
elseif x(i)<7/8 %序列值位于第7折线
ypcm(i)=512/255*(x(i)-321/512);
else %序列值位于第8折线
ypcm(i)=1024/255*(x(i)-769/1024);
end
end
%还原符号
ypcm=ypcm.*s;
A01-17M
4.完整MATLAB程序
V