打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
GSM的空中接口(二)

 

感谢阅读。

 

上一篇讲述了Um接口的物理信道,这一篇将讲述语音是如何“装进”物理信道的换句话说,上一篇讲的是“路”,这一篇讲的是“货”。更具体的,这一篇讲的是“货”是怎么来的,也就是语音信号的“数字化”过程。

 

部分示图和推算引用自曹志刚的《现代通信原理》和陈爱军的《深入浅出通信原理》,版权归原作者所有。为了内容的可读性和风格的统一性,我重新进行了绘制和标注,如果存在理解不到位而产生的错误...… 这个归我(要不还能咋地)。由于编辑器不支持输入公式,文中对推算只能进行有限的表述,请大家结合示图理解

 

言归正传。

 

GSM系统的目标,是把通话一方的声音传送到另一方,反向亦然。在这一点上,GSMPSTN(Public Switched Telephone Network,公共交换电话网络…… 就是你家里那个座机啦)是相同的,“数字化”的原理也是相似的。

 

大家小时候也许玩过,用细线串接两个纸杯底部,把线拉直便是一个简易的通话系统(我们才这么无聊,现在小朋友都玩真手机了)。发送方对着纸杯说话,声波使纸杯产生振动,振动通过细线传送,接收方纸杯产生相同的振动,于是听到发送方的声音。这里暂且把这个系统称为CUP吧。

 

GSM和CUP有什么不同呢?

 

CUP通过细线传送声波,只适合短距离通信。我们常说过去通信靠吼,CUP还真不如吼传得远。不过要是不会“千里传音”,长距离通信还是交给GSM吧。GSM没有直接传送声波,这是实现长距离通信的关键。在GSM看来,网络传送的是“信息”而不是“声音”。发送方从“声音”转换为“信息”,接收方则从“信息”恢复出“声音”。

 

GSM终端将声波转换为电平信号,再转换为无线信号,这就比CUP传送的远得多,通过中继可以实现更长距离的传送。第一步又称为声电转换,一百多年前贝尔就已经实现了。终端通过电磁感应将声波转换为随时间连续变化的电平值,即语音信号。这就是网络需要传送的“信息”。(不太严格的)

电磁感应是法拉第发现的(名字不幸被贾布斯盯上了),说的是:闭合电路的部分导体在磁场中切割磁感线时,由于磁通量发生变化,导体会产生感应电流。动圈式话筒应用了电磁感应原理,将声波转换为膜片振动,带动套在磁极上的线圈运动,线圈切割磁感线产生感应电流。(示图中运动的是磁极而不是线圈,大家将就看看吧… 运动是相对的嘛)


第二步有两种方式可选择:模拟通信数字通信。很长一段时间里,电话、电台和电视都使用模拟通信方式。模拟通信简单来说就是“依葫芦画瓢”,发送方根据语音信号产生波形“一模一样”的波动信号(比如AM调制,已调信号的包络和基带信号的波形是相同的),接收方从波动信号恢复出语音信号。这种通信方式我们称为模拟通信(CUP也可看作模拟通信系统)

 

思路很直接,问题也很多。

 

模拟信号容易受噪声和干扰影响而产生失真,电话的杂音和电视的雪花都是信号失真的反映。模拟信号失真难以消除,长距离传送失真还会积累,在无线环境中尤为明显。模拟信号难以加密,信息容易被窃听,这也是第一代移动通信系统(如TACS)的缺点之一。

 

如果把语音信号看成一段小曲(一连串高低起伏的音符),模拟通信就像发送终端跟着用户A哼哼,接收终端听到再唱给用户Z听。可以想象,用户Z听的和用户A唱的多少有点差别,原因可能是唱的人跑调,或是听的人五音不全,甚至是环境太嘈杂了。

 

如果小曲经过传唱(BTS、BSC、MSC)可能就差的更远了。想象有这么一群人,A唱给B听,B唱给C听…… 经过若干人传唱后,最后Z听到的会是什么样。也许A唱的是“你是我的主打歌”,而Z听到的却是“你是我的猪大哥”。这就是信号的“失真”

 

数字通信的思路,是把小曲记录成简谱,再转换成两线谱。两线谱只有两个音:低音Do和高音Do。在具体实现上,就是发送方把语音信号转换成“0”和“1”构成的数字信号(如何表示“0”和“1”有多种形式)。这个过程我们称为“信源编码”,或通俗的称为“数字化”

 

发送方看见“1”就唱高音Do,看见“0”就唱低音Do,接收方根据听到的音调记录数字信号,再解码恢复出简谱。高音Do和低音Do差别明显,比音高相近的音符容易区分,即使跑点儿调(信号失真)也能猜个八九不离十。数字通信对信道的要求低于模拟通信,抗干扰性显然强于模拟通信。

 

除此以外,数字通信还有很多优点:长距离传送可中继放大,消除失真的积累;接收方可检测是否存在误码,甚至可进行纠错(本质是增加冗余信息,牺牲带宽换取可靠性);可应用加密保护完整性保护,以确保信息不被窃听或篡改。

 

GSM是第二代移动通信系统(所谓的2G网络),自然采用数字通信方式。GSM希望接收方尽量还原语音信号,又希望编码不太长以节省带宽 —— 换句话说,就是编码效率要高。怎么把时间连续幅度连续的语音信号转换为数字信号,才可以达到GSM的期望呢?

 

首先得对语音信号分段。

 

在CUP中是没有分段的,发送方说话细线就跟着振动,纸杯之间声波是连续传送的(把线一掐通话会立刻中断)。在GSM中无线信道可不会跟着发送方说话振动,不说别的,物理信道在时间上就不是连续的(“时隙”的物理意义,终端每隔约4.615毫秒发送一次数据),怎么和发送方说话同步振动呢?(我认为这也是模拟信道和数字信道的一个差异)

 

在GSM看来,从语音信号转换为数字信号和从数字信号恢复为语音信号都是终端的事,网络主要负责传送数字信号。终端将时间连续的语音信号分段,转换为数字信号再交给网络传送。物理信道是否时间连续并不重要,只要终端产生信号的速率和网络传送信号的速率匹配即可,关于这点后面再来验证。

 

和PSTN、VoLTE相同,GSM将语音每20毫秒分成一段。为什么取这么短呢?如果每10秒分成一段,终端要等用户说完10秒才开始转换,就算信号瞬间传送到另一端,对方听到的声音也是10秒前产生的,对于时延敏感的语音业务显然不可行。为了减轻对用户感知的影响,分段时长必须足够短。(也可以减轻个别分段传送失败的影响。)

 

接着,终端将20毫秒语音信号转换为数字信号。语音信号的时间和幅度都是连续的,取值具有无限多可能性(跟实数一样多),要转换为有限长度的编码必须先离散化。在时间(横轴)上的离散化称为采样,在幅度(纵轴)上的离散化称为量化

 

采样和量化就是把小曲记录成简谱的过程。

 

如果我唱“两只老虎”给你听,你会怎么记录呢?一般的歌曲,音符长度是规整的,比如一拍、两拍、四拍等,假设只有这三种音符,每一拍记录一次音高就可以了,因为你“确信”接下来这一拍都是这个音高。如果我唱了个两拍的Do,你就记录成两个Do。这个过程就是采样。(这里放个“两只老虎”的链接,是不是觉得写个简谱So Easy,感觉自己满满的都是艺术细胞?)

如果我是个灵魂歌手,对你的考验就大了。假如你听到一个Do和Re之间的音,就要判断我唱的是Do还是Re。你把音域以Do、Re、Me、Fa、So、La、Ti为中心划分为七个区间(对不起,我不是张靓颖),不管你听到的音多不准总会落入一个区间,记录为相应的音符就可以了,换句话说,听起来像哪个就记成哪个。这个过程就是量化。

 

可是我来脾气了:谁说我在唱“两只老虎”啦,谁要你修音啦,我唱的再难听,也得如实记录下来。为了能更好的记录和还原我“美妙”的歌声,你提高了采样频率,划分了更多量化区间,信心满满的来找我,结果发现我在唱“忐忑”,于是你内心崩溃了。(这里放一个“忐忑”的链接,大家感受一下这种“忐忑”的心情)

数字通信的挑战,就在于不能预判输入会是什么样(要是知道对方会说什么还打啥电话,语音信号是随机信号,这是后续分析的重要前提)。你无法知道最短音符是一拍,如果我唱了个二分之一拍音符,每一拍采样一次就会错过这个变化;你也无法知道音域只有一个八度,如果我变身张靓颖,你记下一大堆高音Do,什么都还原不出来。由此可见,数字通信只适用于特定范围的信号,对应的频率和幅度范围,我们不太严格的称为“动态范围”

 

即使在动态范围内,无论如何增加量化区间,输出总是和输入存在偏差。就像我们用简谱去记录原生态歌曲(有可能比“忐忑”还忐忑),总是无法完全还原这些歌曲的神韵。这就是“数字化”引入的失真

 

如果听觉角度不好理解,我换成视觉解释一下。我的高中数学老师很厉害,拿着粉笔一挥就是一个圆(我总觉得和体型有关,对不起了尊敬的纪老师)。不过,大部分人是学不来的,我们是怎么画圆的呢—— 我们会先打上一圈点,感觉差不多了再连成一个圆。(也可理解为从正多边形逼近于圆,祖冲之也是这么干的)

 

GSM终端也这样记录和恢复语音信号的波形,终端以固定间隔记录电平值,相当于记录打点位置,这个过程就是采样。采样获得的电平值是个实数,取值仍然具有无穷多可能,终端将其划归为某个区间,并以中间值替代作为重建值,这个过程就是量化

 

采样频率越高,量化区间越多,重建信号越接近语音信号,但相应的编码越长,网络传送的信息越多,需要的带宽越大,这里存在一个平衡。可以看到,这里提到的信源编码,本质上依然是“依葫芦画瓢”,这种编码我们称为“波形编码”

来看一下采样数对失真的影响。黄色曲线表示语音信号,蓝色锯齿线表示重建信号。采样数为28时,重建信号和语音信号相对接近,采样数下降到14时失真显著增大,采样数下降到7时失真已经无法接受。量化区间数对信号失真的影响相似。

 

具体说一下采样。

 

GSM采样频率为8KHz,20毫秒语音信号包含160个样本。直觉上采样频率多高都无法避免失真,但GSM认为8KHz就足够了,这个结论主要基于两位老人家的发现,一位是傅立叶,另一位是奈奎斯特(有的人活着,他已经死了;有的人死了,他还在折磨学习通信的孩子…)

 

傅立叶说:我有一个大胆的想法!周期信号都可以分解为成谐波关系的正弦波余弦波。这句话的数学表述就是我们常说的“傅立叶级数”。若干年后,狄利克雷(或称为狄里赫利)证明了傅立叶的猜想在一定条件下是成立的,这些条件当然就是“狄利克雷条件”

 

狄利克雷条件说的是: <1>函数在任意的有限区间内连续,或存在有限数量的第一类间断点(即左极限右极限都存在的间断点); <2>在一个周期内,函数存在有限数量的极大值或极小值; <3>函数在单个周期内绝对可积。

 

更具体的,傅立叶级数有两种表述形式,第一种是三角函数,将f(t)分解为常数项、余弦级数和正弦级数。第二种是复指数函数,可根据欧拉公式由第一种转换得到。系数cn和an、bn的关系如下:<1>c0 =a0/2; <2>n>0时,cn=(an-jbn)/2;<3>n<0时,cn=c|n|,即正负频率成分的系数相同。

即使不经过严格的证明,也可以想象周期函数为什么可以分解为正弦级数和余弦级数。一方面,周期相同的周期函数叠加依然是周期函数,正弦函数和余弦函数是周期函数,如果基波cosωt和sinωt周期为T,则T也是n次谐波cosnωt和sinnωt的周期,因而成谐波关系的正弦函数和余弦函数叠加依然是周期函数。另一方面,任何函数均可分解为一个奇函数[ f(t) - f(-t) ] / 2和一个偶函数[ f(t) f(-t) ] / 2,且奇函数叠加依然是奇函数,偶函数叠加依然是偶函数,而正弦函数和余弦函数正好分别是奇函数和偶函数。

 

由此可见,将周期函数分解为正弦级数和余弦级数是可能的,如果你接受了这个设定(来不及解释了,快上车),剩下的事情就是计算系数an和bn了。计算的诀窍是在等式两侧同时乘以cosnωt(或sinnωt),再进行积分。计算过程利用了三角函数的正交特性,即当m<>n时,cosmωt x cosnωt(或sinmωt x sinnωt等组合)在一个周期内积分为0。这样等式右侧的级数就只留下了an或bn那一项不为0。

 

我们来尝试分解一个周期为T,幅度为-E/2或 E/2的方波信号。由计算结果可见:an=0,即分解后只包含正弦波,这很容易理解,示图中的方波是奇函数,因而分解后不包含余弦波(偶函数);n为偶数时bn=0,即分解后只包含基波和奇数次谐波,其角速率(ω=2π/T=2πf)分别为ω0、3ω0、5ω0…… 角速率(或频率)越高的谐波分量越小

再反过来验证一下。如果把级数的前n项叠加,可以看到n越大输出波形越趋近于方波。n=5时叠加出方波雏形,n=11时已经接近方波,n=31相对于n=21线条更趋于平滑,但波形差别已经很小,可见高频成分对输出影响越来越小,和计算结果相吻合。


傅立叶级数有什么用呢?

 

用户不是复读机,语音信号也不是周期信号。傅立叶又说了:非周期信号,可以看作周期无限长的周期信号。当基波的周期T趋向于无穷大时,其谐波频率的间隔(即基波频率f)则趋向于无穷小。傅立叶级数的求和运算转换为积分运算。

 

因而,非周期信号也可分解为正弦波和余弦波,只是频率成分不再是离散的,而是连续的。我们把不同频率的权重称为频谱系数,这是一个以角速率ω(或频率f)为自变量的函数,可记录为F(ω)。通过f(t)计算F(ω)的(信号分解)过程称为“傅立叶变换”,通过F(ω)计算f(t)的(信号合成)过程则称为“傅立叶反变换”

反过来,周期信号也可看作非周期信号的特例。周期信号的频谱具有三个特点:<1>离散性:频谱是离散而不是连续的;<2>谐波性:分量不为零的频率均为基波的整数倍;<3>收敛性:或n大于某个值时F(ω)=0,或n趋近于无穷大F(ω)趋近于0。

 

傅立叶变换的意义在于改变我们看信号的角度。

 

傅立叶告诉我们:万物皆表象(傅立叶:对,是我说的)。时域中幅度随时间的不同变化,等同于频域中频谱的不同构成。语音信号在时域看没什么特征,在频域看特征却相当明显:当角频率ω大于一定值时,频谱系数F(ω)趋近为零。我们把具有这种特征的信号称为“带限信号”

 

实际上,声音信号基本都是“带限信号”。比如说,西班牙吉他有六根琴弦,细弦比粗弦振动频率高,发出的音也高。如果缩短琴弦振动的长度,提高振动频率,就可以发出更高的音。吉他手弹高音时,手总是按在细弦最靠下的位置。不过这已经是上限了,他们再怎么自我陶醉,也无法让吉他发出更高的音。

 

