1、 第 1 学期专业综合课程设计课 程 设 计 报 告题 目: 脉冲编码调制(PCM)实现 专 业: 电子信息工程 班 级: 09电信(2)班 姓 名: 指导老师: 王银花 电气工程系11月16日1、任务书课题名称脉冲编码调制(PCM)实现 指导老师(职称)王银花(讲师) 实施时间第1学期 第11周学生姓名学号负担任务MATLA介绍及程序设计方法采样、量化和编码原理PCM抽样MATLAB实现PCM量化MATLAB实现设计目标结合PCM抽样、量化、编码原理,利用MATLAB软件编程和绘图功效,完成了对脉冲编码调制(PCM)系统建模和仿真分析。利用采样、量化和编码原理建模拟真对脉冲编码调制(PCM)
2、系统原理进行建模和仿真分析。设计要求用仿真软件对其进行验证,使其满足以下要求:(1)实现脉冲编码调制(PCM)技术三个过程:采样、量化和编码(2)模拟信号最高频率限制在4KHZ以内;(3)分别实现64级电平均匀量化和压缩率非均匀量化;(4)根据13折线A律特征编成8位码。摘 要本设计结合PCM抽样、量化、编码原理,利用MATLAB软件编程和绘图功效,完成了对脉冲编码调制(PCM)系统建模和仿真分析。课题中关键分为三部分对脉冲编码调制(PCM)系统原理进行建模和仿真分析,分别为采样、量化和编码原理建模拟真。同时仿真分析了采样和欠采样波形、均匀量化和A律13折线非均匀量化量化性能及其差异。经过对脉
3、冲编码调制(PCM)系统原理仿真分析,设计者对PCM原理及性能有了更深刻认识,并深入掌握MATLAB软件使用。 关 键 词:脉冲编码调制(PCM) 均匀和非均匀量化MATLAB仿真目 录摘 要3第一章 绪论5第二章 MATLAB介绍52.1 MATLAB软件介绍52.2 MATLAB程序设计方法6第三章PCM脉冲编码原理63.1 模拟信号抽样及频谱分析63.1.1 信号采样63.1.2 抽样定理73.1.3 采样信号频谱分析73.2 量化83.2.1 量化定义83.2.2 量化分类83.2.3 MATLABA律13折线量化143.3 PCM编码153.3.1 编码定义153.3.2 码型选择1
4、53.3.3 PCM脉冲编码原理16第四章 PCMMATLAB实现174.1 PCM抽样MATLAB实现174.2 PCM量化MATLAB实现214.2.1 PCM均匀量化MATLAB实现214.2.2 PCM A律非均匀量化MATLAB实现224.3 PCM A律13折线编码MATLAB实现24参考文件27正文第一章 绪论数字通信作为一个新型通信手段,早在20世纪30年代就已经提出。在1937年,英国人里费(A.H.Reeves)提出了脉冲编码调制(PCM)方法。以后揭开了近代数字传输序幕。PCM系统优点是:抗干扰性强;失真小;传输特征稳定,远距离再生中继时噪声不累积,而且能够采取有效编码、
5、纠错编码和保密编码来提升通信系统有效性、可靠性和保密性。另外,因为PCM能够把多种消息(声音、图像、数据等等)全部变换成数字信号进行传输,所以能够实现传输和交换一体化综合通信方法,而且还能够实现数据传输和数据处理一体化综合信息处理。故它能很好地适应信息化社会对通信要求。PCM缺点是传输带宽宽、系统较复杂。不过,伴随数字技术飞跃发展这些缺点也不关键。所以,PCM是一个极有发展前途通信方法。第二章 MATLAB介绍2.1 MATLAB软件介绍MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB能够进行矩阵运算、绘制函数和数
6、据、实现算法、创建用户界面、连接其它编程语言程序等,关键应用于工程计算、控制设计、信号处理和通讯、图像处理、信号检测、金融建模设计和分析等领域。MATLAB基础数据单位是矩阵,它指令表示式和数学、工程中常见形式十分相同,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同事情简捷得多,而且mathwork也吸收了像Maple等软件优点,使MATLAB成为一个强大数学软件。在新版本中也加入了对C,FORTRAN,C+ ,JAVA支持。能够直接调用,用户也能够将自己编写实用程序导入到MATLAB函数库中方便自己以后调用,另外很多MATLAB爱好者全部编写了部分经典程序,用户能够直接进行
7、下载就能够用。MATLAB 应用范围很广,包含信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析和计算生物学等众多应用领域。附加工具箱(单独提供专用 MATLAB 函数集)扩展了 MATLAB 环境,以处理这些应用领域内特定类型问题。其含有以下特点:友好工作平台和编程环境;简单易用程序语言;强大科学计算机数据处理能力;出色图形处理功效;应用广泛模块集合工具箱;实用程序接口和公布平台;应用软件开发(包含用户界面)。2.2 MATLAB程序设计方法MATLAB有两种工作方法:一个是交互式命令行工作方法;另一个是M文件程序工作方法。在前一个工作方法下,MATLAB被当做一个高级数学演算纸
8、和图形表现器来使用,MATLAB提供了一套完整而易于使用编程语言,为用户提供了二次开发工具,下面关键介绍MATLAB控制语句和程序设计基础方法。用MATLAB语言编写程序,称为M文件。M文件有两类:命令文件和函数文件。二者区分在于:命令文件没有输入参数,也不返回输出参数;而函数文件能够输入参数,也能够返回输出参数。命令文件对MATLAB工作空间变量进行操作,而且函数文件中定义变量为局部变量,当函数文件实施完成时,这些变量被清除。M文件能够使用任何编辑程序建立和编辑,而通常常见是使用MATLAB提供M文件窗口。首先从MATLAB命令窗口File菜单中选择New菜单项,在选择M-file命令,将得
9、到M文件窗口。在M文件窗口输入M文件内容,输入完成后,选择此窗口File菜单save as命令,将会得到save as 对话框。在对话框File 框中输入文件名,再选择OK按钮即完成新M文件建立。然后在从MATLAB 命令窗口File 菜单中选择Open对话框,则屏幕出现Open对话框,在Open对话框中File Name 框中输入文件名,或从右边directories框中打开这个M文件。在M文件所在目录,再从File Name 下面列表框中选中这个文件,然后按OK按钮即打开这个M文件。在M文件窗口能够对打开M文件进行编辑修改。在编辑完成后,选择File菜单中Save命令能够把这个编辑过M文件
10、报存下来。当用户要运行命令较多或需要反复运行多条命令时,直接从键盘逐步输入命令显得比较麻烦,而命令文件则能够很好地处理这一问题。我们能够将需要运行命令编辑到一个命令文件中,然后再MATLAB命令窗口输入该命令文件名字,就会次序实施命令文件中命令。第三章 PCM脉冲编码原理3.1 模拟信号抽样及频谱分析3.1.1 信号采样离散时间信号通常是有连续时间信号经周期采样得到。完成采样功效器件称为采样器,下图所表示为采样器示意图。图中Xa(t)表示模拟信号,Xa(nt)表示采样信号,T为采样周期,n=0,1,2,。通常能够把采样器视为一个每隔T秒闭合一次电子开关S。在理想情况下,开关闭合时间满足T。实际
11、采样过程可视为脉冲调幅过程,Xa(t)为调制信号,被调脉冲载波p(t)是周期为T、脉宽为周期脉冲串。当0时理想采样情况是实际采样一个科学、本质抽象,同时可使数学推导得到简化。下面关键讨论理想采样。图3.1 采样器示意图及波形图3.1.2 抽样定理抽样也称取样、采样,是把时间连续模拟信号变换为时间离散信号过程。抽样定理是指:一个频带限制在(0,fH)内时间连续信号m(t),假如以T1/2fH秒间隔对它进行等间隔抽样,则m(t)将被所得到抽样值完全确定。这意味着,若m(t)频谱在某一角频率H上为零,则m(t)中全部信息完全包含在其间隔小于1/2fH秒均匀抽样序列里。换句话说,在信号最高频率分量每一
12、个周期内起码应抽样两次。依据抽样脉冲特征,抽样分为理想抽样、自然抽样(亦称曲顶取样)、瞬时抽样(亦称平顶抽样);依据被抽样信号性质,抽样又分为低通抽样和带通抽样。即使抽样种类很多,不过间隔一定时间,抽样连续信号样值,把信号从时间上离散,这是多种抽样共同作用,抽样是模拟信号数字化立即分多路理论基础。我们考察一个频带限制在(0,fH)赫信号m(t)。假定将信号m(t)和周期性冲击函数(t)相乘,图所表示,乘积函数便是均匀间隔为T秒冲激序列,这些冲激强度等于对应瞬时上m(t)值,它表示对函数m(t)抽样。我们用ms(t)表示此已抽样函数,即有ms(t)=m(t)(t)上述关系以下图所表示。 图3.2
13、 抽样示意图3.1.3 采样信号频谱分析频谱分析自然要使用快速傅里叶变换FFT了,对应命令即 fft ,简单使用方法为:Y=fft(b,N),其中b即是采样数据,N为fft数据采样个数。通常不指定N,即简化为Y=fft(b)。Y即为FFT变换后得到结果,和b元素数相等,为复数。以频率为横坐标,Y数组每个元素幅值为纵坐标,画图即得数据b幅频特征;以频率为横坐标,Y数组每个元素角度为纵坐标,画图即得数据b相频特征。对于现实中情况,采样频率fs通常全部是由采样仪器决定,即fs为一个给定常数;其次,为了取得一定精度频谱,对频率分辨率F有一个人为要求,通常要求F100秒;由采样时间ts和采样频率fs即可
14、决定采样数据量,即采样总点数N=fs*ts。这就从理论上对采样时间ts和采样总点数N提出了要求,以确保频谱分析正确度。3.2 量化3.2.1 量化定义模拟信号进行抽样以后,其抽样值还是随信号幅度连续改变,即抽样值m(kT)能够取无穷多个可能值,假如用N个二进制数值信号来代表该样值大小,方便利用数字传输系统来传输该样值信息,那么N个二进制信号只能同M=2N个电平样值相对应,而不能同无穷多个电平值相对应。这么一来,抽样值必需被划分成M个离散电平,此电平被称作量化电平。或说,采取量化抽样值方法才能够利用数字传输系统来实现抽样值信息传输。利用预先要求有限个电平来表示模拟抽样值过程称为量化。抽样是把一个
15、时间连续信号变换成时间离散信号,而量化则是将取值连续抽样变换成取值离散抽样。通常,量化器输入是随机模拟信号。能够用合适速率对此随机信号m(t)进行抽样,并根据预先要求,将抽样值m(kT)变换成M个电平q1,q2,qM之一,有mq(kTs)=qi,若mi-1m(kTs)V,h(i)=V;end if f(i)=-V,h(i)=-V;end flag=0; for j=2:L/2+1 if(flag=0) if(f(i)p(j) h(i)=p(j-1); flag=1; end; end; end; for j=L/2+2:L+1 if(flag=0) if(f(i)=0 if(x(i)=-t)
16、y(i)=-(a*-x(i)/(1+log(a); else y(i)=-(1+log(a*-x(i)/(1+log(a); end endend仿真结果:图4.5 A律量化波形4.3 PCM A律13折线编码MATLAB实现PCM均匀量化MATLAB程序设计按以下步骤进行:(1)确定输入模拟信号;(2)依据给均匀量化原理确定非均匀量化算法程序;(3)将上述编码十进制数转化成8位二进制数。PCM抽样MATLAB实现源程序以下:function a_13code()t=0:0.000025:0.00025;y=sin(8000*pi*t)z=line13(y)c=pcmcode(z)function y=line13(x)x=x/max(x);z=sign(x);x=abs(x);for i=1:length(x) if(x(i)=0)&(x(i)=1/64)&(x(i)=1/32)&(x(i)=1/16)&(x(i)=1/8)&(x(i)=1/4)&(x(i)=1/2)&(x(i)=1) y(i)=1/4*x(i)+6/8; end end end end end end endendy=z.*y;functi