《A律PCM编码系统设计与仿真 通信原理课程设计报告.doc》由会员分享,可在线阅读,更多相关《A律PCM编码系统设计与仿真 通信原理课程设计报告.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 通信原理课程设计报告 题 目:A律PCM编码系统设计与仿真姓 名: 学 院: 专 业: 指导教师: 完成日期: 2012 年 1 月 7日专业课程设计任务书指导单位:自动化工程学院指导教师:专业和班级:学生姓名:设计题目:A律PCM编码系统设计与仿真主要技术指标:1. 输入信号:s(t)=Asin(2ft+);2. 输入信号幅值:A=-700dB;3. 输入信号频率:f=4Hz;4. 抽样频率:fs=100Hz;要求完成项目:1. 了解A律13折线近似与PCM编解码原理;2. 画出信号原始波形和PCM编码、译码后的波形;3. 画出不同幅度A下,PCM译码后的量化信噪比;4. 与均匀量化的线性
2、编码比较分析;要求完成时间:2012年1月9日目 录目 录2摘 要3第一章 基本原理41.1 脉冲编码调制(PCM):41.2 A律PCM编码规则:41.2.1 A律压缩律原理:41.2.2 13折线近似的原理41.2.3 PCM编码规则5第二章 系统设计72.1.实验意义72.2.课程设计要求72.3总体系统设计框图7第三章 程序块流程设计与检验83.1A律PCM编码模块83.1.1 A律PCM编码规则:83.1.2 PCM编码流程83.2.A律PCM译码模块93.3.均匀量化编码模块10第四章 程序测试114.1 连接全程序114.2 图形显示和噪声性能比较11第五章 总结135.1 心得
3、体会135.2 意见和建议13附录:14参考文献14摘 要数字脉冲编码调制(PCM)是目前模拟信号数字化的基本方法,将时间离散的抽样值序列经量化、编码变换为二进制数字序列。量化是对抽样值的取值离散,根据量化间隔的不同选取分为均匀量化和非均匀量化,非均匀量化可以有效地改善信号的量化信噪比。语音信号的量化常采用ITU建议的对数特性的A律(中国和欧洲)和律(北美和日本)压缩的非均匀量化,为了便于采用数字电路实现量化,通常采用13折线和15折线近似代替A律和律。第一章 基本原理1.1 脉冲编码调制(PCM):脉冲编码调制(PulseCodeModulation),是对信号进行抽样和量化时,将所得的量化
4、值序列进行编码,变换为数字信号的调制过程。它主要经过3个过程:抽样、量化和编码。抽样过程将连续时间模拟信号变为离散时间、连续幅度的抽样信号,量化过程将抽样信号变为离散时间、离散幅度的数字信号,编码过程将量化后的信号编码成为一个二进制码组输出。1.2 A律PCM编码规则:1.2.1 A律压缩律原理:理想对数压缩:需对的小信号段进行修正 图1. 对数压缩特性曲线 A律修正思想:(1) .过原点做的切线,切点b;(2) .切线ob段+曲线bcA律压缩曲线。A压缩律是指符合下式的对数压缩规律:式中,x为压缩器归一化输入电压;y为压缩器归一化输出电压;A为常数,决定压缩程度。A压缩律中的常数A不同,则压
5、缩曲线的形状也不同,它将特别影响小电压时的信号量噪比的大小,在实用中,选择A等于87.6。1.2.2 13折线近似的原理A律压缩表示式是一条连续的平滑曲线,用电子线路很难准确的实现。现在由于数字电路技术的发展,这种特性很容易用数字电路来近似实现,13折线特性就是近似于A压缩律的特性,其曲线见图2. 图2. 13折线压缩特性曲线 图中横坐标x在01区间中分为不均匀的8段。1间的线段称为第8段;间的线段称为第7段;间的线段称为第6段;依此类推,直到0间的线段称为第1段。图中纵坐标y则均匀的划分为8段。将这8段相应的坐标点(x,y)相连,就得到了一条折线。 1.2.3 PCM编码规则输入信号x进行A
6、律压缩,取A=87.6.采用13折线近似,在第一象限,输出x端点对应:x=(),图形表示如图1.在13折线法中采用的折叠码有8位。其中第一位C1表示量化值的极性正负。后面的7位分为段落码和段内码两部分,用于表示量化值的绝对值。其中第24位(C2C4)是段落码,共计3位,可以表示8种斜率的段落;其他4位(C5C8)为段内码,可以表示每一段落内的16种量化电平。段内码代表的16个量化电平是均匀划分的。所以,这7位码总共能表示128种量化值。 图3. A律曲线与13折线近似第二章 系统设计2.1.实验意义 本课程设计试图通过亲自完成均匀量化和非均匀量化的编码、译码的整体设计,加深对PCM编码的原理的
7、理解,提高系统编程、系统测试以及系统分析的能力。2.2.课程设计要求(1) .根据技术指标,理解PCM脉冲编码的原理;(2) .根据技术指标,实现各模块的程序代码;(3) .连接各模块,运行出系统中的抽样信号和量化信号;(4) .测试分析均匀量化和非均匀量化的噪声性能;(5) .对测试结果进行分析讨论;2.3总体系统设计框图 图4. A律PCM编解码的系统框图第三章 程序块流程设计与检验3.1A律PCM编码模块3.1.1 A律PCM编码规则:在13折线法中采用的折叠码有8位。其中第一位C1表示量化值的极性正负。后面的7位分为段落码和段内码两部分,用于表示量化值的绝对值。其中第24位(C2C4)
8、是段落码,共计3位,可以表示8种斜率的段落;其他4位(C5C8)为段内码,可以表示每一段落内的16种量化电平。段内码代表的16个量化电平是均匀划分的。所以,这7位码总共能表示128种量化值。输入信号x后,极性码C1的判断方法是:x0,C1=1;段落码C2、C3、C4的判断方法是:;段内码C5、C6、C7、C8的判断方法是:,要注意x各段量化间隔不等。 图5. 段落码和段内码的编码规则3.1.2 PCM编码流程输入信号x后,先判断x的符号,x0时C1=1,x0时C1=0;判断完符号后将信号进行归一化和量化,再进行段落判断以及段内判断,最后将C1C8输出。流程图如下 输入信号S判断符号 归一化、量
9、化输出 段内判断 段落判断 3.2.A律PCM译码模块对已经编码的信号进行译码时,先输入已经编码的码组,根据极性码的规则提取符号,判断符号位,接着再判断段落位置和段内位置,最后将译码后的结果输出,其译码流程图如下:输出判断符号位 判断段内位置 判断段落位置提取符号 输入码组code3.3.均匀量化编码模块在均匀量化时,设模拟抽样信号的取值范围为ab,量化电平数是M,则在均匀量化时的量化间隔是:。在编程时首先将抽样信号归一化:amax=max(abs(a);a_quan=a/amax; b_quan=a_quan;然后对归一化的输入信号序列进行量化:for i=1:n index=find(q(
10、i)-d/2=a_quan)&(a_quan=q(i)+d/2); a_quan(index)=q(i).*ones(1,length(index); b_quan(find(a_quan=q(i)=(i-1).*ones(1,length(find(a_quan=q(i)enda_quan=a_quan*amax;nu=ceil(log2(n);code=zeros(length(a),nu);for i=1:length(a) for j=nu:-1:0 if(fix(b_quan(i)/(2j)=1) code(i,nu-j)=1; b_quan(i)=b_quan(i)-2j; end
11、 endend最后还要计算出均匀量化信噪比:sqnr=20*log10(norm(a)./norm(a-a_quan)。第四章 程序测试4.1 连接全程序1. 首先对输入的信号进行参数设定:抽样频率fs=40,dt=1/fs,t=0:dt:2,输入的正弦信号幅度不同,vm1=-70:5:0,这是以分贝为单位的,要将他转换为以伏特为单位的vm=10.(vm1/20);2. 开始画图调用各个模块的函数:PCM均匀量化编码sqnrM,zxx,zz=upcm(x,M),PCM编码y=pcm_encode(sxx),PCM解码yy=pcm_decode(y,v);3. 还要计算噪声平均功率与信号平均功率
12、来得到信号的量化信噪比:nq(m)=sum(x-yy).*(x-yy)/length(x); sq(m)=mean(yy.2); snr(m)=(sq(m)/nq(m);4. 最后将原始信号波形,PCM译码后的波形,不同幅度下PCM编码后的量化信噪比以及均匀量化的量化信噪比画出来。4.2 图形显示和噪声性能比较在matlab上运行主函数pcm_e_decode.m,可得到原始信号波形,PCM译码后的波形,不同幅度下PCM编码后的量化信噪比以及均匀量化的量化信噪比的波形 图6. 原始抽样信号(上)和PCM译码后的重建信号(下)原始抽样信号与PCM译码后的信号都是正弦波,可以看出经过PCM译码后的
13、重建信号与原始信号相比没有失真,译码正确。图7. A律PCM编码与均匀量化编码的量化信噪比的比较从上图可以看出:(1)对均匀编码和非均匀编码,量化信噪比随着输入信号幅度的变化而变化;(2)在输入正弦信号幅度相同的情况下,经过A律13折线近似的PCM非均匀量化编码后的信号量化信噪比要比均匀量化编码后的信噪比小,因此,可以得出结论:非均匀量化可以有效地改善量化信噪比。第五章 总结5.1 心得体会做这个课程实际开始的时候,由于之前学的这部分内容不太记得了,有点无从下手的。重新看课本和给出的实验原理,学习了一下相关理论知识。由于之前学过相关的内容,再次温习花的时间也不会太多。这个课程设计从开始做到完成
14、,虽然总共花的时间并不算长,但是让我明白了无论是这次的通信原理课程设计还是其他工程或是毕业设计,乃至今后的实习和工作中,都是一个温故而知新的过程,技术的更新是非常迅速的,但是理论基础是根本,是必不可少的,只有学好基础知识才有可能谈其他创新和发展。另外在课程设计的过程中也会遇到很多困难。首先,此次设计用的设计软件是MATLAB,由于软件编程一直是我的薄弱项,所以开始就有畏难的情绪。但是通过仔细阅读老师给出的参考程序片段,上网搜索已有的程序案例,读懂相关的程序功能,并根据实际需求作出适当修改,就能符合设计要求。其次,在程序运行的过程中也会由于子程序引用时的格式错误,使得不能编译通过,通过重新了解相
15、关格式,仔细检查程序和向其他同学请教等方式,发现程序中的错误。因此,很多事情不是因为难以做到,我们才失去信心;相反,是因为我们失去信心,事情才显得困难,所以克服畏难情绪,静下心来,通过努力,很多看起来困难的事情其实并不难。总体而言,这次课程设计使我受益匪浅,让我更加深入的了解了PCM脉冲编码调制的原理,进一步学会MATLAB编程,对以后的学习和工作起到了一定的作用。5.2 意见和建议 此次课程设计主要是学习A律PCM编码的相关原理,通过MATLAB软件编程观察相关波形并进行分析比较,在条件允许的情况下还可以再进行仿真,并与硬件结合,观察实际性能。这样更能综合软硬件知识,提高实际动手能力。附录:
16、参考文献1 通信原理教程 樊昌信等 电子工业出版社 2009年.2 精通Matlab6.5版 张志涌等 北京航空航天大学出版社 2005年.3 通信原理基于Matlab的计算机仿真 郭文彬等 北京邮电大学出版社 2006年.4 通信系统建模与仿真 韦岗等 电子工业出版社 2007年.附录完整程序代码:均匀量化编码:functionsqnr,a_quan,code=upcm(a,n)amax=max(abs(a);a_quan=a/amax; %抽样值归一化b_quan=a_quan;d=2/n;q=d.*0:n-1-(n-1)/2*d;%对归一化的输入信号序列进行量化for i=1:n ind
17、ex=find(q(i)-d/2=a_quan)&(a_quan0 out(i,1)=1; else out(i,1)=0 endif abs(x(i)0 & abs(x(i)=32 & abs(x(i)=64 & abs(x(i)=128 & abs(x(i)=256 & abs(x(i)=512 & abs(x(i)=1024 & abs(x(i)=2048 & abs(x(i)=4096) out(i,2:8)=1 1 1 1 1 1 1; else tmp=floor(abs(x(i)-st)/step); t=dec2bin(tmp,4)-48; %函数dec2bin输出的是ASCI
18、I字符串,48对应0 out(i,5:8)=t(1:4); endendout=reshape(out,1,8*n);PCM译码:functionout=pcm_decode(in,v)%decode the input pcm code%in, input the pcm code 8bits sample%v, quantized leveln=length(in);in=reshape (in,8,n/8);slot(1)=0;slot(2)=32;slot(3)=64;slot(4)=128;slot(5)=256;slot(6)=512;slot(7)=1024;slot(8)=20
19、48;step(1)=2;step(2)=2;step(3)=4;step(4)=8;step(5)=16;step(6)=32;step(7)=64;step(8)=128;for i=1:n/8 ss=2*in(1,i)-1; tmp=in(2,i)*4+in(3,i)*2+in(4,i)+1; st=slot(tmp); dt=(in(5,i)*8+in(6,i)*4+in(7,i)*2+in(8,i)*step(tmp)+0.5*step(tmp); out(i)=ss*(st+dt)/4096*v;end主程序中:figure(1)for k=1:length(vm) for m=1
20、:2 x=vm(k)*sin(2*pi*4*t+2*pi*rand(1); sqnrM,zxx,zz=upcm(x,M); %PCM均匀量化编码 srm(m)=sqnrM; v=vm(k); xx=x/v; %normalize sxx=floor(xx*4096); y=pcm_encode(sxx); %PCM编码 yy=pcm_decode(y,v); %PCM解码 nq(m)=sum(x-yy).*(x-yy)/length(x); %噪声平均功率 sq(m)=mean(yy.2); %信号平均功率 snr(m)=(sq(m)/nq(m); %信号量化信噪比 usnrq(k)=mean(srm); snrq(k)=10*log10(mean(snr); %量化信噪比end