人的声带就像一把吉他,振动频率也是有范围的,主音一般在85~1100Hz之间,因而语音信号也是一个“带限信号”。奈奎斯特说:对于“带限信号”,只要采样频率不小于原始信号最大频率的两倍,就可以从采样完全恢复出原始信号。这就是“奈奎斯特采样定理”或“香农采样定理”(俄罗斯人称为“科捷利尼科夫采样定理”,大家都记不住,所以说名字不要起的太长)

 

简单理解一下采样定理。

 

在时域中,采样相当于原始信号和采样脉冲(周期冲激信号)相乘,如图所示,f(t)为原始信号,p(t)为采样脉冲(假设采样频率为fs,则p(t)周期为Ts=1/fs,g(t) = f(t) x p(t)(这里的x表示乘积)即为采样信号。

根据“时域相乘等同于频域卷积在频域中,采样相当于原始信号和采样脉冲进行卷积,即G(f) = F(f) * P(f)(这里的*表示卷积),采样脉冲的频谱是一系列间隔为fs、强度为fs的冲激信号,原始信号和冲激信号δ( f – nfs )卷积相当于将原始信号频谱搬移到nfs位置,因而,采样相当于以fs为间隔对原始信号频谱进行周期性拓展。

从采样信号频谱可见,当fs > 2fi(fi为原始信号最大频率),通过低通滤波器可将原始信号过滤出来。如果fs减小,周期性拓展的频谱相互靠近;如果fs减小到2fi,频谱会连在一起;如果fs进一步减小,频谱就会出现交叠(此时无法完全的恢复原始信号),我们把这种现象称为混叠”(Aliasing)。显然,避免混叠的条件是采样频率fs不小于原始信号最大频率fi的两倍。

 

GSM是设计给“人”使用的,采样频率只要满足人声的需求就好,8KHz对低于1.1KHz的主音是足够的,对高于1.1KHz的泛音就有点吃力了,这也是电话里的声音不够“保真”的原因之一。(人类的听觉范围是20Hz ~20KHz,而CD采样频率是44.1KHz,所以CD音质对人而言已经相当保真,但放给电话那头听就不是那么回事了。)

 

再具体说一下量化。

 

前面提到,量化是把幅度划分为多个区间,记录采样值落入的区间,并以代表值(离散值)替代采样值(连续值)进行信号重建。量化不是什么新鲜概念,生活中也不时会用到。比如描述一个人的年龄,如果告诉你这个人二十几岁,你就有了大致的印象,如果让你猜多少岁,二十五总不会差太多。

 

每十年划分成一个区间,大致描述了是少年、青年还是中年,不过有时这样太粗放了。十一岁男生还会告同桌的状,到十九岁都学会撩妹了,都用十几岁来描述会丢失太多信息。把区间缩小为一年,就可以更准确的传达年龄的信息。当然,还可以缩小为一月或一天,但在大多数场合没什么意义,区间大小取决于对精度的要求。(就好像我非要告诉你,这个人已经二十七岁五个月十三天了,如果不是你提的要求我就会像个神经病)

 

来看一个简单的例子。先给输入电平设定一个量化范围,均匀划分为8个区间,按电平高低编号为1~8,并对区间序号进行二进制编码。取每个区间的中间值为量化电平,记为y1、y2… yk。采样时刻记为t1、t2… tn,采样电平记为s1、s2… sn

我们来看几个采样电平的量化,s1、s7、s8分别落在序号4、6、8区间,输出编码为0112、1012和1112,接收方将编码还原为区间序号,并以量化电平y4、y6、y8替代采样电平s1、s7、s8进行信号重建。(具体实现中,量化和编码往往是同时进行的,区间序号只是为了帮助大家理解,并不是必须的)

 

量化的本质是一种映射。

 

用数学语言表达,量化是在量化范围[-V, V]内,把连续幅度值的无限数集合{xk}映射离散幅度值的有限数集合{yk}。量化器Q(x)的输入是信号幅度x,输出是L个量化值yk(k=1,2, … ,L)中的一个取值。当x落在xk与xk 1之间时,输出电平为yk。xk称为分层电平判决阈值Δk=xk 1-xk称为量化间隔,yk称为量化电平重建电平

 

更进一步的,如果在量化范围内量化间隔Δk是相等的,则称为均匀量化。还是以年龄为例,将“量化范围”0~80岁分为L=8个“量化区间”,“量化间隔”Δk都为10岁,“分层电平”xk为0、10、20…... 80,“重建电平”yk为5、15、25…... 75。如果“输入电平”x为27,则落入20~30区间,输出“重建电平”为25,“量化误差”为2。

 

显然,示图中的例子也是均匀量化。只看t1、t7、t8问题不大,但看t1~t6会发现采样电平s1~s6均落入序号4的区间,输出编码均为0112,重建信号时t1~t6的曲线会变成一条直线,电平值均为量化电平y4,采样电平s1~s6的差异被抹平。这个量化器不是很理想。

 

怎样才是理想的量化器呢?

 

在发送方,量化电平Q(x)和输入电平x之间总是存在量化误差(量化误差σq=输入电平x-量化电平Q(x))在接收方,量化误差的影响表现为量化噪声σq平方的期望值),与输入信号x的概率密度px(x)有关。总量化噪声是不过载噪声和过载噪声之和。(σs平方=σq平方 σqo平方)

 

