【计算机网络】Shannon公式与Nyquist定理

预备知识

在系统介绍Shannon定理和Nyquist定理之前,我们需要先搞清楚一些必要的预备知识。波特率、比特率、带宽以及信噪比。

1.波特率Baud

波特率表示每秒钟传送的码元符号的个数,它是对符号传输速率的一种度量,1波特即指每秒传输1个符号。波特(Baud)这一单位是以法国电讯工程师埃米尔·博多(英语:Émile Baudot,1845-1903)的姓氏来命名的,他是数位通讯的先驱之一,是电传与博多式电报机的发明人。码元是信息传输通道中携带数据的信号单元,假设码元宽度为T,那么对应的波特率为1/T.

2.比特率

很多人会混淆波特率和比特率,前者我们说了是单位时间内传送的码元个数,后者则是单位时间内传送的二进制位数。比特率是对信息传输速率的度量,常见的单位有bit/s、Mbit/s等,或者写为bps、Mbps等。波特率和比特率之间是存在换算关系的,因为一个码元通过不同的调制方式可以负载多个bit的信息。考虑到码元可以是N(通常是2的幂)进制的数,我们分别记波特率为S,比特率为C,则我们可以得到这样的公式:
【计算机网络】Shannon公式与Nyquist定理
这一公式的物理意义是:比特率等于波特率乘以每个码元上的所含的比特数。我们用一个例题来说明这一点。
【计算机网络】Shannon公式与Nyquist定理
题中由振幅与相位构成的码元有四种状态,可以用四进制的数来表示(称为四相调制),所以公式中的N=4,代入公式即可求出比特率。

3.带宽

在计算机网络中,带宽用于表示网络中某信道传送数据的能力,因此网络带宽表示单位时间内网络中某信道所能通过的最高数据率,这种意义的带宽实质上是波特率,单位是bps,也被称为数字带宽。
而另一种带宽的含义是信号所包含的各种频率成分所占据的频率范围,这种带宽的单位是赫兹Hz。表示某信道允许通过的信号频率范围就称为该信道的带宽,也被称为物理带宽。
这两种表述中,前者是时域称谓,后者是频域称谓,本质上是相同的。我们有这样的结论:一条信道的“带宽”越宽,它所能传输的“最高数据率”就越高。

4.信噪比

顾名思义,信噪比是信号与噪声某个物理量的比值,是一个无量纲数。这一物理量是平均功率,也就是说信噪比=信号的平均功率/噪声的平均功率,记为S/N.通常我们将S/N的值取常用对数lg后再×10,单位记为dB。也就是说:
【计算机网络】Shannon公式与Nyquist定理
当S/N=100时,信噪比为20分贝。

Nyquist定理

Nyquist定理给出了理想信道在低通(低频信号能正常通过,而超过设定临界值的高频信号则被阻隔、减弱)情况下的最大传输速率。我们记W时理想低通信道的物理带宽,单位为Hz;N是信号调制时的相数(前述例题中的4就是一个N的例子),也被称为信号的离散等级,那么我们可以得到Nyquist定理的表达式:
【计算机网络】Shannon公式与Nyquist定理
Nyquist定理又被称为采样定理,它论证的是任何一个信号通过物理带宽为W的低通滤波器时,只要进行每秒2W次的采样,就能够完全重构出被滤掉的信号,这一定理在DA(数字-模拟)转换中被广泛应用。也说明了任何高于每秒2W次的采样都是毫无意义的。Nyquist定理指出,要想增加最大传输速率,可以增加信道的物理带宽以及信号的离散等级。但信号的物理带宽是物理特性,无法随意更改,所以我们通常采用高效的调制技术来增加信号的离散等级。
【计算机网络】Shannon公式与Nyquist定理
【计算机网络】Shannon公式与Nyquist定理
【计算机网络】Shannon公式与Nyquist定理

Shannon公式

Nyquist定理给出了理想信道下的最大数据传输速率,而实际工程中不可能出现这样的理想情况。而Dr.Shannon于1948年在他的著作《通信的数学原理》中给出了用于计算有噪声信道中的最大数据传输速率的Shannon公式。我们记信道的物理带宽为W,信噪比为S/N,那么Shannon公式可以表示如下:
【计算机网络】Shannon公式与Nyquist定理
这一公式表明信号的最大传输速率随着信噪比的增大而增大,也从另一个角度指出:只要当前的传输速率小于Cmax_{max},就一定有方法可以保证无差错的传输。只不过Shannon并没有指出这一方法具体的实现。
【计算机网络】Shannon公式与Nyquist定理
【计算机网络】Shannon公式与Nyquist定理
【计算机网络】Shannon公式与Nyquist定理

关于计算机网络中的K、M、G

在通信领域,速率指的是数据的传送速率,也称为数据率或比特率。速率的单位是bps,而当速率较高时,常常在bps前加上一个字母,例如:

  • 千=k(kilo)=103=1000
  • 兆=M(Mega)=106
  • 吉=G(Giga)=109
  • 太=T(Tera)=1012

在计算机领域中,数的计算使用二进制。所以我们沿用日常生活里的十进制中文,就有了下列的记法:

  • 千=K=210=1024
  • 兆=M=220
  • 吉=G=230
  • 太=T=240

此外,计算机中的数据量往往用B作为度量单位,也就是byte,通常表示8位(8 bit).例如15GB的数据以10G的速度发送,我们计算传输速率就写为:
【计算机网络】Shannon公式与Nyquist定理
在计算机领域所有的这些字母都是大写的,通信领域中只有表示千的k是小写,其余的也大写。我们作为区分,可以记住计算机领域表示数据量时需要以2为底数,而通信领域表示数据率时以10为底数