基于C/C++的PCM编码与解码简单实现
PCM原理:
将模拟信号变换成二进制信号的方法称为脉冲编码调制(PCM),目前,它不仅应用于通信领域,还广泛应用于计算机、遥控遥测、数字仪表等许多领域。在这些领域中,常将其称为模拟/数字(A/D)转换。PCM系统原理框图如下:
在发送端对输入的模拟信号m(t)进行抽样、量化、编码。编码后的PCM信号是一个二进制数字序列,其传输方式可以采用数字基带传输,也可以是对载波调制后的带通传输。在接收端,PCM信号经译码后还原为量化值序列,但是具有一定的误差,再经低通滤波器滤除高频分量,便可得到重建的模拟信号m(t)。
脉冲编码调制主要经过3个过程:抽样、量化和编码。抽样过程将连续时间模拟信号变为离散时间、连续幅度的抽样信号,量化过程将抽样信号变为离散时间、离散幅度的数字信号,编码过程将量化后的信号编码成为一个二进制码组输出。所谓量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的所谓编码,就是用一组二进制码组来表示每一个有固定电平的量化值。
编码的实现是由编码器完成的,PCM编码器有很多种类型,比较常用的是逐次比较型编码器,其原理方框图如下:
该编码器的任务是把输入的每个样值脉冲编出相应的8位二进制码,除第一位极性码外,其余7位幅度码是通过逐次比较确定的。
(1)极性判决电路:用于确定样值信号的极性,编出极性码C1。
(2)整流器:将双极性的样值信号变成单极性信号。
(3)电路:使每个样值电流的幅度在7次比较编码中保持不变。
(4)比较器:通过对样值电流和标准电流的比较,实现对输入信号抽样值的非线性量化和编码。
(5)记忆电路:用来寄存前面编出的码。
(6)