数据传输过程中常常会涉及到传输速率,这边详细区分和介绍下波特率和比特率的区别。另一种说法是:在使用时间域(或简称为时域)的波形表示数字信号时,代表不同离散数值的基本波形就称为码元。码元,承载信息量的基本信号单位。

码元:

书面解释:在数字通信中常常用时间间隔相同的符号来表示一个二进制数字,这样的时间间隔内的信号称为(二进制)码元。 而这个间隔被称为码元长度。值得注意的是当码元的离散状态有大于 2 个时(如M大于2个) 时,此时码元为M进制码元。

码元通俗的说就是信号,一个数字脉冲就是一个码元。但事实这种解释不够全面,同一个时间段,信号可以变化3次,也可以变化1次。实际上,正如码元的定义一样,码元是与时间相联系的。这边的时间并不是一个明确的时间,例如:串口通信时,双方约定波特率为 9600(9600bps),则代表一秒钟传输 9600 个位(bit),这时每个码元所在的时间片段就约为1/9600s。再例如:I2C 的传输速率最大为 400Kbps,而 I2C 的通信更加的自由,实际使用过程中,双方并不会事先指定好通信速度,而是采用一根单独的SCL总线来限定通信的速度即码元所间隔的时间,在SDA保持恒定的情况下,SCL总线每次变化电平时的这段时间间隔就作为一个码元所在的时间片段。

通过定义可以看出,通常来所说的码元就是表示二进制码元,当用一个码元传输一个多重含义的数据时,码元还是码元,但我们称其为 M 进制码元。但实际我们也可以设计一个M进制的码元,举个栗子:假如基带信号是 7536154210…..,直接发送,则每个码元作为(八进制)码元传输,这样一个码元相当于8个不同的待识别状态数据。(每个码元有 8 种状态,实际早期为何不使用 10 进制来定义计算机就是因为,一个数据包含的意义越多,越难解析识别,也越容易出错,会增加设计的复杂度,很显然,远距离通讯一般都还是采用二进制码元较多)。而大多数计算机都只能传输2进制数值,假如基带信号是 101011000110111010…..,如果直接发送,则每个码元携带一个比特的信息(每个码元只有 2 种状态),但是如果将信号中的三个比特编为一组,即 101,011,000,110,111,010……,三个比特同样可以表述 8 种不同的排列,我们可以用不同的调制方法来表示这种信,如 8 种不同的振幅,频率,相位等,如果采用相位调制,相位 ϕ0 表示 000,ϕ1 表示 001,以此类推,那么接收端如果收到相位是ϕ0的信号就知道表示的是000,以此类推,这样一个码元就不知不觉的传输了三个比特位的信号(每个码元有 8 种状态,每一个码元可表示的比特数越多,则在接收端进行解调时要正确识别每一种状态就越困难)。

根据上述内容总结:一个以 m 波特传送信号的线路,其传送二进制数据的速率不一定是 m 比特/秒,因为每个信号可以运载几个比特,例如,若使用 0、1、2、3、4、5、6、7 共 8 个电平级,则需要 ,即 3 个比特来表示一个信号值,因而这种条件下比特率将是波特率的3倍。某系统每秒钟传送 2400 个码元,则该系统的传码率为 2400 波特或 2400B。但要注意,码元传输速率仅仅表征单位时间内传送码元的数目,而没有限定这时的码元是何种进制,因统一系统的各点上可能采用不同的进制,故给出码元速率时必须说明码元的进制和该速率在系统中的位置。

常用进制(或键位数)的码元有: 8 进制(也称 8 键制)数字码元键盘,10 进制数字码元键盘,5 进制笔画数字码元键盘,还有 26 进制字母码元键盘,26进制部件字母码元键盘,还有韩文的 28 进制字母码元键盘,俄文的 33 进制字母码元键盘,以及中国维文的 30 进制字母码元键盘等。

比特率:

在电信行业,码率,比特率或数据传输速率指在一个数据传送系统中,单位时间内通过设备比特、字符、块等的平均量。通常使用比特每秒或字节每秒两单位的复合形式度量。比特率在数字信道中,比特率是数字信号的传输速率(需要注意的是比特率是一个传输速度的单位),比特率显然是以 bit 位作为最小传输量的,不要和 Byte 字节进行混淆。它用单位时间内传输的二进制代码的有效位(bit)数来表示,其单位为每秒比特数 bit/s(bps)、每秒千比特数(Kbps)或每秒兆比特数(Mbps)来表示(此处K和M分别为 1000 和 1000000,而不是涉及计算机存储器容量时的1024和1048576),而为何这边换算不是以1024为单位,而是以1000为单位呢,值得一提的是,人类世界习惯于使用十进制来换算,一般除了计算机对存储单元采用 1024K=1000M 这种换算方式外,人类社会中的大多数的换算方法都是采用1000代表1K,最为常见的现象就是买回来的硬盘厂家生产会以 1000 作为一个单位级,而插上电脑后会以 1024 作为一个单位级,因此硬盘等设备插入电脑往往都会比说明上面小很多,传输速率比特率这个单位在使用k是从来都是代表 1000 的,不幸的是,人们常常错误地用 K 代替 Ki。

k 与 Ki 分别表示 kilo-(千) 与 kibi-(二进制千) 。作为前缀使用时, k 表示 1,000,Ki 表示1,024,因为“Ki”来源于它在计算机方面 210 = 1,024 的使用。不幸的是,人们常常错误地用 K 代替 Ki。此外,不知晓其中微妙差别的广大公众,常常不加区别地使用“Kbps”与“Kibps”,造成了混乱。总之,使用“Kibps”通常是正确的。

b 代表 bit(比特),B 代表 byte(字节),1 字节 即 8 比特。这会导致混淆。比如当“1M(1 Meg,1 兆)网络连接”字样出现在广告上时,它常常表示 1 Mib/s(mebibit per second,二进制兆比特每秒)或者 1.049 Mb/s(megabit per second,兆比特每秒),即可能达到的最大下载速度实际上仅为 128 KiB/s(kibibyte per second,二进制千字节每秒)或者 131 kB/s(kilobyte per second,千字节每秒)。

波特率:

指在电子通信领域,鲍(Baud)即调制速率,指的是有效数据信号调制载波的速率,即单位时间内载波调制状态变化的次数。它是对符号传输速率的一种度量,1 鲍即指每秒传输 1 个符号,而通过不同的调制方式,可以在一个码元符号上负载多个bit位信息。“鲍”(Baud)本身已是速率,所以不需要写成 Baud Rate(Rate 是赘字)。单位“鲍”本身就已经是代表每秒的调制数,以“鲍每秒”(Baud per second)为单位是一种常见的错误。

波特率有时候会同比特率混淆,实际上后者是对信息传输速率(传信率)的度量。波特率可以被理解为单位时间内传输符号的个数(传符号率),通过不同的调制方法可以在一个符号上负载多个比特信息。因此信息传输速率即比特率在数值上和波特率有这样的关系:I = S × log2 (N) 其中I为传信率,S为波特率,N为每个符号负载的信息量,而 log2 (N) 以比特为单位。

以 RS232 为例,典型的“鲍”是 300, 1200, 2400, 9600, 19200, 115200 等,假设目前“鲍”为 9600, 则此RS232的比特率计算为I = S × log2 (N) = 9600×log2 (2) = 9600bps。

电路传输信号是靠在一定的时间段内,波形的变化来识别每一位(英文单位bit)信息的,那么
这一位信息的波形就叫作码元。 当用一个码元传输多个比特位时,码元还是码元,但我们称其为M进制码元。

参考链接:
http://1992zhong.blog.51cto.com/3963309/1167100
https://zh.wikipedia.org/wiki/%E7%A0%81%E7%8E%87%E5%8D%95%E4%BD%8D