MATLAB编码实现均匀PCM与非均匀PCM

上传人:豆浆 文档编号:768318 上传时间:2017-05-14 格式:DOC 页数:8 大小:140KB
返回 下载 相关 举报
MATLAB编码实现均匀PCM与非均匀PCM_第1页
第1页 / 共8页
MATLAB编码实现均匀PCM与非均匀PCM_第2页
第2页 / 共8页
MATLAB编码实现均匀PCM与非均匀PCM_第3页
第3页 / 共8页
MATLAB编码实现均匀PCM与非均匀PCM_第4页
第4页 / 共8页
MATLAB编码实现均匀PCM与非均匀PCM_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《MATLAB编码实现均匀PCM与非均匀PCM》由会员分享,可在线阅读,更多相关《MATLAB编码实现均匀PCM与非均匀PCM(8页珍藏版)》请在金锄头文库上搜索。

1、 均匀 PCM 与非均匀 PCM实验目的1 掌握 MATLAB语言的函数调用,提高编程编程能力。2 掌握量化信噪比的基本概念。3. 学习均匀量化和非均匀量化的基本原理,加深对非均匀量化的理解。实验原理均匀量化的基本原理在脉冲编码调制中,模拟信号首先以高于奈奎斯特的速率采样,然后将所的样本量化。假设模拟信号是以- max, max表示的区间内分布的,而量化电平数很大。量化电平可以是相等的或是不相等的;前者就属于均匀 PCM,而后者就是非均匀 PCM。关于量化的几个基本概念,量化间隔;量化误差;量化信噪比。 (1)相邻量化电平间距离称量化间隔, 用“”表示。(2)设抽样值为 ,量化后的值为 , x

2、q(kTs)与 x(kTs)的误差称为量化误差,又()sxkT()qskT称为量化噪声;量化误差不超过/2 ,而量化级数目越多, 值越小,量化误差也越小。(3)衡量量化的性能好坏最常用指标是量化信噪比(S q/Nq),其中 Sq表示量化信号值 xq(kTs)产生的功率,N q表示量化误差功率,量化信噪比越大,则量化性能越好。在均匀 PCM中,长度为 2Xmax的区间- max, max被划分为 N个相等的子区间,每一子区间长度为=2X max/N。如果 N足够大,那么在每一子区间内输入的密度函数就能认为是均匀的,产生的失真为 D= 2/12。如果 N是 2的幂次方即 ,那么就要求用 比特来表示

3、每个量化电平。这就意味着,vv如果模拟信号的带宽是 ,采样又是在奈奎斯特率下完成的,那么传输 PCM 信号所要求W的带宽至少是 (实际上 1.5 比较接近于实际) 。v这时失真由下式给出,(1-1)2maxa134vDN如果模拟信号的功率用 表示,则信号/量化噪声的比(SQNR)由下式给出2X(1-2)2max2a34vuXSQR式中 表示归一化输入,定义为uX(1-3)maxuX以分贝(dB)计的 SQNR 为(1-4)24.86|dBudBSQNRv量化以后,这些已量化的电平用 比特对每个已量化电平进行编码.编码通常使用自然二进v制码(NBC),即最低电平映射为全 0序列,最高电平映射为全

