Block 2 Part 1 Flashcards
Two different types of error-control coding
- Error detection coding
- Error correction coding
Error detection coding
- only allows you to know when received data contains errors
Error correction coding
- allows you to know when received data contains errors and allows you to correct them
- also known as forward error correction (FEC)
Automatic repeat request (ARQ)
- if there is a return channel its possible to request retransmission
- alternatively some systems require error free data to be acknowledged
- if not they retransmit data
Parity check
- for given block of bits add one more (parity bit)
- chosen to be 1 or 0 to ensure total number of 1s in block, including parity, is even number
Cyclic redundancy check (CRCs)
- 1s and 0s used
- number used to divide data and leave a remainder
- remainder sent to decoder with message
- decoder calculates remainder itself and checks for match
- divisor decided beforehand so doesn’t need to be sent
- check digits sent directly after message
Rectangular code (product code)
- can not only detect presence of error but can also identify bit in error and correct it
- example of block code
- not good at correcting error bursts
Block code
- encoder tales input data in successive blocks of k bits and encodes them as n bits
- where n > k so encoded data has some redundancy
- code described as (n, k) block code
- block code memoryless
code rate
- measure of efficiency of an (n, k) block code
- is ratio k/n
Hamming code
- uses eight parity digits to correct any single error in block of exactly 255 digits
Syndrome
- points directly at the error if there is one
Hamming distance
- measure of closeness between code words
- count how many digits differ to get distance. One with minimum distance between two code words is hamming distance
Different Hamming code distances
- Hamming distance of 2 allows single errors to be detected but not corrected
- Hamming codes have distance of 3 and one error can be corrected
Perfect codes
- Hamming code that makes use of all information available in syndrome
Golay code
- (23,12) code
- Minimum Hamming distance of 7
Turbo codes
- codes that achieve the ultimate limits of capacity of communications channel
Iterative decoding (turbo decoding)
- When data received it is decoded
- this information fed back into decoder with copy of original data
- this gives better chance of removing errors
- process can be repeated number of times
- the more times you repeat the more delay you add
Hard decision decoding
- job of demodulator to decide if data it receives represents 1 or 0
- decoding like this works entirely with digital data
- only 1 or 0 passed to decoder
Soft decision decoding
- more information reaches decoder
- in practice sometimes done by working with both hard decision (1 or 0) and measure of confidence in that decision
- useful with iterative decoding
Interleaving
- technique employed by turbo coding systems
- simple method of interleaving is block interleaving
Block interleaving
- example code (7,4)
- four consecutive code words interleaved by writing words into 4 x 7 matrix of memory locations, row by row, then reading out column by column
- errors spread out
- sequence is coding, interleaving, channel, de-interleaving, decoding
Latency
- important measure of quality of communications channel
Concatenation
- another feature of turbo codes
- one way of getting benefits of large codes without excessive complexity is by concatenation of shorter codes
- feed output of one code to input of another
- use interleaver in between the codes
Turbo codes finally
- uses iterative decoding in receiver
- uses concatenation with interleaving and soft decision detection