在通信系统中,我们用信号噪声比S/N来衡量信号的失真程度,在量化中N就是量化噪声。显然,N越小则S/N越大。在某种程度上,输入信号功率S的大小是不可控的(不可预知的随机信号),而输出噪声功率N的大小是可控的(可以努力控制的),很容易产生这样的想法:令量化噪声最小的就是最佳量化器。

 

换句话说:“最佳量化”是在给定输入信号概率密度px(x)与量化电平数L的条件下,求出一组分层电平值{xk}与量化电平值{yk},使量化噪声为最小值。推算可知:分层电平应取在相邻重建电平的中点;重建电平应取在量化间隔的质心上px(x)为均匀分布时质心就是相邻分层电平的中点)。这和我们的直觉是一致的。

进一步推算可知,均匀量化器的不过载量化噪声与px(x)无关,只与量化间隔Δ有关,如果给定量化范围[-V, V],则只与量化电平数L有关。因而,要改善示例的均匀量化器,方法就是增加量化电平数L,即增加量化区间的数量,这和我们的直觉也是一致的。


均匀量化器很简单,但应用在语音信号上有一定的局限性。均匀量化器的量化噪声和输入信号概率密度(x)无关,只有输入信号是均匀分布时(如图像信号),均匀量化器才是最佳量化器。可是语音信号并不是均匀分布的 —— 语音信号有两个特点,一个是变动范围大,嗓门、情绪或环境都会影响音量大小;另一个是以小信号为主,毕竟喜欢大呼小叫的人并不多。这些特点对信号噪声比S/N有直接的影响。

 

语音信号的概率密度px(x)可近似的用拉普拉斯分布表示。假设语音信号功率为S,令D=S/V,n为输出编码位数(即n=log2L),可推算出:当D<0.2时,过载噪声可忽略,[S/N]dB≈ 6.02n 4.77 20lgD;当S很大时,过载噪声起主要作用,[S/N]dB≈ 6.1/D。于是,我们得到了输入为语音信号时均匀量化器的S/N特性。

可见,在不过载范围内,S和N呈线性关系(输出编码数n每增加1位,S/N增益约为6.02dB);在过载范围内,S/N明显下降。注意,示图中自变量为20lgD

 

如果在期望S/N(例如25dB)位置水平的画一条线,可以看出n不同取值时输入信号功率的动态范围大小。显然,n取值越大(量化级数L越大)则动态范围越大,相应的带宽需求也越大。(此前,动态范围定义为不过载的电平输入范围,这里重新定义为满足S/N大于期望值的功率输入范围,不仅限定了输入信号功率的最大值,也限定了最小值)。

 

在PSTN中,由于发送方音量的差异,语音信号功率变动范围接近30dB,又由于话机和终端机距离的差异(和GSM不同,PSTN数字化在终端机进行,话机和终端机之间传送的是模拟信号),线路损耗变动范围也接近30dB,因而,量化器的输入信号功率变化范围接近40~50dB(在这一点上GSM有优势,不需要考虑线路损耗)

 

由均匀量化器的S/N特性可以推算,要满足S/N大于25dB(长途话音质量),且动态范围达到40~50dB(对应上述输入信号功率变化范围),n要不小于12。由采样频率为8KHz,n=12意味着编码速率为96Kbps —— 这是一个相当高的要求,要知道早期的猫(Modem)速率也不过28Kbps啊。

 

此外,均匀量化器在各个区间的量化噪声N是相同的,S越大S/N就越大(换句话说,就是相同的量化误差在不同区间对S/N的影响是不同的,这很好理解,同样是相差1岁,5岁和6岁的差别,要远远大于75岁和76岁的差别)。可是,语音信号大部分都是小信号,系统主要受限于小信号的低S/N,大信号的高S/N并没什么意义,怎样可以使量化器的S/N平均一些呢?

 

我们来做一些“优化”。在大信号段,信号功率大,对量化噪声的容忍度就高,可以将量化间隔Δ加大;在小信号段,信号功率小,对量化噪声的容忍度就低,可以将量化间隔Δ减小。这样,就可以在不增加量化级数L的情况下改善小信号的S/N(牺牲大信号“多余”的S/N)。由于量化间隔Δ不再是相同的,均匀量化变成了非均匀量化

 

非均匀量化怎么实现呢?

 

非均匀量化不直接对输入信号进行量化,而是对输入信号非线性变换后再进行均匀量化,间接实现非均匀量化。更具体的,量化器通过非线性变换函数z=f(x)将采样电平x转换为z,再对z进行均匀量化。当然,接收方需要通过逆变换进行还原。我们希望f(x)对大信号进行压缩,对小信号进行扩张,因而f(x)又称为压扩函数

 

通过令取最小值的方法,可以推算出所谓“最佳压扩特性”的f(x)和对应S/N特性,不过得到的f(x)过于复杂,难以实现。同时,“最佳”f(x)总量化噪声最小,但动态范围不大,并没有得到推广应用。为了同时满足高S/N和大动态范围,我们需要S/N特性曲线比较平坦的量化器。什么样的f(x)可以满足需求呢?

 

