跳转至

模拟信源的数字化

信源编码

信源编码的目的是将时间连续、幅度连续模拟信源编码为比特串

\[ 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\)的低通滤波器即可恢复原信号。

alt text

该恢复过程在时域上体现为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}\)

alt text

带通抽样

若信号只占据\([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} \]

编码端和解码端都由过去的重建样本形成同一个预测值,因此只需传输量化后的预测误差。信号相邻抽样越相关,预测误差通常越小,在相同量化精度下所需的动态范围和比特数也越少。

评论