【通信原理 入坑之路】—— 模拟信号的数字编码 之 PCM编码(A律13折线和μ律15折线的编译码剖析)
引言:
在我们的数字通信系统中,一般要发送的绝大多数都是模拟信号。而所谓数字通信,传递的就应该是数字信号。因此,我们首先要对这个待发送的模拟信号进行采样(这在我之前《信号与系统》的相关博客中有详细解读),但是问题来了:我们对一个幅值连续的模拟信号采样,采样值的幅度仍然是有无限多种可能的,尽管他们在时间上离散,可这仍然是一个模拟信号。要想成为数字信号,就必须让这个信号在时间和幅度上都是离散的,即取值只有有限种可能。因此,就需要对采样值的幅度进行量化。PCM编码(脉冲编码调制)就是其中一种方法。
所谓的脉冲编码调制 PCM ,博主对其理解就是将经过采样得到的信号经过量化和编码,从而得到一组二进制码组的过程。既然 PCM 可以理解为这样两个过程,那么我们就分别从这两个过程入手开始讲解。
1. 量化
PCM 编码中实现的是非均匀量化。为什么使用非均匀量化呢? —— 这是因为在实际的通信系统中,信号幅度可能会在一个很大的范围内变化。以电话通信为例:经过实验证明,幅度较低的信号出现的频率非常高,而幅度特别大的信号出现的概率就比较小。这样一来,如果采用均匀量化,那么小信号的量化就显得十分粗糙了。而换一种思路:如果我们对出现概率很大的小信号,采用更为精细的量化方式;对于出现频率不那么高的大信号,采用略微粗糙的量化方法,可以预见的是这样做对通话质量是有保障的。
上述提到的这种,就是非均匀量化。而实现非均匀量化,我们有下面这样的思路:
首先对信号做某种非线性变换,然后对经过非线性变换的结果进行均匀量化。
以上这种思路,就被引入到了接下来我们要介绍的 A 律13折线:
我们先来看看 A律13折线是怎么构成的:
- 首先对于横轴:在 [0 - 1]区间不均匀地划分为8段:[0,1128],[1128,164],[164,132],[132,116],[116,18],[18,14],[14,12],[12,1][0, \frac{1}{128}], [\frac{1}{128}, \frac{1}{64}], [\frac{1}{64}, \frac{1}{32}],[\frac{1}{32}, \frac{1}{16}],[\frac{1}{16}, \frac{1}{8}],[\frac{1}{8}, \frac{1}{4}],[\frac{1}{4}, \frac{1}{2}], [\frac{1}{2}, 1][0,1281],[1281,641],[641,321],[321,161],[161,81],[81,41],[41,21],[21,1]
而其中,这不均匀的8段里面,我们再在每段里面均匀地划分出16小段。值得注意的是,在同一段里面,这些等分之间的长度是相等的;但是在不同的段里面,这些等分的长度是不相等的。那么,在x轴上,一共就有了:8×16=1288\times16 = 1288×16=128个量化级。 下面,我们就来看看最小的量化间隔是什么:
很明显,8段里面最短的就是第一段,长度为:1128\frac{1}{128}1281,那么在这段里面再做16等分,那么每一个小分的长度就是:1128×116=12048\frac{1}{128}\times\frac{1}{16} = \frac{1}{2048}1281×161=20481,这就是最小的量化间隔,我们记为△△△。【特别值得注意的是:我们上述的讨论都是针对归一化信号而言的,即信号的幅度范围在 ±1 之间,如果题目中给的范围不是归一化的,那么得先将他归一化再来编码】!
那么,我们的横轴就以 △△△ 作为单位。所以8段中各段的起使电平就是:16△,32△,64△,128△,256△,512△,1024△,2048△16△, 32△, 64△, 128△, 256△, 512△, 1024△, 2048△16△,32△,64△,128△,256△,512△,1024△,2048△ - 横轴划分好了,接下来我们就看看y轴怎么划分—— 很简单,对于纵轴,我们先直接在 [0,1][0, 1][0,1] 区间做8等分,得到8个等长的段;接下来还是在每一段里面均匀地做16等分。也就是y也是对应128个量化级。
好啦!这就是 A律13折线的设置,那么为啥叫13折呢?—— 首先对于上面这个图,我们发现第一段和第二段折线的斜率是一样的,而在 [−1,0][-1, 0][−1,0] 区间,靠近0的也有两端折线斜率一样,所以这4条折线合并为1条折线,那么最终在 [−1,1][-1, 1][−1,1] 区间上给人们呈现出来的,就一共有13条折线。故名为 A律13折线。
这里给大家支一招:做题非常好用:不同的考题可能他们的最小量化间隔是不一样的,如果题目说最小量化间隔是1,那么很简单就按照上面的写出各段的起使电平(最大值是 2048△2048△2048△):0,16△,32△,64△,128△,256△,512△,1024△,2048△0,16△, 32△, 64△, 128△, 256△, 512△, 1024△, 2048△0,16△,32△,64△,128△,256△,512△,1024△,2048△
其中,[0,16△][ 0,16△][0,16△],[16△,32△][16△, 32△][16△,32△]他们视为一段,标号从1开始。
\space
如果题目说最小量化间隔是 2 ,那么最大值应该变成(4096△4096△4096△),那么还是一样写出各段的起使电平:0,32△,64△,128△,256△,512△,1024△,2048△,4096△0,32△, 64△, 128△, 256△, 512△, 1024△, 2048△, 4096△0,32△,64△,128△,256△,512△,1024△,2048△,4096△
其中,[0,32△][ 0,32△][0,32△],[32△,64△][32△, 64△][32△,64△]他们视为一段,标号从1开始。
2. 编码
A律13折线采用 8 位二进制数来进行编码。二进制码组的结构如下:C1C2C3C4C5C6C7C8C_1 \space\space C_2C_3C_4 \space\space C_5C_6C_7C_8C1 C2C3C4 C5C6C7C8
其中,C1C_1C1表示极性码:如果信号是正的,那么 C1=1C_1 = 1C1=1,反之 C1=0C_1 = 0C1=0
C2C3C4C_2C_3C_4C2C3C4 表示段落码:我们刚刚不是说先把x轴不均匀地划分为8段嘛,所以这里的段落码就是指示信号在哪一段的。(例:第一段就是 000;第二段就是 001;第五段就是 100…)
C5C6C7C8C_5C_6C_7C_8C5C6C7C8 表示段内码:因为我们对每一段又进一步做了16等分,所以这个段内码就是指示信号在某一段内的哪个小段。(例:如果在第一小段就是 0000,第二小段就是 0001;第10小段就是 1001…)
3.译码
译码的时候,极性码和段落码的恢复比较简单,值得注意的是段内码的恢复:
首先,由:C5C6C7C8C_5C_6C_7C_8C5C6C7C8确定段内数 mmm,接下来,我们还需要加上 △k2\frac{△_k}{2}2△k这一项(△k△_k△k 表示第 k 段的量化间隔),这是为了能够将误差控制在 ±△k2±\frac{△_k}{2}±2△k 范围之内。
4. 对数PCM码与线性PCM码的互相转换
因为我们现在用PCM方法编码得到的是对数码,无法直接进行数值运算,因此需要转为线性PCM码。这很简单,我们下面介绍一下:
首先我们先将获得的对数PCM编码转换为十进制数 y^\hat{y}y^,假设我们的最小量化间隔是 12048\frac{1}{2048}20481时,那么 y^\hat{y}y^ 的最大取值将会是 2048,需要11位二进制数来表示。所以我们最后就直接把十进制数转为11位二进制数即可。【但是值得注意的是:8位二进制码转11位二进制码,由于量化间隔的问题,会出现不可分辨部分,所以我们一般可以通过查表得到转换结果】
而将线性PCM码转为对数PCM码那就直接是PCM编码的过程了——先将线性码转为十进制数,然后对这个十进制数做PCM编码即可。
最后一点就是:A律压缩变换对于小信号区域,信噪比SNR有24dB的提升。
【通信原理 入坑之路】—— 模拟信号的数字编码 之 PCM编码(A律13折线和μ律15折线的编译码剖析)相关推荐
- 【通信原理 入坑之路】—— 信号的包络分析2 包络分析的意义以及OQPSK调制的引入
本篇 B l o g Blog Blog 是接上一篇未完的分析而作的,主要是继续深入理解信号包络以及包络的意义.同时,本篇 B l o g Blog Blog 是<深入浅出通信原理>的学习 ...
- 【通信原理 入坑之路】—— 详解IQ调制以及星座图原理
写在前面:本博客是<深入浅出通信原理>的学习笔记,仅供个人学习参考使用 文章目录 一. IQ调制与解调的原理与过程 1.1 利用旋转向量理解IQ调制(正交调制) 1.2 利用旋转向量理解I ...
- 【通信原理 入坑之路】—— 理解 4G,5G中的天王山:OFDM【学习笔记4】
今天将要讨论的部分个人感觉非常绕,博主也是在阅读了大量相关书籍和文献之后才有所体悟.如有表述不当之处欢迎大家在评论区斧正! 在上一篇博文中,我们知道串并转换使得OFDM的符号速率降低了,可是总体符号传 ...
- 【通信原理 入坑之路】——深入、详细地理解通信里面“卷积”概念
文章目录 一.多项式乘法和"卷积" 二."卷积"的计算公式 2.1 实例:利用卷积计算两个信号相乘 三.卷积的生动理解 3.1 卷积能够用来解决什么问题? 3. ...
- 【通信原理 入坑之路】——信息论部分 之 离散无记忆信源的等长编码
课本上的讲解公式实在是太多啦!看得人头大,那么本文试图从繁杂的公式中梳理一下几种等长编码的方法,并在最后给出一些解题技巧.我们开始吧! 文章目录 离散无记忆信源的等长编码 1.1 单符号等长编码 1. ...
- 【通信原理 入坑之路】—— 信息论部分 离散无记忆信源的不等长编码 之 霍夫曼编码过程详解
还记得在上一篇博客中,我们讨论的离散无记忆信源的等长编码吗,我们最后得到的结论是 -- 如果使用等长编码,那么对典型序列编码的编码效率是最高的.然而,要满足较高的编码效率,同时还要保证误码率的情况下, ...
- 【通信原理 入坑之路】—— 数字载波传输系统 之 2PSK(二进制相移键控)2ASK(二进制幅度键控)的超详细分析
在之前的文章里面,我们讨论过数字基带传输系统,他们指的是传输二进制脉冲成型信号.然而,在绝大部分场合,我们需要将数字基带信号装载到高频载波上(也就是我们所说的调制),通过天线等将高频波发射出去.这就是 ...
- 强化学习入坑之路04
强化学习入坑之路04 今天继续强化学习的学习,这些内容的学习主要参考了李宏毅的强化学习教程,在此基础上加入了个人的理解和总结.好,废话少说下面开始进入正题. 1.Q-learning(DQN) Sta ...
- 从小白到迷茫菜鸟的IT入坑之路
从接触IT到现在,大概有两年的时间了,从想着写技术博客开始到现在也差不多有半年时间了,本来想着是先写计算机多操作系统的安装.但是,无奈,太懒了,还是写写自己的入坑之路吧!没准对想入门的小白学弟学妹有帮 ...
最新文章
- 【Dual-Path-RNN-Pytorch源码分析】Dual_RNN_Block
- 美国在人工智能领域亟待解决的5大难题
- Android源码解析(一)动画篇-- Animator属性动画系统
- waves效果器_盘点Waves的12款混响插件,你用的是哪个?
- 小学期学习记录(一)
- iPhone的录音和播放
- 如何在 Entity Framework 中计算 时间差 ?
- spark textFile方法
- C# list常用的几个操作 改变list中某个元素的值 替换某一段数据 删除集合中指定对象
- python恢复图像超分辨率_SRCNN实现图像超分辨率重建
- 移动前端开发人员必知必会:移动设备概述
- HEVC中CU、TU、PU划分和扫描方式简析
- 使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记
- c语言建立并存储树,利用十字链表存储树结构(便于同时求出某一点的入度与出度)------C语言实现...
- getch计算机错误,为什么getch()在C中抛出一个错误
- FxFactory 7 for Mac(视觉特效软件包)
- 股价破300迎新年开门红,投资者们中了苹果的毒?
- 吸血鬼数字java_Java求吸血鬼数算法(通用)
- 读透《阿里巴巴数据中台实践》,其到底有什么高明之处?
- rr rom Android6,RR ROM 手把手教学刷入和体验