4、 1序列,全部其余的电平按已量化值的递增次序映射。非均匀量化的基本原理正变换: ,其中 是归一化输入( ) , 是一个参数,ln(1)sg(xygxx1x在标准 律的非线性中它等于 255。反变换: ()sn()yx在非均匀量化 PCM中,输入信号首先通过一非线性环节以减小输入的动态范围,再将输出加到某一均匀 PCM系统上。在接收端,输出再通过另一非线形环节,该环节是在发送端所用的非线性环节的逆特征。这样,总的效果就等效于一个在量化电平之间具有非均匀间隔的 PCM系统。非均匀量化时,量化器随着输入信号的大小采用不同的量化间隔,大信号时采用大的量化间隔,小信号时采用小的量化间隔,可以以较少的量化

5、电平数达到输入动态范围的要求一般对语音信号传输来说,所使用的非线性可以是 律的非线性,或是 A律的非线性,中国和欧洲采用 A率压缩特性(A=87.56),北美和日本采用 律压缩特性( =255),压缩特性分别如下: 律: (1-5)1()(1)nxyA 律: (1-6)0|1n|1|AAyx式中,x 为归一化输入,y 为归一化输出,A 、 为压缩系数,式(3-1)也可以表示为,(1-7)l()sgn(1xygx本实验主要仿真 律的有关特性。如图 1-1所示为不同 值对应的输入输出关系曲线.图 1-1 不同 值对应的输入输出关系律的非线性的逆为(1)sgn()yx量化信噪比的基本概念实验内容:(

6、1) 均匀量化 产生一个幅度为 1 和 的正弦信号,用均匀量化方法分别用 8 电平和16 电平进行量化,在同一个坐标轴上画出原信号和已量化信号,比较这两种情况下的SQNR。(2) 均匀量化 产生长度为 500 的零均值、单位方差的高斯随机变量序列,利用u_pcm.m 求当量化电平数为 64 时所得的 SQNR。求出该序列的前 5 个值、相应的量化值和相应的码字。(3) 非均匀量化 产生一个长度为 500,按 分布的随机变量序列。用 16、64 和 128(0,1)N量化电平数和 的 律非线性,并求 SQNR。25(4)Matlab 代码: (5)(1)下面给出的 M文件 u-pcm.m 用采样

7、值序列和要求的量化电平数作输入,求得已量化序列、编码序列和产生的 SQNR(以 dB计)。function sqnr,a_quan,code=u_pcm(a,n)%U_PCM uniform PCM encoding of a sequence% SQNR,A_QUAN,CODE=U_PCM(A,N)% a=input sequence.% n=number of quantization levels (even).% sqnr=output SQNR (in dB).% a_quan=quantized output before encoding.% code=the encoded o

8、utput.amax=max(abs(a);a_quan=a/amax;b_quan=a_quan;d=2/n;q=d.*0:n-1;q=q-(n-1)/2)*d;for i=1:na_quan(find(q(i)-d/2 0)=ones(size(find(x0);y(find(x0)=-ones(size(find(x0);y(find(x=0)=zeros(size(find(x=0);mula_pcm.mfunction sqnr,a_quan,code=mula_pcm(a,n,mu)%MULA_PCM mu-law PCM encoding of a sequence% SQNR,

9、A_QUAN,CODE=MULA_PCM(A,N,MU).% a=input sequence.% n=number of quantization levels (even).% sqnr=output SQNR (in dB).% a_quan=quantized output before encoding.% code=the encoded output.y,maximum=mulaw(a,mu);sqnr,y_q,code=u_pcm(y,n);a_quan=invmulaw(y_q,mu);a_quan=maximum*a_quan;sqnr=20*log10(norm(a)/n

10、orm(a-a_quan);主程序:令向量 a 是按 N(0,1)产生的长度为 500 的向量,即 a=randn(1,500)pcm3.ma=randn(1,500);sqnr16,a_quan16,code16=mula_pcm(a,16,255);sqnr64,a_quan64,code64=mula_pcm(a,64,255);sqnr128,a_quan128,code128=mula_pcm(a,128,255);Y,I=sort(a);sqnr16sqnr64sqnr128实验分析: (1)(2) a_quan64_result =-0.4331 -1.6931 0.1181 0.2756 -1.1419code64_result =Columns 1 through 170 1 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0Columns 18 through 301 1 0 0 0 1 1 0 1 0 0 0 1(3)sqnr16 =13.5210sqnr64 =25.4650sqnr128 =31.7463每次实验结果有差异!随机产生实验总结:量化误差与量化比特数成正比,每增加一个比特,即每增加两倍的量化电平,误差约增加 6db.

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号