Professional Documents
Culture Documents
-Xiaohong Sheng
ECE734 Project
Viterbi Algorithm
Viterbi Algorithm:
The optimum decoding algorithm for convolutional code,
it can also be used for speech and character recognition
which is modeled by hidden Markov models
Receive 01 01 00 11 10
00 1 00 2 00 2 00 2 00 3
01 00
1/11 11 11 5 11 11
1/01 11 1 2 4 2 3
01 11
10 3 11 10
0/00 00 1/00 0/10 11 3 00
1/10 2 3 2
10 01 Winner!
01 01
1 3 3
0/01 11
10 10
0/11 10 10 2
Detected: 00 00 00 11 10
Convolutional Code
Convolutional code
Widely used for digital communication
m
Cj X j l Gl
l 0 Cj=[Cj1,Cj2]
Example: C 0,1
+ +
1 1
G0 Cj1
C j X j 2 X j 1 X j 1 0 G1 X j- 1 X j- 2
1 1 Xj
G2
X j 2 X j 1 X j X j 2 X j State
+ Cj2
Problems on Viterbi Algorithm
Computational complexity increases exponentially
with constraint length (state) of convolutional code
Nonlinear feedback loop in the VA presents a
bottleneck for High speed implementations
Other issues such as:
Viterbi algorithm is a ML (optimum) algorithm if Euclidean
distance is used. The usually used Hamming distance in VA
is sub-optimum and therefore lose some performance.
If Euclidean distance is used, The use of multiplier
increases the decoder complexity significantly
Any Solution?
YES!
Two main solutions
Reduce state
• At least half of the states can be reduced for DPSK sources.
– Exciting! -Yes, Believe?-?, How? And any other problem can be
induced?
Pipeline
Solve the bottleneck of nonlinear feedback?
Others solutions like
Linear distance metric can be used
Select some special convolutional codes
Reduced state solution
DPSK sources
Received signal at the ith receiver for QAM
data communication system can be described as
When Xi(t) is oversampled by K, hi(t) lasts a
maximum of d symbol intervals and put all data from
N receivers in a vector, the signals can be modeled as:
Use SVD
Use Mahalanobis
orthogonalization transform
Reduced state solution (Cont.)
It can be proven that ry( k ) rsk Where:
So,
ryk Is affected by input data symbols [St, St-1…St-k-d+1]
So, the optimal detection can be defined
by: