模拟信源的数字化
信源编码
信源编码的目的是将时间连续、幅度连续的模拟信源编码为比特串
\[
s(t)\mapsto 01\cdots 011
\]
其结构一般包括抽样、量化和编码三个步骤:
\[
s(t)-\boxed{\text{抽样}}\to x[k]=s(kT_s)-\boxed{\text{量化}}\to\hat x=Q(x)-\boxed{\text{编码}}\to 0\cdots10
\]
解码端则依次经过译码、重建和内插三个步骤,分别是编码、量化和抽样的逆过程。抽样和内插、编码和译码互为逆过程,具有无损性;但量化和重建是有损的。在一些实际系统(如语音的PCM(Pulse Coded Modulation))编码中,量化和编码同步完成。
\[
s(t)-\boxed{\text{抽样}}\to s(kT_s)-\boxed{\text{量化+编码}}\to 0\cdots10
\]
\[
\text{速率 }R=f_sb=\frac{1}{T_s}\,\text{Samples/s}\times b\,\text{bit/Sample}
\]
抽样定理
对于带限于\(|f|\le W\)的低通信号\(s(t)\),当抽样频率\(f_s\ge2W\)时,可以由离散抽样无失真地恢复\(s(t)\)。
令\(T_s=1/f_s\),理想抽样得到的冲激串为
\[
s_s(t)=s(t)\sum_{k=-\infty}^{\infty}\delta(t-kT_s)=\sum_{k=-\infty}^{\infty}s(kT_s)\delta(t-kT_s)
\]
频域上,原频谱以\(f_s\)为周期复制:
\[
S_s(f)=\frac{1}{T_s}\sum_{k=-\infty}^{\infty}S(f-kf_s)
\]
当\(f_s\ge2W\)时,相邻频谱副本不重叠,通过截止频率为\(W\)、通带增益为\(T_s\)的低通滤波器即可恢复原信号。

该恢复过程在时域上体现为sinc内插:
\[
s(t)=\sum_ks(kT_s)\frac{\sin 2\pi W(t-kT_s)}{\pi f_s(t-kT_s)}
\]
对于最小抽样频率\(f_s^{\min}=2W\),代入内插公式得到
\[
s(t)=\sum_ks(\frac{k}{2W})\mathrm{sinc}(2Wt-k)
\]
实际采样前要先用低通滤波器限制带宽,保留信号的主要能量并防止混叠。电话语音主要位于\(300\text{--}3400\,\mathrm{Hz}\),工程上以\(f_s=8\,\mathrm{kHz}\)采样,每个抽样量化为\(8\,\mathrm{bit}\),PCM速率为\(R=f_sb=64\,\mathrm{kbps}\)。

带通抽样
若信号只占据\([f_L,f_H]\)及其负频率镜像,直接按最高频率取\(f_s\ge2f_H\)会浪费样本。记带宽
\[
B=f_H-f_L
\]
抽样后要让正、负频谱的各个副本恰好错开。对某个整数\(k\ge1\),无混叠条件可以写成
\[
\frac{2f_H}{k+1}\le f_s\le\frac{2f_L}{k}
\]
令
\[
N=\left\lfloor\frac{f_H}{B}\right\rfloor,qquad M=\left\{\frac{f_H}{B}\right\}
\]
其中\(M\)是\(f_H/B\)的小数部分。课件给出的最小带通抽样率为
\[
\boxed{f_s=2B\left(1+\frac{M}{N}\right)}
\]
当\(f_H/B\)为整数时\(M=0\),最低抽样率就是\(2B\);中心频率远高于带宽时,最低抽样率也接近\(2B\)。电话语音的\(f_L=300\,\mathrm{Hz}\)、\(f_H=3400\,\mathrm{Hz}\),有\(B=3100\,\mathrm{Hz}\)、\(N=1\)、\(M\approx0.0968\),因此带通抽样下界为\(6800\,\mathrm{Hz}\)。工程上仍常取\(8\,\mathrm{kHz}\),便于留出滤波器过渡带。
课件还提到压缩感知:当信号在某个域内足够稀疏时,可以通过随机亚采样并结合稀疏恢复,以低于Nyquist速率的样本重建信号。它利用的是稀疏先验,不能把“低于Nyquist速率”理解成对任意带限信号都成立。
量化基础
量化是使用离散集合中的取值近似连续值\(X\),同时确保近似误差尽可能小:
\[
Q(x)=y_i\,,\quad x_i<x\le x_{i+1}
\]
\(I_i=(x_i,x_{i+1}]\)表示第\(i\)个量化区间,\(\Delta_i=x_{i+1}-x_i\)为量化间隔,若\(\Delta_i\equiv\Delta\)则称为均匀量化,否则为非均匀量化。
量化是多对一映射,因而存在损失和误差。定义量化误差
\[
e(x)=x-Q(x)
\]
由于\(x\)是r.v., 因此\(e(x)\)为一个随机噪声,我们关注其统计特性。量化均方误差为(其实相当于噪声功率)
\[
\begin{aligned}
\sigma^2&=\int_{-\infty}^\infty [x-Q(x)]^2p(x)\mathrm{d}x\\
&=\sum_{i=1}^L\int_{x_i}^{x_{i+1}}(x-y_i)^2p(x)\mathrm{d}x
\end{aligned}
\]
定义量化信噪比为
\[
\mathrm{SNR}_q=\frac{\displaystyle\int_{-\infty}^\infty x^2p(x)\mathrm{d}x}{\displaystyle{\sum_{i=1}^L\int_{x_i}^{x_{i+1}}(x-y_i)^2p(x)\mathrm{d}x}}=\frac{\text{信号功率}}{\text{噪声功率}}
\]
若我们利用\(Q(X)\)精细设计编码器,则压缩后一个抽样的平均bit数最少为
\[
H(Q(X))=-\sum_{i=1}^{L}\int_{x_i}^{x_{i+1}}p(x)\mathrm{d}x\log\int_{x_i}^{x_{i+1}}p(x)\mathrm{d}x
\]
均匀量化
对于电平限制在\([x_{min}\,,x_{max}]\)的抽样\(x\), 使用\(n\)个bit进行均匀量化。则
\[
L=2^n,\qquad \Delta=\frac{x_{\max}-x_{\min}}{L}=\frac{x_{\max}-x_{\min}}{2^n}
\]
当量化间隔足够小时,可以认为每个量化区间内的概率密度近似为常数。记第\(k\)个区间的概率为\(P_k\),并取区间中点作为重建电平,则
\[
\begin{aligned}
\sigma_q^2&=\sum_{k=1}^L\int_{x_k}^{x_{k+1}}(x-y_k)^2p_X(x)\mathrm{d}x\\
&\approx\sum_{k=1}^L\frac{P_k}{\Delta_k}\int_{x_k}^{x_{k+1}}(x-y_k)^2\mathrm{d}x\\
&=\frac{1}{12}\sum_{k=1}^LP_k\Delta_k^2
\end{aligned}
\]
均匀量化时\(\Delta_k=\Delta\),又有\(\sum_kP_k=1\),所以正常量化噪声为
\[
\sigma_q^2=\frac{\Delta^2}{12}=\frac{(x_{\max}-x_{\min})^2}{12\cdot2^{2n}}
\]
对于常用的对称量化范围\([-x_{\max},x_{\max}]\),上式化为
\[
\Delta=\frac{2x_{\max}}{2^n},\qquad \sigma_q^2=\frac{x_{\max}^2}{3\cdot2^{2n}}
\]
可见量化级数增加一倍,噪声方差约降为原来的四分之一。若量化后再做无损压缩,在高分辨率近似下有
\[
\begin{aligned}
H(Q(X))&\approx h(X)+\log_2\frac{1}{\Delta}\\
&=h(X)+\log_2\frac{1}{2\sqrt{3}\sigma_q}
\end{aligned}
\]
因此每个抽样的平均码长近似为
\[
\widetilde R\approx h(X)-\frac{1}{2}\log_2\sigma_q^2-1.8
\]
上面的计算只包含信号落在量化范围内时的正常量化噪声。信号超出\([-x_{\max},x_{\max}]\)后,只能被判到最外侧的量化区间,由此产生过载噪声。对于对称分布,过载噪声为
\[
\begin{aligned}
\sigma_o^2={}&\int_{x_{\max}}^\infty(x-x_{\max})^2p_X(x)\mathrm{d}x+\int_{-\infty}^{-x_{\max}}(x+x_{\max})^2p_X(x)\mathrm{d}x\\
={}&2\int_{x_{\max}}^\infty(x-x_{\max})^2p_X(x)\mathrm{d}x
\end{aligned}
\]
总噪声是两者之和:
\[
\sigma^2=\sigma_q^2+\sigma_o^2
\]
若定义量化范围内的信号功率和信号的“饱满程度”为
\[
\sigma_s^2=\int_{-x_{\max}}^{x_{\max}}x^2p_X(x)\mathrm{d}x,\qquad \zeta=\frac{\sigma_s}{x_{\max}}
\]
并且\(\int_{-x_{\max}}^{x_{\max}}p_X(x)\mathrm{d}x\approx1\),忽略过载噪声时
\[
\mathrm{SNR}_q\approx\frac{\sigma_s^2}{x_{\max}^2/(3\cdot2^{2n})}=3\cdot2^{2n}\zeta^2
\]
换成dB即
\[
\mathrm{SNR}_q(\mathrm{dB})=6.02n+20\log_{10}\zeta+4.77
\]
所以每增加一位量化码,量化信噪比提高约\(6.02\mathrm{dB}\)。不过\(\zeta\)不能一味增大:信号越接近量化边界,正常量化信噪比越高,但越容易出现过载。
最优量化
最优量化是在量化区间总数\(L\)给定时,同时选择分层电平\(x_k\)和重建电平\(y_k\),使量化均方误差最小:
\[
\begin{aligned}
\min_{\{x_k,y_k\}}\quad&\sum_{k=1}^L\int_{x_k}^{x_{k+1}}(x-y_k)^2p_X(x)\mathrm{d}x\\
\text{s.t.}\quad&x_1\le y_1\le x_2\le y_2\le\cdots\le y_L\le x_{L+1}
\end{aligned}
\]
分别对分层电平和重建电平求偏导,可以得到两个必要条件:分层电平位于相邻重建电平的中点,重建电平位于所在量化区间的质心。
\[
\begin{aligned}
x_{k,\mathrm{opt}}&=\frac{y_{k-1,\mathrm{opt}}+y_{k,\mathrm{opt}}}{2},\qquad k=2,\ldots,L\\
y_{k,\mathrm{opt}}&=\frac{\displaystyle\int_{x_{k,\mathrm{opt}}}^{x_{k+1,\mathrm{opt}}}xp_X(x)\mathrm{d}x}{\displaystyle\int_{x_{k,\mathrm{opt}}}^{x_{k+1,\mathrm{opt}}}p_X(x)\mathrm{d}x}
\end{aligned}
\]
对于取值无界的随机变量,两端边界取\(x_{1,\mathrm{opt}}=-\infty\)和\(x_{L+1,\mathrm{opt}}=+\infty\)。实际计算时,可以在“由重建电平更新分层电平”和“由分层电平更新重建电平”之间反复迭代。均匀分布的质心恰好是区间中点,因此它的最优量化就是区间等分、中点重建;一般分布则没有这个性质。
最优量化得到离散随机变量\(Y=Q(X)\),其中
\[
p_k=\Pr\{Y=y_k\}=\int_{x_k}^{x_{k+1}}p_X(x)\mathrm{d}x
\]
再进行无损压缩时,表示量化结果所需的最少平均比特数为
\[
H(Y)=-\sum_{k=1}^Lp_k\log_2p_k
\]
非均匀量化与压扩
语音幅度近似服从拉普拉斯分布,零点附近概率密度大,同时又有较长的拖尾。均匀量化若取较大的动态范围,量化间隔会变粗;若缩小动态范围,又会增加过载噪声。非均匀量化的做法是让常出现的小幅度信号使用更细的量化间隔,让不常出现的大幅度信号使用较粗的量化间隔。
压扩把非均匀量化拆成三个步骤:先用非线性函数\(g(x)\)压缩,在\(g(x)\)域内均匀量化,接收端再用\(g^{-1}(x)\)扩张。令\(g(\pm x_{\max})=\pm x_{\max}\),压缩域的均匀量化间隔为\(\Delta=2x_{\max}/L\)。在第\(i\)个小区间内,
\[
g'(y_i)\approx\frac{g(x_{i+1})-g(x_i)}{x_{i+1}-x_i}=\frac{\Delta}{\Delta_i}
\]
所以原信号域内的量化间隔为
\[
\Delta_i=\frac{2x_{\max}}{Lg'(y_i)}
\]
代入密集分层时的噪声近似,得到
\[
\sigma_q^2\approx\frac{x_{\max}^2}{3L^2}\int_{-x_{\max}}^{x_{\max}}\frac{p_X(x)}{[g'(x)]^2}\mathrm{d}x
\]
定义量化点密度
\[
\lambda(x)=\frac{g'(x)}{2x_{\max}},\qquad \int_{-x_{\max}}^{x_{\max}}\lambda(x)\mathrm{d}x=1
\]
则
\[
\sigma_q^2=\frac{1}{12L^2}\int_{-x_{\max}}^{x_{\max}}\frac{p_X(x)}{\lambda^2(x)}\mathrm{d}x
\]
应用Hölder不等式可得
\[
\sigma_q^2\ge\frac{1}{12L^2}\left[\int_{-x_{\max}}^{x_{\max}}p_X^{1/3}(x)\mathrm{d}x\right]^3
\]
等号成立时,最优量化点密度和相应的压缩函数分别为
\[
\begin{aligned}
\lambda_{\mathrm{opt}}(x)&=\frac{p_X^{1/3}(x)}{\displaystyle\int_{-x_{\max}}^{x_{\max}}p_X^{1/3}(u)\mathrm{d}u}\\
g(x)&=2x_{\max}\int_{-x_{\max}}^x\lambda_{\mathrm{opt}}(u)\mathrm{d}u-x_{\max}
\end{aligned}
\]
这说明概率密度越大的地方,量化点应当越密。工程上还希望压扩规律对输入分布的变化不太敏感,因此课件引入近似对数压扩:
\[
g(x)=\operatorname{sgn}(x)\left[x_{\max}+\beta\ln\frac{|x|}{x_{\max}}\right],\qquad g'(x)=\frac{\beta}{|x|}
\]
忽略该近似在零点附近的不合理部分,有
\[
\sigma_q^2=\frac{x_{\max}^2}{3L^2\beta^2}\int_{-x_{\max}}^{x_{\max}}x^2p_X(x)\mathrm{d}x
\]
因此
\[
\mathrm{SNR}_q=\frac{3L^2\beta^2}{x_{\max}^2}
\]
这个结果与\(p_X(x)\)无关,体现了对数压扩对信号分布变化的鲁棒性。但理论对数函数在\(x=0\)处趋于负无穷,实际系统使用它的近似形式,即\(A\)律和\(\mu\)律。
\(A\)律与\(\mu\)律
\(A\)律由欧洲提出,我国也采用。其压缩函数为
\[
g(x)=\begin{cases}
\dfrac{A|x|}{1+\ln A}\operatorname{sgn}(x),&0\le\dfrac{|x|}{x_{\max}}<\dfrac{1}{A}\\
x_{\max}\dfrac{1+\ln\left(A|x|/x_{\max}\right)}{1+\ln A}\operatorname{sgn}(x),&\dfrac{1}{A}\le\dfrac{|x|}{x_{\max}}\le1
\end{cases}
\]
课件采用ITU G.712建议值\(A=87.6\),小信号的信噪比可提高约\(24\mathrm{dB}\)。\(\mu\)律由美国提出,用一个平移后的对数函数实现:
\[
g(x)=x_{\max}\frac{\ln\left(1+\mu|x|/x_{\max}\right)}{\ln(1+\mu)}\operatorname{sgn}(x)
\]
课件采用\(\mu=255\),小信号的信噪比可提高约\(33.5\mathrm{dB}\)。由\(\mu\)律求导,并仍采用密集量化近似,可得
\[
\begin{aligned}
g'(x)&=\frac{\mu}{\ln(1+\mu)\left(1+\mu|x|/x_{\max}\right)}\\
\sigma_q^2&=\frac{x_{\max}^2\ln^2(1+\mu)}{3L^2\mu^2}\int_{-x_{\max}}^{x_{\max}}\left(1+\frac{\mu|x|}{x_{\max}}\right)^2p_X(x)\mathrm{d}x
\end{aligned}
\]
在不发生过载、区间内概率近似为\(1\)时,积分项可以写成
\[
1+\frac{2\mu}{x_{\max}}\mathbb{E}|X|+\frac{\mu^2}{x_{\max}^2}\sigma_x^2
\]
于是
\[
\mathrm{SNR}_q=\frac{3L^2\mu^2}{\ln^2(1+\mu)}\frac{\sigma_x^2/x_{\max}^2}{1+2\mu\mathbb{E}|X|/x_{\max}+\mu^2\sigma_x^2/x_{\max}^2}
\]
当\(\mu\gg1\)时,分母中以\(\mu^2\)项为主,故
\[
\mathrm{SNR}_q\approx\frac{3L^2}{\ln^2(1+\mu)}
\]
此时量化信噪比近似与输入分布无关。

左图给出等间隔的均匀量化阶梯;中图在压缩域均匀量化后再扩张,零点附近的门限明显更密;右图则画出了课件采用的\(A=87.6\)与\(\mu=255\)压缩曲线。两条曲线在小信号区都比直线更陡,正是小幅度信号得到更细量化间隔的原因。
脉冲编码调制
脉冲编码调制(Pulse Code Modulation,PCM)是语音信号常用的数字化方式。电话语音先以\(f_s=8000\mathrm{Hz}\)抽样,再用近似对数压扩完成量化和编码,每个抽样用\(8\mathrm{bit}\)表示,因此输出码率为
\[
R_{\mathrm{PCM}}=f_s\times8=8000\times8=64\mathrm{kbps}
\]
工程上用\(13\)折线近似\(A\)律,用\(15\)折线近似\(\mu\)律。一个PCM码字分成三部分:\(M_1\)是极性码,\(M_2M_3M_4\)是段落码,\(M_5M_6M_7M_8\)是段内电平码。
对于\(A\)律PCM,各段的起始电平、段内权值和量化间隔如下。
| 段落号 |
\(M_2M_3M_4\) |
起始电平 |
\(M_5,M_6,M_7,M_8\)的权值 |
量化间隔 |
| 0 |
000 |
0 |
16,8,4,2 |
2 |
| 1 |
001 |
32 |
16,8,4,2 |
2 |
| 2 |
010 |
64 |
32,16,8,4 |
4 |
| 3 |
011 |
128 |
64,32,16,8 |
8 |
| 4 |
100 |
256 |
128,64,32,16 |
16 |
| 5 |
101 |
512 |
256,128,64,32 |
32 |
| 6 |
110 |
1024 |
512,256,128,64 |
64 |
| 7 |
111 |
2048 |
1024,512,256,128 |
128 |
例如对抽样值\(1250\)编码:它为正,故\(M_1=1\);\(1024<1250<2048\),段落码为\(110\);在第6段内依次比较\(512,256,128,64\)四个权值,得到电平码\(0011\)。完整码字为\(1\,110\,0011\),接收端按区间中点重建为\(1024+128+64+32=1248\)。
增量调制
PCM主要利用了抽样幅度的统计特性,而带限信号在时间上通常具有较强相关性,不会突然剧烈变化。增量调制(Delta Modulation,\(\Delta M\))利用这一点,每个抽样只用\(1\mathrm{bit}\)表示信号相对本地重建值是增加还是减小。
编码器并不直接比较相邻两个原始抽样,而是在本地模拟接收端的译码过程。记输入抽样为\(S(n)\),本地预测值为\(S_l(n)=\hat S(n-1)\),则
\[
\begin{aligned}
e(n)&=S(n)-S_l(n)\\
C(n)&=\begin{cases}1,&e(n)\ge0\\0,&e(n)<0\end{cases}\\
d(n)&=\begin{cases}+\Delta,&C(n)=1\\-\Delta,&C(n)=0\end{cases}\\
\hat S(n)&=\hat S(n-1)+d(n)
\end{aligned}
\]
接收端使用同样的累加关系,重建信号便会跟踪输入信号。每个码元只表示一次增减,课件据此指出增量调制抗信道误码能力强,适合战场通信。
增量可以不断累加,因此增量调制不会因信号幅度本身很大而过载;真正的问题是信号变化过快,而每个抽样周期最多只能改变\(\Delta\)。发生斜率过载的条件为
\[
\max_t\left|\frac{\mathrm{d}f(t)}{\mathrm{d}t}\right|>\frac{\Delta}{T_s}
\]
对于\(f(t)=A\sin\omega t\),临界条件为
\[
A\omega=\frac{\Delta}{T_s},\qquad \omega_c=\frac{\Delta}{AT_s}
\]

输入变化较慢时,重建阶梯会在原信号两侧来回跟踪;输入斜率超过\(\Delta/T_s\)后,阶梯每个抽样周期只能上升一次,误差便会持续积累。这里是否过载取决于斜率,而不是信号本身的幅度。
提高抽样率可以减小斜率过载,但会提高编码速率;增大步长\(\Delta\)也能减小斜率过载,却会增加量化噪声。自适应增量调制在信号变化缓慢时采用较小步长,变化剧烈时采用较大步长,不过收发两端必须同步调整步长,系统同步设计更困难。
差分脉冲编码调制
差分脉冲编码调制(Differential Pulse Code Modulation,DPCM)同样通过刻画信号变化来压缩。它与增量调制的主要区别是:反馈预测器可以采用一般滤波器,预测误差也不再只用\(1\mathrm{bit}\),而是用多比特量化。用一般的线性预测器表示,其基本关系为
\[
\begin{aligned}
S_p(n)&=\sum_{k=1}^Pa_k\hat S(n-k)\\
e(n)&=S(n)-S_p(n)\\
\hat e(n)&=Q(e(n))\\
\hat S(n)&=S_p(n)+\hat e(n)
\end{aligned}
\]
编码端和解码端都由过去的重建样本形成同一个预测值,因此只需传输量化后的预测误差。信号相邻抽样越相关,预测误差通常越小,在相同量化精度下所需的动态范围和比特数也越少。