1、通信原理课程设计报告PCM 编码系统的设计班级:通信 05-5 班指导教师:张子红学号:22 号姓名:滕莹设计日期:2007 年 11 月 19 日 至 2007 年 11 月 23 日第 1 章 PCM 编码器概述PCM 编码(又叫脉冲编码调制):数字通信的编码方式之一。主要过程是将话音、图像等模拟信号每隔一定时间进行取样,使其离散化,同时将抽样值按分层单位四舍五人取整量化,同时将抽样值按一组二进制码来表示抽样脉冲的幅值。1.1 引言近十年来,随着大规模集成电路的飞速发展,已可将话路滤波器和 PCM 编码器集成在同一芯片上,这使 PCM 在光纤通信,数字微波通信,卫星通信等数字通信领域中获得
2、了更广泛的应用“然而在某些需要 PCM 编码器的实际应用中,如数字交换机中的信号音的产生和实现,单靠 PCM 编解码芯片来完成整个编解码功能,在电路设计和实现上都显得烦琐和笨拙,相反如果运用软件方法来实现 PCM 编解码芯片的部分功能并与PCM 编解码芯片相结合来共同完成整个电路设计上的编解码,不仅设计简单,灵活方便,而且往往可以达到事半功倍的结果。PCM 通信系统采用基带传输的 PCM 通信系统发送端通常由抽样量化和编码三部分组成,其中量化和编码共同完成模拟到数字(A/D 变换)功能信源 f(t)经脉冲序列p(t)抽样产生零阶抽样保持信号 fs0(t),它是 PAM 信号,具有离散时间,连续
3、幅度,量化过程就是将此信号转换成离散时间,离散幅度的多电平数字信号,从数学角度理解,量化是把一个连续幅度值的无限数集合映射到一个离散幅度值有限的集合 fD(t)为编码后 PCM 信号 fD(t)经数字-模拟转换(D/A 变换)后恢复为 PAM 信号 fs0(t),再经 1/Sa(x)低通补偿滤波器即可重建 f(t)。 视频 A/D 转换器又称编码器,它是将视频模拟信号经过取样,量化,编码三个环节的操作转换成等幅脉冲序列的数字信号。这一过程称为脉冲编码调制(PCM), 从本质上讲,脉码调制也是一种频谱变换。如对具有 0fm 带宽的原始信号基带,以 fs 频率对其进行幅度取样,相当于基带对 fs
4、及其各次谐波进行调幅,形成许多间隔为 fs 的双连带信号。 1.2 PCM 编码器原理在 PCM 中,波形的每个样本独立进行编码。然而,以奈奎斯特速率或更高速率采样的绝大多数信号(包括语音信号),其相邻的样本之间呈现明显的相关性,换言之,相邻采样幅度间的平均变化较小。所以,利用采样中多余度的编码方案将使语音信号的码率降低。一种简单的解决方法就是对相邻样本之差编码而不是对样本本身编码,由于相邻样本之差比实际样本幅度小,所以表示差信号需要较小的位数。这种普通方法的一种改进方案是用前面的 n 个样本根据一定的规律来预测当前的样本,然后将预测值与实际值的误差进行量化后传输,在根据误差信号,采用和发送端
5、相同的预测方法恢复出原始信号。第 2 章 设计原理及步骤2.1 PCM 编码器仿真2.1.1 PCM 编码器的设计要求对输入信号为语音信号(多频信号)或正弦信号(单频信号) ,完成采样、13折线均匀量化,编码数为 8 的 PCM 编码。2.1.2 PCM 技术编码过程模拟信号数字化必须经过三个过程,即抽样、量化和编码,以实现话音数字化的脉冲编码调制(PCM,Pulse Coding Modulation)技术。1. 抽样(Samping)抽样是把模拟信号以其信号带宽 2 倍以上的频率提取样值,变为在时间轴上离散的抽样信号的过程。例如,话音信号带宽被限制在 0.33.4kHz 内,用 8kHz
6、的抽样频率(fs) ,就可获得能取代原来连续话音信号的抽样信号。对一个正弦信号进行抽样获得的抽样信号是一个脉冲幅度调制(PAM)信号,如下图对模拟正弦信号的抽样所示。对抽样信号进行检波和平滑滤波,即可还原出原来的模拟信号。2. 量化(quantizing)抽样信号虽然是时间轴上离散的信号,但仍然是模拟信号,其样值在一定的取值范围内,可有无限多个值。显然,对无限个样值一一给出数字码组来对应是不可能的。为了实现以数字码表示样值,必须采用“四舍五入”的方法把样值分级“取整” ,使一定取值范围内的样值由无限多个值变为有限个值。这一过程称为量化。量化后的抽样信号与量化前的抽样信号相比较,当然有所失真,且
7、不再是模拟信号。这种量化失真在接收端还原模拟信号时表现为噪声,并称为量化噪声。量化噪声的大小取决于把样值分级“取整”的方式,分的级数越多,即量化级差或间隔越小,量化噪声也越小。3. 编码(Coding)量化后的抽样信号在一定的取值范围内仅有有限个可取的样值,且信号正、负幅度分布的对称性使正、负样值的个数相等,正、负向的量化级对称分布。若将有限个量化样值的绝对值从小到大依次排列,并对应地依次赋予一个十进制数字代码(例如,赋予样值 0 的十进制数字代码为 0) ,在码前以“” 、 “”号为前缀,来区分样值的正、负,则量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。简单
8、高效的数据系统是二进制码系统,因此,应将十进制数字代码变换成二进制编码。根据十进制数字代码的总个数,可以确定所需二进制编码的位数,即字长。这种把量化的抽样信号变换成给定字长的二进制码流的过程称为编码。话音 PCM 的抽样频率为 8kHz,每个量化样值对应一个 8 位二进制码,故话音数字编码信号的速率为 8bits8kHz64kb/s。量化噪声随量化级数的增多和级差的缩小而减小。量化级数增多即样值个数增多,就要求更长的二进制编码。因此,量化噪声随二进制编码的位数增多而减小,即随数字编码信号的速率提高而减小。自然界中的声音非常复杂,波形极其复杂,通常我们采用的是脉冲代码调制编码,即PCM 编码。P
9、CM 通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字编码。2.2 XXXXXX2.3 PCM 编码器实施步骤1、输出时钟和帧同步时隙信号观测用示波器同时观测抽样时钟信号(TP504)和输出时钟信号(TP503) ,观测时以 TP504 作为同步信号。2、抽样时钟信号与 PCM 编码数据测量将跳线开关 K501 设置在 T 位置,用函数信号发生器产生一个频率为 100HZ,电平为 2V 的正弦波测试信号,送入信号测试端口 J005 和 J006。用示波器同时观测抽样时钟信号(TP504)和编码输出数据信号(TP502) ,观测时以 TP504 作为同步信号。第 3 章 调试分析常 用
10、 1KHz 的 正 弦 信 号 作 为 输 入 信 号 来 测 量 PCM 编 译 码 器 的 动 态 范 围 。语 音 信 号 的 抽 样 信 号 频 率 为 8KHz, 为 了 不 发 生 频 谱 混 叠 , 常 将 语 音 信 号经 截 止 频 率 为 3.4KHz 的 低 通 滤 波 器 处 理 后 再 进 行 A/D 处 理 。 语 音 信 号 的 最低 频 率 一 般 为 300Hz。 TP3057 编 码 器 的 低 通 滤 波 器 和 高 通 滤 波 器 决 定 了 编 译码 系 统 的 频 率 特 性 , 当 输 入 信 号 频 率 超 过 这 两 个 滤 波 器 的 频 率
11、 范 围 时 , 译 码 输出 信 号 幅 度 迅 速 下 降 。 这 就 是 PCM 编 译 码 系 统 频 率 特 性 的 含 义 。 动 态 范 围测 试 方 框 图 如 下 :音 频信号源可 变衰减器 编码器失真仪 译码器 示波器第 4 章 结果分析与体会一周的课程设计过去了,刚开始的时候,无从下手啊。还是认真看课本和实验指导书吧,要学习原理,主要还是要靠自己的聪明才智钻研出来。无论是通信原理课程设计,还是将要做的单片机和 FPGA 的课程设计,以及今后的工程实践、实习,毕业设计等等,我都会学到很多实用的技术和设计理念,一个周的设计,在时间上来说是很短的,可是它恰好可以让我更明白,其实
12、知识是要适应社会发展,我们要学会的不仅是现在的知识,更重要的是以后我们在短时间内如何获得我们所要的知识。每次课程设计我们都会用到新软件,平时从未听说过,更不用说是学过了、用过了,可是经过几次课程设计我们更适应应急学习应用软件了,也许时间会让我们忘记我们现在所学的知识,可是我们不会忘记这种学习方法和思想。世上很多事情,不是因为难以做到,我们才失去信心;相反,是因为我们失去了信心,事情才显得难以做到。是的,我们得承认,我们还很多很多的东西不知道,但我们可以努力,努力可能得到我们想要的,但是不努力一定得不到;优秀的人到处是,努力的人也随时可以看到,我们可以通过努力使自己变得更优秀。努力是希望的代价,
13、希望是努力的动力。附录:function sqnr,a_quan,code=u_pcm(a,n)%U_PCM %采样样本序列 a 的均匀 PCM 编码.%SQNR,A_QUAN,CODE=U_PCM(A,N)%a= %输入序列.%n= %量化级别数 (偶数,2 的幂次).%sqnr= %输出的 SQNR (以 dB 为单位).%a_quan= %编码之前的量化输出.%code= %编码后的输出.amax=max(abs(a); % 序列所含信号样本中的峰值a_quan=a/amax; % 每个样本值与峰值之比(归一化样本值)b_quan=a_quan;d=2/n; % 量化步长 dq=d.*0
14、:n-1; % 每个量化级别的值(归一化量化值)q=q-(n-1)/2)*d; % 量化范围q-d/2, q+2/d,即-(n/2)*d,(n/2)*dfor i=1:n % 在量化范围逐级寻找接近量化级别的归一化样本值a_quan(find(q(i)-d/2 = a_quan) b_quan(find( a_quan=q(i) )=(i-1).*ones(1,length(find( a_quan=q(i) );end % 每个归一化样本值按最接近的量化级别修正a_quan=a_quan*amax; % 得到修正后的样本量化值(模拟信号的数字重建)nu=ceil(log2(n); % 量化级
15、别所需的二进制编码比特数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; % 对量化值执行模 2 除法,得到当前码字当前比特值b_quan(i) = b_quan(i) - 2j; % 量化值模 2 计算后的余数继续用于求下一个更低比特的值end % 这里量化值编码过程实际上是十进制到二进制的转换end % 完成一个量化值的编码end % 得到所有量化值的编码码字sqnr=20*log10(norm(a)/norm(a-a_quan); % 得到信号量化噪声比,量化噪声为信号样本与量化值之差