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

上传人:lis****210 文档编号:174119345 上传时间:2022-12-14 格式:DOCX 页数:9 大小:64.21KB
返回 下载 相关 举报
MATLAB编码实现均匀PCM与非均匀PCM_第1页
第1页 / 共9页
MATLAB编码实现均匀PCM与非均匀PCM_第2页
第2页 / 共9页
MATLAB编码实现均匀PCM与非均匀PCM_第3页
第3页 / 共9页
点击查看更多>>
资源描述
均匀PCM与非均匀PCM实验目的1.掌握MATLAB语言的函数调用,提高编程编程能力。2 掌握量化信噪比的基本概念。3. 学习均匀量化和非均匀量化的基本原理,加深对非均匀量化的理解。实验原理均匀量化的基本原理在脉冲编码调制中,模拟信号首先以高于奈奎斯特的速率采样,然后将所的样本量化。 假设模拟信号是以-Xmax, Xmax表示的区间内分布的,而量化电平数很大。量化电平可 以是相等的或是不相等的;前者就属于均匀PCM,而后者就是非均匀PCM。关于量化的几个基本概念,量化间隔;量化误差;量化信噪比。相邻量化电平间距离称量化间隔,用“ ”表示。(2)设抽样值为x(kT ),量化后的值为x (kT), x(kTs)与x(kTs)的误差称为量化误差,又 s q s q称为量化噪声;量化误差不超过4 /2,而量化级数目越多,值越小,量化误差也越小。 衡量量化的性能好坏最常用指标是量化信噪比(Sq/Nq),其中Sq表示量化信号值Xq(kTs)产生 的功率,N表示量化误差功率,量化信噪比越大,则量化性能越好。9q在均匀PCM中,长度为2X的区间-X , X 被划分为N个相等的子区间,每一子maxmax max区间长度为=2X /No如果N足够大,那么在每一子区间内输入的密度函数就能认为是均 ma匀的,产生的失真为D=2/12。如果N是2的幕次方即N二2v,那么就要求用v比特来表示每个量化电平。这就意味着,如果模拟信号的带宽是W,采样又是在奈奎斯特率下完成的,那么传输PCM信号所要求的 带宽至少是vW (实际上1.5 vW比较接近于实际)。这时失真由下式给出,(1-1)A 2 x 2 x 2=max = max123N 23 x 4v如果模拟信号的功率用X 2表示,则信号/量化噪声的比(SQNR)由下式给出SQNR = 3N 2X 2x2max=3 x 4vx2(1-2)max=3 x 4vX 2式中 X 表示归一化输入,定义为 u(1-3)uxmax以分贝(dB)计的SQNR为SQNR u 4.8 + 6v + X 21(14)dB u dB量化以后,这些已量化的电平用v比特对每个已量化电平进行编码.编码通常使用自然二进 制码(NBC),即最低电平映射为全0序列,最高电平映射为全1序列,全部其余的电平按已量化 值的递增次序映射。非均匀量化的基本原理正变换:y = g (x)=吨+卩卅)sgn(x),其中x是归一化输入(|x| 1),卩是一个参数, ln(l+ 卩)在标准卩律的非线性中它等于255。反变换: x = (1+ 卩_1 sgn( y)在非均匀量化 PCM 中,输入信号首先通过一非线性环节以减小输入的动态范围,再将输 出加到某一均匀PCM系统上。在接收端,输出再通过另一非线形环节,该环节是在发送端所 用的非线性环节的逆特征。这样,总的效果就等效于一个在量化电平之间具有非均匀间隔的 PCM 系统。非均匀量化时,量化器随着输入信号的大小采用不同的量化间隔,大信号时采用大的量 化间隔,小信号时采用小的量化间隔,可以以较少的量化电平数达到输入动态范围的要求一般对语音信号传输来说,所使用的非线性可以是卩律的非线性,或是A律的非线性, 中国和欧洲采用A率压缩特性(A=87.56),北美和日本采用卩律压缩特性(卩=255),压缩特 性分别如下:1n(1+ u Ixl)(1-5)(1-6)“律:y = 工(1+詁(T1)AxA 律:1 + 1nAy= 1 + 1nA I x I1 + 1nA式中,x为归一化输入,y为归一化输出,A、为压缩系数,式(3-1)也可以表示为,y=g(x)=ln;(sgn( x) ln(1+ u)(1-7)本实验主要仿真U律的有关特性。如图1-1所示为不同U值对应的输入输出关系曲线.图1-1不同卩值对应的输入输出关系卩律的非线性的逆为(1+ 卩 y) -1sgn(y)量化信噪比的基本概念实验内容:(1) 均匀量化产生一个幅度为1和O= 1的正弦信号,用均匀量化方法分别用8电平和16 电平进行量化,在同一个坐标轴上画出原信号和已量化信号,比较这两种情况下的 SQNR。(2) 均匀量化 产生长度为500的零均值、单位方差的高斯随机变量序列,利用u_pcm.m 求当量化电平数为64时所得的SQNR。求出该序列的前5个值、相应的量化值和相应 的码字。(3) 非均匀量化 产生一个长度为 500,按 N(0,1) 分布的随机变量序列。用 16、 64 和 128 量化电平数和255的r律非线性,并求SQNR。(4) Matlab 代码:(】)下面给出的M文件u_pcmm用采样值序列和要求的量化电平数作输入,求得已量化序列、编码序列和产生的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 beforeencoding.code=the encoded output.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 = a_quan) & (a_quan = q(i)+d/2)=. q(i).*ones(1,length(find(q(i)-d/2 = a_quan) & (a_quan 0)=ones(size(find(x0);y(find(x0)=-ones(size(find(x0);y(find(x=0)=zeros(size(find(x=0);mula_pcmmfunction sqnr,a_quan,code=mula_pcm(a,n,mu)%MULA_PCM mu-law PCM encoding of a sequence% SQNR,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 beforeencoding.%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)/norm(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.1419 code64_result =Columns 1 through 1701101000101010000Columns 18 through 301100011010001(3)sqnr16 =13.5210sqnr64 =25.4650sqnr128 =31.7463每次实验结果有差异!随机产生实验总结:量化误差与量化比特数成正比,每增加一个比特,即每增加两倍的量化电 平,误差约增加 6db.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!