答案是对数型函数。令f(x)=(lnx)/B,可以推算出,在量化范围[0, V]内S/N是由量化级数L、量化范围V和常数B决定的固定值,这样就有条件同时保证S/N和动态范围。对数型函数对小信号进行了扩张,对大信号进行压缩,也符合我们的期望。

不过,还有两个问题要解决。一个是f(x)=(lnx)/B要求x为正,只适用于量化范围[0, V],要扩展到量化范围[-V, V]并保持正负对称,只能取x的绝对值进行量化,并在编码增加一位作为极性码(表示电平的正负);另一个是当x小于1时,z转为负值,当x趋近于0时,z趋近于-∞,这种特性是无法实现的。

 

实际上,使用对数型函数,主要是利用对大信号的压缩特性,对小信号的扩张特性,可以用其他函数替代。更理想的特性,是当x趋近于0时,z也趋近于0,这样量化范围[-V,0]和[0, V]可以同时映射在z轴上。按照这个思路,CCITT G.712建议提出了两个改进方案:A律对数压缩µ律对数压缩。(我国和欧洲采用的是A律,而美国和日本采用的是µ律,我们重点看A律就好啦

 

更具体的,A律对数压缩函数定义为:x在[0,1/A]区间,f(x) = Ax / (1 lnA);在[1/A,1]区间,f(x) = (1 lnAx)/ (1 lnA)µ律对数压缩函数定义为:x在[0,1]区间,f(x) = ln(1 µx) / ln(1 µ)A和µ为压扩参数,表示压扩程度。(注意,此处x为归一化输入,即x = |原始输入xo| / V)

可以看到,A律压缩将归一化量化范围[0,1](对应原始量化范围[0, V])分为两段:[0,1/A]和[1/A,1],当x取值为1/A时,lnAx正好为0,是对数型函数输出正值和负值的分界点。在[1/A,1]范围f(x)使用的依然是对数特性曲线,而在[0,1/A]范围f(x)则用一条直线替代了原来的特性曲线。

 

早期A律压缩和µ律压缩是利用二极管的非线性实现的,压扩特性的稳定性和一致性无法保证。由于发送方和接收方的压扩特性难以匹配,信号失真增大。在数字电路技术成熟后,CCITT建议采用折线近似A律(13折线)和µ律(15折线)压扩特性,解决稳定性和一致性问题。示图中为13折线,和A=87.6时的A律压扩特性曲线十分接近。


你可能会问,图上不是只有8段折线吗,哪来的“13折线”?是这么回事:在整个量化范围内,A律压缩函数为奇函数。如果将负值部分呈现出来,z轴-1到 1之间共划分为16个段落(注意,段落并不是量化区间,只是段落内压扩特性相同),对应16段折线。靠近原点的4段折线斜率相同,16段折线中只有12处斜率发生变化,因而称为13折线。

 

我们来看一下效果。示图可见,如果是理想A律压扩(A=87.6),非均匀量化相对于均匀量化小信号S/N有所提升,大信号S/N有所下降,整体而言S/N特性相对平坦,动态范围得以扩大。在小信号段,A律对数压缩量化比均匀量化增加了24dB。

13折线的S/N特性和理想A律相比稍有差异。在小信号段,13折线和A律特性是相同的;在大信号段,每次斜率改变量化间隔Δ增加一倍,量化噪声N随之突增,而信号功率S平稳增加,因而S/N会突然下降,再随着信号功率增加而逐渐上升,于是S/N特性曲线出现了6个波谷(对应6次斜率改变),但总体而言S/N特性是比较平坦的。

 

不过,采用非均匀量化是不得已的选择,GSM采用的依然是均匀量化(不要打我)。GSM量化电平数L达到8192,原始编码位数n=log28192=13。n为8我们都觉得编码速率太大,n为13就更加无法接受了,必须在编码上做些功夫。

 

最后具体说一下编码。

 

经过采样和量化,发送方得到160个样本和量化电平,完成“简谱”的记录。接着,发送方对区间序号(量化电平)进行编码,将“简谱”转换为“二线谱”。到这里,“数字化”过程就完成了。这种通过采样、量化、编码形成的编码称为PCM编码(Pulse Code Modulation,脉冲编码调制。这里的“调制”和上一篇提到的概念相似,不过PCM调制的“载波”是脉冲而不是正弦波)

 

最简单的,是将区间序号转换为二进制编码。举个例子,如果量化范围[-V, V]划分为16个区间,区间序号按电平大小编号为0~15,将0~15转换为二进制,就得到对应编码:00002、00012、00102...… 11112。这种二进制码组称为NBC(Natural Binary Code,自然二进制码组,简称自然码)。

当然,最简单不一定最好。NBC容易理解和记忆,这是对人而言,对机器而言就不算什么优点了。编码本质上也是一种映射,理论上可逆的编码都是可行的。除了NBC,常见的编码还有两种:FBC(Folded Binary Code,折叠二进制码组,简称折叠码)RBC(Reflected Binary Code,格雷二进制码组,简称格雷码)。

 

FBC第一位为极性码,表示输入电平是正值还是负值(量化器的输出就是编码器的输入),1表示正,0表示负。其余位表示幅度绝对值,以零电平为中心正负对称,即幅度绝对值相同的正负电平,除第一位外的编码相同,就像对称折叠一样。比如,如果量化电平-3的编码是00112,那么量化电平 3的编码就是10112,只有极性码不同。

 

RBC既看不出极性也看不出幅度,规律是相邻区间(或说相邻量化电平,量化器输出的是量化电平,而不是区间序号)的编码之间只有一位是不同的:比如,区间03、04编码是0010201102,只有第二位不同;区间04、05编码是0110201112,只有第四位不同。(在后续射频调制中会看到RBC的应用场景)

 

这么多个“C”,选哪个好呢?

 

在位数(效率)相同时,选信号失真最小的那个。量化在发送方进行,重建在接收方进行,但量化电平不是“嗖”的一下传过去的 —— 发送方要编码,接收方要解码,中间还要通过信道传送码流。在计算失真时,不仅要考虑量化误差,还要考虑信道误码的影响(假定量化噪声和误码噪声统计相互独立,则总噪声是量化噪声和误码噪声的叠加)

 

举个例子。如果给你介绍个27岁(输入电平)的妹子,但限于信道条件(量化级数)只能告诉你25岁(量化电平)左右,如果不考虑信道误码,你收到的信息就是妹子25岁(重建电平),信息偏差(量化误差)不会大于5岁(量化间隔的一半)

 

由于不好公开谈论妹子年龄,我们约定用3位编码表示8个年龄段,即0002表示5岁左右,0012表示15岁左右...... 1112表示75岁左右(假定你不顾世俗的目光)。我发送0102给你,表示妹子25岁左右。如果没有误码,你收到的也是0102,则偏差依然是2岁,即只受量化误差影响。

 

如果出现误码,你收到的可能另外7个编码中的一个,但是哪一个概率是不同的,只有1位出错的可能性远高于3位都出错。如果只考虑1位误码,则0102可能会变成1102、0002、0112,分别对应65岁、5岁和35岁,偏差分别是38岁、22岁和8岁,你不一定会拒绝妹子,但一定会觉得通信系统太不靠谱了。

 

可见,信道误码产生的失真远比量化误差严重。优化量化器只能减小量化误差,对信道误码则无能为力。要降低信道误码的影响,关键当然是减少误码率,这是下一篇的关注点(信道编码),这里还是重点分析信源编码—— 如何选择编码可以减少失真?

 

先来算个简单的。

 

假定均匀量化器的量化级数为L,量化间隔为Δ,编码位数为k=log2L。yi和yj分别表示第i级和第j级量化电平,Pi是量化电平yi的出现概率,Pj/i是误判为的概率。yi误判yj为的噪声功率为(yi-yj)平方,量化电平为yi且误判为yj的发生概率为PiPj/i,可得到误码噪声计算公式。

假设输入信号为均匀分布,每个量化电平的出现概率相同,即Pi=1/L;假设信道误码率Pe很低,n位编码中只有1位出现误码,则量化电平yi只有k种误判(为不同的yj情况,发生概率为Pj/i Pe。假定编码使用NBC。当第k位为误码时,产生的差值(yi-yj)为2的(k-1)次幂乘以Δ,如k=4,则差值(yi-yj)为8Δ。此时可推算出误码噪声、量化噪声、总噪声功率和总信号噪声比。

 

把推算结果(黄色公式)的分母简化一下,令Pe=1/4(LxL-1),则S/N=LxL/2,即误码令S/N下降了3dB(仅考虑量化噪声时,信号噪声比S/N=LxL)。反过来推算,如果L=256,则可令S/N下降3dB的误码率Pe=3.8e-6。如果Pe继续增大,则误码会成为失真的主要因素。

 

以上结论是在均匀量化、输入信号为均匀分布、编码为NBC的条件下得到的,在非均匀量化、输入信号为非均匀分布、编码为FBC的条件下怎么计算…… 教材上没有讲,我也不会,大家领会精神就好。

 

这里给出A律对数量化(A=87.6、L=256)、输入信号为拉普拉斯分布、误码率Pe=10e-5的条件下,NBC和FBC的S/N特性曲线。可见在小信号段,FBC的S/N要高于NBC,因而在PCM系统中选用FBC而不是NBC。(当Pe=0时,采用NBC还是FBC对S/N就没啥影响了,特性曲线合并成一条曲线,即灰色部分)

所以,A律对数量化(13折线近似)的8位PCM编码是这样的:8位划分为1位极性码、3位段落码和4位段内码。如果信号为正值,则极性码为1,如果信号为负值,则极性码为0。3位段落码对应z轴(绝对值)均匀划分的8个段落(段落内斜率相同,即压扩特性相同),沿z轴由小到大分别取0002~1112。4位段内码对应段落内均匀划分的16个区间,沿z轴(绝对值)由小到大分别取00002~11112

 

如果编码位数为8,采样频率为8KHz,则PCM编码速率为64Kbps。64Kbps放在PSTN都嫌大,放在GSM空中接口就更不行了,何况GSM采用13位均匀量化,原始编码速率达到104Kbps —— GSM需要更高效的编码方案,用更短的编码来表示相同的信息。

 

为啥PCM编码效率不高呢?

 

因为PCM是“笨小孩”。不知道大家是否见过这种情形,小孩大声数数,家长一脸慈爱,完全不顾对旁人的影响。最痛苦的是上百以后,小孩依然不厌其烦的数:一百二十一、一百二十二、一百二十三…… 如果抛开数数的本意,仅从传递信息的角度来看,这样数很严谨,但效率不高。高效点的数法,是把“一百”省去,前提是接收方能理解并补回。更激进一点,是说“加一、加一……”,接收方知道前一个数,就可以推算出下一个数。

 

我们把上述思路借鉴到编码中来。PCM就像第一个小孩,对每个样本都进行编码。实际上,短时间内的语音信号样本具有很强的相关性(可近似看成平稳过程),利用这个特点可以降低编码速率,DPCM(差分编码调制)ΔM(增量调制)是这种思路的典型实现。

 

DPCM,即差分编码调制,差分就是只传送差值信息。发送方输入信号为S(k),接收方重建信号为Sr(k)(输入和输出均是样本,因而是离散序列)。和PCM不同的是,量化器的输入不是S(k),而是S(k)和预测信号Se(k)的差值d(k)。差值d(k)经过量化、编码、传送和解码后重建为dq(k)。由于传送的是差值信息,可以达到节省带宽的目的。

这个图看着容易犯晕,关键是理解预测器的输入和输出。预测器的输入是此前N个样本点,输出是N个样本点的线性叠加,如序号k样本的预测信号Se(k),就是序号k-1、k-2… k-N样本的线性叠加,这可以通过延迟电路实现。发送方和接收方的预测(桃红色)和相加(黄色)是完全相同的。由此,重建信号Sr(k)=预测信号Se(k) 差值dq(k),总的量化误差e(k)=d(k)-dq(k),即不考虑误码时,量化误差只取决于差值的量化。


在DPCM的基础上,如果量化器和预测器能根据输入信号的统计特性自适应于最佳状态,则称为ADPCM(即自适应的DPCM),这里只关注利用“差分”节省带宽的思路,就不具体展开了。

 

ΔM可以看作一种特殊的DPCM:把预测函数修改为只取前一个样本(N=1),量化器简化为只判决差值正负(只有两个量化区间),DPCM就变成了ΔM。ΔM编码只要1位,对带宽要求更低。简单的说,ΔM就是发送方将输入样本和前一个样本进行比较,如果比前一个大,输出电平为 Δ,编码C(n)=1,如果比前一个小,输出电平为-Δ,编码C(n)=0。接收方根据编码重建。

ΔM具体实现可将量化器和编码器合并为判决器,并用脉冲发生器和积分器替代解码器,电路十分简单(可直接输入模拟信号)。ΔM信噪比与信号频率的平方成反比,语音高频段的信噪比下降较快,在ΔM的基础上又发展出Δ∑(增量总和调制)。Δ∑对输入信号先进行积分,降低高频成分幅度,再进行ΔM调制,接收方进行微分补偿。如果积分器和微分器是互补的则接收方可都省去,电路进一步简化。

再狠一些,就要脱离“波形编码”的思路了,根据语音信号的数学模型,直接提取语音信号的特征参量进行编码,这种编码方式称为“参量编码”。参量编码速率比波形编码低,但重建信号和原始信号波形差别很大,只能达到“可懂”的程度。LPC(线性预测编码)就是一种常见的参量编码。

 

GSM采用的是RPE-LTP(规则脉冲激励长期预测)编码,这是一种结合了波形编码和参量编码特点的混合编码,兼具波形编码高保真和参量编码速率低的优点。GSM中20毫秒语音信号经RPE-LTP编码后共输出260位,最终编码速率为13Kbps。篇幅所限,这里就不展开讲述RPE-LTP编码了,有机会再补充吧。

 

小结一下。

 

GSM的目标,是把通话一方的声音传送到另一方,反向亦然。在GSM看来,从语音信号转换为数字信号和从数字信号恢复为语音信号都是终端的事,网络主要负责传送数字信号。终端将语音信号分段,转换为数字信号再交给网络传送,这个过程称为信源编码,或通俗的称为语音信号的“数字化”

 

语音信号的时间和幅度都是连续的,取值具有无限多可能性,要转换为有限长度的编码必须先离散化。在时间上的离散化称为采样,在幅度上的离散化称为量化。通过采样、量化、编码获得数字信号的方式称为PCM编码。PCM编码是一种波形编码,语音还原度高但编码效率低,可通过DPCMΔM、Δ∑调制等差分编码方式提高编码效率。

 

和PSTN、VoLTE相同,GSM将语音每20毫秒分成一段。GSM的采样频率为8KHz,采用13位的均匀量化,原始编码速率为104Kbps。GSM采用RPE-LTP编码,是一种结合了波形编码和参量编码特点的混合编码。GSM中20毫秒语音信号经RPE-LTP编码后共输出260位,最终编码速率为13Kbps压缩比为8:1

 

本文仅代表个人观点,如有错误之处,请在回复中指出。谢谢!


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
语音信号的A律压缩和u律压缩matlab仿真
3G辐射的争论可以休矣:GSM/WCDMA辐射测试结果对比
【课堂】数字音频基础知识(上)
什么是DAC
通信原理第9章模拟信号的数字传输
2011..........................
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服