310 likes | 461 Views
Outline. Transmitters (Chapters 3 and 4, Source Coding and Modulation) (week 1 and 2) Receivers (Chapter 5) (week 3 and 4) Received Signal Synchronization (Chapter 6) (week 5) Channel Capacity (Chapter 7) (week 6) Error Correction Codes (Chapter 8) (week 10 and 11)
E N D
Outline • Transmitters (Chapters 3 and 4, Source Coding and Modulation) (week 1 and 2) • Receivers (Chapter 5) (week 3 and 4) • Received Signal Synchronization (Chapter 6) (week 5) • Channel Capacity (Chapter 7) (week 6) • Error Correction Codes (Chapter 8) (week 10 and 11) • Equalization (Bandwidth Constrained Channels) (Chapter 10) • Adaptive Equalization (Chapter 11) • Spread Spectrum (Chapter 13) • Fading and multi path (Chapter 14)
Error Correction Codes (Chapter 8) • Trellis/Convolution Codes • Trellis Codes and QAM NRZI code with memory L=1 Trellis for NRZI Convolution Code Generator Viterbi Algorithm QAM set partition via convolution code 8 state Trellis for rectangular QAM
Trellis/Convolution Codes • Modulation with Memory • Example: NRZI • Trellis diagram • Maximum likelihood sequence detectors • Viterbi Algorithm NRZI code with memory L=1 Trellis for NRZI Viterbi Algorithm
Modulation with Memory • Example: NRZI (non return to zero invert) • Binary PAM NRZI code with memory L=1
Modulation with Memory • Example: NRZI (non return to zero invert) • Encoded by: Modulo 2 addition • Has one memory and 1/1 code rate • (No error correction)
Trellis diagram • Indicates state transitions for various inputs Trellis Diagram for NRZI
Maximum likelihood sequence detectors • Consider NRZI matched filter decoder output:
Maximum likelihood sequence detectors • Consider joint pdf of a matched filter decoder output sequence and a transmitted sequence : m = 1,2,…M (M symbols)
Maximum likelihood sequence detectors • Now find maximum likely hood: Minimizes Euclidean distance
Maximum likelihood sequence detectors • Viterbi algorithm • Eliminates sequences as data is collected • compute distances as you go • Keep only the smallest distances for each trellis state at each symbol time • After some number of symbols K decide what the first symbol was by: a) Consensus or b) Minimum D path • Do this for each time step
Maximum likelihood sequence detectors • Viterbi algorithm for NRZI The example shows how the Viterbi algorithm by trying all possible states and digital inputs can correctly estimate the digital inputs (green)
Maximum likelihood sequence detectors • Viterbi algorithm for NRZI Try it again with different initial state and data. The trellis to the right matches the Excel spreadsheet
Trellis/Convolution Codes • The general Convolution Code K=number of stages k=number of input bits per stage n=number of output bits The code rate Represents how much faster data must be sent
Trellis/Convolution Codes • The general Convolution Code • The code is described by the “generators” • i.e., the weights on each mod 2 adder • e.g., for K = 3, k = 1, n = 3, 1 1 0 1 1 1
Trellis/Convolution Codes • The general Convolution Code • There are better codes • K = 3, k = 1, n = 3, • With generator 5 7 7 is optimal
Trellis/Convolution Codes • The general Convolution Code • Trellis and Transfer function • Tell us dfree = minimum hamming distance between paths through the Trellis • Coding gain:
Maximum likelihood sequence detector • Viterbi algorithm for K = 3, k = 1, n = 3,with generator 5 7 7
Maximum likelihood sequence detector • Viterbi algorithm for K = 3, k = 1, n = 3,with generator 5 7 7 • Example of error correction? sigma = 0.5 • Decision at step 11 corrects bit error at step 2
Trellis Codes and QAM • Bandwidth Constrained Channels • Use set partitioning to combine code with M-ary bandwidth constrained signaling Ungerboeck (1982) • Three rules: • Use all subsets with equal frequency in trellis • Use Transitions that join use maximum distance subsets • Parallel transitions are assigned max Euclidean distance (unencoded bit transitions) QAM set partition via convolution code 8 state Trellis for rectangular QAM
Set Partitioning • Chop up the Constellations to increase Euclidean distance between points • In rectangular QAM case each partition increases d by
sm2 sm1 64 QAM Set Partitioning • Each 4 x 4 block of 64 QAM constellation is replaced by 16 QAM partition
64 QAM Set Partitioning • Examples: Decide between these in Real decoder
Trellis Codes and QAM • Eight state trellis for QAM Contains no overlapping locations
Trellis Codes and QAM • The code generator
Trellis Codes and QAM • The code generator • Alternate = essentially a kind of parity bit
Trellis Codes and QAM • The code generator • Alternate = essentially a kind of parity bit • The weights = “parity matrix” not generator matrix • Ungerboeck IEEE Communications Magazine February 1987-Vol. 25. No. 2
Trellis Codes and QAM • The code generator
Trellis Codes and QAM • The code generator Memory = 3, thus 8 states
Trellis Codes and QAM • The code generator
Trellis Codes and 64 QAM • Send 64 QAM but only 5 bits per symbol • 6 bits = 3 data bits + 3 encoded bits • The 3 encoded bits come from 2 data bits One of eight subsets – 3 bits Select the levels for each dimension 2 bits in, 3 bits out One of eight symbols – 3 bits 4 levels per dimension
Trellis Codes and QAM • Trellis seems not the same? • Maybe books trellis is parity realization