Difference between bit rate and baud rate and its origins?

Baud rate is the rate of individual bit times or slots for symbols. Not all slots necessarily carry data bits, and in some protocols, a slot can carry multiple bits. Imagine, for example, four voltage levels used to indicate two bits at a time.

Bit rate is the rate at which the actual data bits get transferred. This can be less than the baud rate because some bit time slots are used for protocol overhead. It can also be more than the baud rate in advanced protocols that carry more than one bit per symbol.

For example, consider the common RS-232 protocol. Let's say we're using 9600 baud, 8 data bits, one stop bit, and no parity bit. One transmitted "character" looks like this:

Since the baud rate is 9600 bits/second, each time slot is 1/9600 seconds = 104 µs long. The character consists of a start bit, 8 data bits, and a stop bit, for a total of 10 bit time slots. The whole character therefore takes 1.04 ms to transmit.

However, only 8 actual data bits are transmitted during this time. The effective bit rate is therefore (8 bits)/(1.04 ms) = 7680 bits/second.

If this were a different protocol that, for example, used four voltage levels to indicate two bits at a time with the baud rate held the same, then there would be 16 bits transferred each character. That would make the bit rate 15,360 bits/second, actually higher than the baud rate.


The line bit rate is the number of bits per second being moved.

The data bit rate is the number of information bits being moved per second.

The baud rate is the number of symbols per second (Baud is named after Emile Baudot)

The line rate and information rate can be different due to line coding

An example of line coding is QAM; QAM64 encodes 6 bits per symbol (\$ 64\ =\ 2^6\$), so the baud rate would be the \$ \frac {line bit rate} {6}\$

As a (very contrived) example we might see something like this:

Base rate = 64000 bits per second - this is the data rate

Line coded using standard framing on a 32 bit basis adding 1 framing bit per word: this adds 2000 framing bits, so the line rate is now 66,000 bits per second.

Now we perform QAM16 (encodes 4 bits per symbol), so the baud rate (or symbol rate) = 16.5kBaud

Another way that the line bit rate and data rate may be different is where we need to stuff bits in the bitstream, such as SDLC.

The SDLC framing symbol is 01111110 (0x7E) and is used for both the start and end of frame; clearly we don't want data fields to be a frame symbol and erroneously flag a start or end of a frame which would render the link useless.

To prevent this, if a sequence of 5 '1' bits are detected within the payload section of the frame (which the transmit source knows about), a zero is inserted into the bit stream to prevent a premature end of frame symbol. The overhead on the channel is not deterministic, incidentally.