SlideShare uma empresa Scribd logo
1 de 5
Baixar para ler offline
Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application
ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46

www.ijera.com

RESEARCH ARTICLE

OPEN ACCESS

Implementation of Convolution Encoder and Viterbi Decoder for
Constraint Length 7 and Bit Rate 1/2
Mr. Sandesh Y.M*, Mr. Kasetty Rambabu**
*(Department of Electronics & Communication, Nagarjuna College of Engineering & Technology, Bengaluru)
** (Department of Electronics & Communication, Nagarjuna College of Engineering & Technology,Bengaluru)

ABSTRACT
Convolutional codes are non blocking codes that can be designed to either error detecting or correcting.
Convolution coding has been used in communication systems including deep space communication and wireless
communication. At the receiver end the original message sequence is obtained from the received data using
Viterbi decoder. It implements Viterbi Algorithm which is a maximum likelihood algorithm, based on the
minimum cumulative hamming distance it decides the optimal trellis path that is most likely followed at the
encoder. In this paper I present the convolution encoder and Viterbi decoder for constraint length 7 and bit rate
1/2.
Keywords - Convolution Encoder, trellis diagram, Verilog HDL, Viterbi algorithm, Viterbi decoder.

I.

INTRODUCTION

Elias introduced convolutional codes in
1955[1]. Convolution coding has been used in
communication systems including deep space
communication and wireless communication. An
advantage of convolutional coding is that it can be
applied to a continuous data stream as well as block of
data. Convolutional coding scheme correlates
information elements by means of exclusive -or
(XOR) operation, resulting in the increases of
transmission redundancy[2]. Convolutional codes are
used in applications that require good performance
with low implementation cost. Several practical
procedures have been developed for decoding.
In 1967 A.J Viterbi introduced "Viterbi
decoding" based on the maximum likelihood
algorithm. At the receiver, the actual received encoded
data plus the noise is compared with the encoded data
sequence for each of the possible outputs of the
convolution encoder. The closest hypothetical
encoded data sequence will be optimum received
encoded data sequence[1]. Viterbi algorithm is the
most resource consuming, efficient and robust.

II.

CONVOLUTION ENCODER

Encoding of convolutional codes can be
accomplished using simple registers. In convolutional
encoder, the message stream continuously runs
through the encoder unlike in the block coding
schemes where the message is first divided into long
blocks and then encoded. Thus the convolutional
encoder requires very little buffering and storage
hardware[3]. In this paper for a convolutional encoder,
the following notations are used.
c = number of output bits.
x = number of input bits entering at a time.
m = number of stages of shift register.
www.ijera.com

L = number of bits in a message sequence.
j = number of modulo 2 adders.
Constraint Length: K = (m + 1) digits.
Bit Rate: r = x / c
Output C2
+

input
X=dn

dn-1

dn-2

dn-3

dn-4

dn-5

dn-6

+
Output C1

Figure 1. Convolution encoder for constraint length
(K)=7,bit rate (r)=1/2
The block diagram of convolution encoder is
shown in figure 2. To generate the output, the encoder
uses 7 values of the input signal (1 present input bit
and 6 previous input bits). The set of values of input
data in the shift register is called a state. The number
of input data values used to generate the code is called
the constraint length. Each set of outputs is generated
by XOR ing a pattern of current and shifted values of
input data.
If g1(j), g2(j), g3(j), . . . . . g7(j) denote the
"impulse responses" also called "generator
sequences" of input-output path through 'jth' modulo2 Adder. Then the encoder generates 'j' number of
42 | P a g e
Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application
ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46
output sequences denoted by C(1), C(2). From definition
of discrete convolution[3], we have
Cn(j) =
dn-i * gi+1(j)
- - -(1)
Therefore, g(1) and g(2) for the convolution
encoder shown in figure1 is given by [2][3]
g(1) = g1(1) g2(1) g3(1) g4(1) g5(1) g6(1) = 1 0 1 1 0 1 1 g(2)
= g1(2) g2(2) g3(2) g4(2) g5(2) g6(2) = 1 1 1 1 0 0 1
The 2 output bits are generated by XOR ing
the following bits.
C1= dn ⊕ dn-2 ⊕ dn-3 ⊕ dn-5 ⊕ dn-6
- - -(2)
C2= dn ⊕ dn-1 ⊕ dn-2 ⊕ dn-3 ⊕ dn-6
- - -(3)
A. State Diagram
The state of an encoder is defined as its shift
register contents. Each new 'x' bit input results in a
new state. Therefore for one bit entering the encoder
there are 21 = 2 possible branches for every state. If
the Constraint length k=7, then the size of shift
register would be m=6 which results in 2 m states.
Therefore 26 = 64 states are named from S0 to S63.
In the figure 2, 'State Diagram' is shown, here
all the 64 states are represented and labelled as
S0,S1,.......S63. Consider the state S0 (000000). With
'0' input, the shift register remains at same state S0 and
is shown as a dotted loop starting from S0 and ending
at S0. With '1' input, the shift register moves to state
S1 (100000) and is shown as a solid line starting from
S0 and ending at S1. To make easy for tracking the
transition two different types of line are used. Solid
line represents the transition when the input bit is '1'
and dotted line represents the transition when the input
bit is '0'.

www.ijera.com

B. Code Tree
In the state diagram shown in Figure 3. It is
very difficult to follow the paths because too many
paths leads to confusion hence for better
understanding state diagram can be re-drawn as 'codetree'. The following rules are followed while
constructing the code tree.
If the input is a '0', then the upper path is
followed and if the input is a '1', then lower path is
followed, the circles represents the 'node' and lines
represents the 'branch'. The output code [C(1) C(2)] for
each input is shown on the branches.
Consider the input sequence 1 0 1 1 0 1 1 0
as the input to the convolution encoder, then the code
tree for the above input is as shown below.

Figure 3. Code tree for the input 1011011

III.

VITERBI DECODER

When a sequence of data is received from the
channel, it is required to estimate the original
sequence that has been sent. The process of
identifying original message sequence from the
received data can be done using the diagram called
"trellis"[4]. A Viterbi decoder uses the Viterbi
algorithm for decoding a bit stream that has been
encoded using Forward error correction based on a
convolutional code[5].Figure 4 shows the block
diagram of Viterbi decoder.
Branch
Metric
unit

Branch
Metric

Trace
Back
Unit

Add Compare
and Select Unit

Optimal
Path

Survivor Path
Metric Metric

previous
State
Information
Survivor Path
Metric Metric

Survivor
Memory

previous
State
Information

Figure 4. Block diagram of Viterbi decoder

Figure 2. State diagram of K=7, r=1/2 convolution
encoder
www.ijera.com

a)
b)
c)
d)

It consists of following functional units.
Branch Metric Unit (BMU)
Add Compare and Select Unit (ACS)
Survivor Memory Unit
Trace Back Unit (TBU)
43 | P a g e
Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application
ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46
Using the functional units of Viterbi decoder
the Viterbi Algorithm is computed and the original
message sequence is obtained by following the below
mentioned steps[2].
Step 1: Two parallel binary bits are inputted into the
Viterbi decoder and then the hamming distance
computation module (BMU) calculates sixty four set
of hamming distance. Each set consists of two values
because each current state can be reached by two
possible paths.
Step 2: Cumulative hamming distance till the last
branch is added to hamming distance of the new
branches by ACS module. After adding operation each
current state gets two new cumulative hamming
distances, now ACS module compares the size of the
two cumulative distances and selects the smaller one
as a survivor. The smaller cumulative hamming
distance becomes the benchmark for the next
computation. Survivor paths of all the sixty four states
are stored in RAM blocks of Survivor memory unit.
Step 3: sixty four survivor paths are stored in the
RAM blocks at each stage. When there are no more
encoded bits to process the detection of a node having
minimum path metric is done by comparing all the
sixty four cumulative hamming distances at the last
stage.
Step 4: Using the minimum path metric of last stage
the Trace back Unit starts back tracing survivor paths
which are stored in the memory unit. according to
survivor path values the original transmitted message
is determined.
A. Branch Metric Unit
Expected
Codes

Modular
2
Adder
Two
Bits

Count the
number of
1 in the
two bits

Hamming
Distance

Received
Codes

Figure 5. Block diagram of Branch Metric Unit
In this unit hamming distance computation is
done. This Unit compares the received codes with the
expected codes of the current state and calculates the
hamming distance between them. The block diagram
of BMU is shown in figure 5. Hamming distance is
calculated by giving the received codes and expected
codes to modular 2 Adder and number of one's present
in the resulting two bits is checked. This gives the
hamming distance between those codes.

www.ijera.com

Possible
Path
metric 1

Path metric
from previous
stage

Survivor
Path
metric for
storage

Add
Possible
Branch
Metric 1
Compare
Path metric
from previous
stage
Possible
Branch
Metric 2

Add

Possible
Path
metric 2

Survivor
Path
metric to
next stage

Figure 6. Block diagram of Add Compare and Select
Unit
The hardware architecture of the ACS
module is shown in figure 6. Path metric of the
node/state is found by adding the path metric from the
previous stage and the present branch metrics. Since
there are two possible way to reach any node/state two
path metrics are obtained, these two are compared to
select the one with the least path metric. The selected
least path metric is sent for storage as well as it is used
as benchmark for calculating the path metric of next
stage.
C. Survivor Memory Unit
This unit is used for storing the survivor path
values of the ACS modules. Each stage there are 64
survivor paths and number of such stages vary
depending on the length of encoded bits received.
another memory is reserved for trace back depth
which defines the maximum number of stages that is
allowed during the decoding process.
D. Trace Back Unit
Once the minimum path metrics of all the
nodes at each stage is calculated, the minimum path
metric at the last stage is found. The node having the
minimum path metrics at the last stage is given as
input to Trace Back Unit and then it starts trace
backing the survival paths from that node and outputs
the corresponding bit which has caused the transition
of that path. In this paper decoding depth of 64 is set
in the decoder. The below figure 7 shows the trace
back procedure followed.

B. Add Compare and Select Unit

Figure 7. Trace back procedure of optimal path

www.ijera.com

44 | P a g e
Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application
ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46
Butterfly Diagram
As mentioned earlier there are always two
possible path to reach any node/state. The
representation of this is done using the figure 8 as
shown below which is popularly referred as butterfly
diagram.
S

001010

000101

x

Sx+

001011

www.ijera.com

respectively. The design is tested for different trials by
introducing the errors manually.

V.

RESULTS

The Convolution Encoder and Viterbi
Decoder for constraint length 7 and bit rate 1/2 has
been developed and synthesis is done. Figure 10
shows the output of encoder.
Input = 1 0 1 1 0 1 1
output = 1101000110011000

100101

32

Figure 8. Butterfly diagram
In the diagram the state S40 ('000101') is taken
as example, this state can be reached from two
different states namely S20 and S52. During
computation out of these two any 'one' state will have
the minimum path metric. The transition path having
the minimum path metric is labelled as survivor path
and stored in the memory. While tracing back if at any
point this node comes then the survivor path to that
node is followed to reach the previous stage and the
bit causing that transition is taken as output. In the
above figure the transition caused due to '0' is marked
in dotted line and the transition caused due to '1' is
marked as solid line.

Input bit 1

output bit '11'
for the first
input bit '1'

Figure 10. Output waveform of encoder
Considering the effect of noise suppose if the
encoded data is corrupted then also decoder should be
able to retrieve the original message sequence. Figure
11 shows the output of decoder if the error has
occurred at second bit of the encoded sequence.
Input = 1001000110011000
output = 1 0 1 1 0 1 1

Trellis Diagram
The original message sequence is encoded
following a path which has to be determined at the
decoder part of receiver to get the original message
sequence from the encoded data. For the
representation of this path a 'trellis diagram' is used.
An example of trellis structure for K=3 and r=1/2 is
given below in figure 9.

Error in the
2nd bit

output reading
direction

Figure 9. Trellis diagram for K = 3 and r = 1/2

IV.

IMPLEMENTATION

Implementation of Convolution Encoder and
Viterbi Decoder for constraint length 7 and bit rate 1/2
is done using Verilog HDL. The design is simulated
and synthesized using ModelSim PE Student
Edition10.2a and Xilinx ISE Design Suit 14.3

www.ijera.com

Figure 11. Output waveform of decoder
In the figure we can observe the trace
backing process results in the original message
sequence ( output is read in the direction or arrow)
rectifying the error.
45 | P a g e
Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application
ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46
The synthesis report gives the device
utilization table for both convolution encoder and
Viterbi decoder as shown in table 1 and table 2.

[3].
[4].

Table 1. Device utilization table for convolution
encoder

[5].

[6].

[7].
[8].
Table 2. Device utilization table for Viterbi decoder

www.ijera.com

"Information Theory and Coding", by Prof.
K. Giridhar, pooja publications.
V.Kavinilavu, S. Salivahanan, V. S.
Kanchana
Bhaaskaran,
Samiappa
Sakthikumaran, B. Brindha and C. Vinoth,"
Implementation of Convolutional Encoder &
Viterbi Decoder using Verilog HDL",IEEE,
2011
HEMA.S, SURESH BABU.V, RAMESH P
"FPGA Implementation of Viterbi Decoder",
Proceedings of the 6th WSEAS Int. Conf. on
Electronics, Hardware, Wireless and Optical
Communications, Corfu Island, Greece,
February 16-19, 2007.
DR. Anubhuti Khare, Manish Saxena,
Jagdish Patel "FPGA Implementation of
Viterbi Decoder.
"Error Detection and Correction" at
www.mathworks.in
Sherif Welsen Shaker, Salwa Hussein
Elramly, Khaled Ali Shehata "FPGA
Implementation of a Reconfigurable Viterbi
Decoder for Wimax Receiver", International
Conference on Microelectronics, 2009.

Acknowledgement
I would like to express my sincere gratitude to Mr.
Kasetty Rambabu for his guidance in the course of my
research. I am also grateful to Dr. K.N Hari Bhat and
Mr. Ashish Gupta for their generous discussion and
helps, without their help this paper is impossible to be
completed.

VI.

CONCLUSION

Convolution encoder and Viterbi decoder for
constraint length 7 and bit rate 1/2 is implemented
using Verilog HDL and simulated using ModelSim PE
Student Edition
.
10.2a and synthesis is done using Xilinx ISE
Design Suit 14.3 tool. The working of the design is
cross verified for many trials with introducing errors.

Sandesh Y.M

REFRENCES
[1].

[2].

Madhu Vamshi Malladi, "Reconfigurable
Viterbi Decoder", The University of New
Brunswick, Canada, 2005.
Yan Sun, Zhizhong Ding "FPGA Design and
Implementation of a Convolutional Encoder
and a Viterbi Decoder Based on 802.11a for
OFDM",
Wireless
Engineering
and
Technology,
2012,
3,
125-131,
doi:10.4236/wet.2012.33019
Published
Online July 2012

www.ijera.com

46 | P a g e

Mais conteúdo relacionado

Mais procurados

N byte error detecting and correcting code using reedsolomon
N byte error detecting and correcting code using reedsolomonN byte error detecting and correcting code using reedsolomon
N byte error detecting and correcting code using reedsolomoneSAT Publishing House
 
FPGA Based Decimal Matrix Code for Passive RFID Tag
FPGA Based Decimal Matrix Code for Passive RFID TagFPGA Based Decimal Matrix Code for Passive RFID Tag
FPGA Based Decimal Matrix Code for Passive RFID TagIJERA Editor
 
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...IOSR Journals
 
Channel Coding (Digital communication)
Channel Coding (Digital communication)Channel Coding (Digital communication)
Channel Coding (Digital communication)VARUN KUMAR
 
SECURITY EVALUATION OF LIGHT-WEIGHT BLOCK CIPHERS BY GPGPU
SECURITY EVALUATION OF LIGHT-WEIGHT BLOCK CIPHERS BY GPGPUSECURITY EVALUATION OF LIGHT-WEIGHT BLOCK CIPHERS BY GPGPU
SECURITY EVALUATION OF LIGHT-WEIGHT BLOCK CIPHERS BY GPGPUacijjournal
 
Gsm Soft Viterbi Code
Gsm Soft Viterbi CodeGsm Soft Viterbi Code
Gsm Soft Viterbi Codefrankie_z
 
Differential 8 PSK code with multisymbol interleaving
Differential 8 PSK code with multisymbol interleavingDifferential 8 PSK code with multisymbol interleaving
Differential 8 PSK code with multisymbol interleavingSaša Đorđević
 
Tele4653 l11
Tele4653 l11Tele4653 l11
Tele4653 l11Vin Voro
 
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...IJERA Editor
 
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...Iaetsd Iaetsd
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...ijceronline
 
Digital Watermarking through Embedding of Encrypted and Arithmetically Compre...
Digital Watermarking through Embedding of Encrypted and Arithmetically Compre...Digital Watermarking through Embedding of Encrypted and Arithmetically Compre...
Digital Watermarking through Embedding of Encrypted and Arithmetically Compre...IJNSA Journal
 
Linear block coding
Linear block codingLinear block coding
Linear block codingjknm
 
Error Detection and Correction in SRAM Cell Using Decimal Matrix Code
Error Detection and Correction in SRAM Cell Using Decimal Matrix CodeError Detection and Correction in SRAM Cell Using Decimal Matrix Code
Error Detection and Correction in SRAM Cell Using Decimal Matrix Codeiosrjce
 
Modified Golomb Code For Integer Representation
Modified Golomb Code For Integer RepresentationModified Golomb Code For Integer Representation
Modified Golomb Code For Integer RepresentationIJSRD
 
Performance bounds for unequally punctured
Performance bounds for unequally puncturedPerformance bounds for unequally punctured
Performance bounds for unequally puncturedeSAT Publishing House
 

Mais procurados (19)

N byte error detecting and correcting code using reedsolomon
N byte error detecting and correcting code using reedsolomonN byte error detecting and correcting code using reedsolomon
N byte error detecting and correcting code using reedsolomon
 
FPGA Based Decimal Matrix Code for Passive RFID Tag
FPGA Based Decimal Matrix Code for Passive RFID TagFPGA Based Decimal Matrix Code for Passive RFID Tag
FPGA Based Decimal Matrix Code for Passive RFID Tag
 
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
Design and Implementation of Encoder for (15, k) Binary BCH Code Using VHDL a...
 
Channel Coding (Digital communication)
Channel Coding (Digital communication)Channel Coding (Digital communication)
Channel Coding (Digital communication)
 
SECURITY EVALUATION OF LIGHT-WEIGHT BLOCK CIPHERS BY GPGPU
SECURITY EVALUATION OF LIGHT-WEIGHT BLOCK CIPHERS BY GPGPUSECURITY EVALUATION OF LIGHT-WEIGHT BLOCK CIPHERS BY GPGPU
SECURITY EVALUATION OF LIGHT-WEIGHT BLOCK CIPHERS BY GPGPU
 
Gsm Soft Viterbi Code
Gsm Soft Viterbi CodeGsm Soft Viterbi Code
Gsm Soft Viterbi Code
 
Differential 8 PSK code with multisymbol interleaving
Differential 8 PSK code with multisymbol interleavingDifferential 8 PSK code with multisymbol interleaving
Differential 8 PSK code with multisymbol interleaving
 
Tele4653 l11
Tele4653 l11Tele4653 l11
Tele4653 l11
 
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...
Performance Study of BCH Error Correcting Codes Using the Bit Error Rate Term...
 
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
Iaetsd implementation of power efficient iterative logarithmic multiplier usi...
 
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...IJCER (www.ijceronline.com) International Journal of computational Engineerin...
IJCER (www.ijceronline.com) International Journal of computational Engineerin...
 
Hamming codes
Hamming codesHamming codes
Hamming codes
 
Digital Watermarking through Embedding of Encrypted and Arithmetically Compre...
Digital Watermarking through Embedding of Encrypted and Arithmetically Compre...Digital Watermarking through Embedding of Encrypted and Arithmetically Compre...
Digital Watermarking through Embedding of Encrypted and Arithmetically Compre...
 
Linear block coding
Linear block codingLinear block coding
Linear block coding
 
Research Paper
Research PaperResearch Paper
Research Paper
 
40120130406011 2-3
40120130406011 2-340120130406011 2-3
40120130406011 2-3
 
Error Detection and Correction in SRAM Cell Using Decimal Matrix Code
Error Detection and Correction in SRAM Cell Using Decimal Matrix CodeError Detection and Correction in SRAM Cell Using Decimal Matrix Code
Error Detection and Correction in SRAM Cell Using Decimal Matrix Code
 
Modified Golomb Code For Integer Representation
Modified Golomb Code For Integer RepresentationModified Golomb Code For Integer Representation
Modified Golomb Code For Integer Representation
 
Performance bounds for unequally punctured
Performance bounds for unequally puncturedPerformance bounds for unequally punctured
Performance bounds for unequally punctured
 

Destaque (20)

Jl3516261638
Jl3516261638Jl3516261638
Jl3516261638
 
Ec36783787
Ec36783787Ec36783787
Ec36783787
 
Dx36745748
Dx36745748Dx36745748
Dx36745748
 
Q369699
Q369699Q369699
Q369699
 
Ir3515031508
Ir3515031508Ir3515031508
Ir3515031508
 
Io3514861491
Io3514861491Io3514861491
Io3514861491
 
It3515151519
It3515151519It3515151519
It3515151519
 
Ba4101300306
Ba4101300306Ba4101300306
Ba4101300306
 
Ay4101287291
Ay4101287291Ay4101287291
Ay4101287291
 
R4101112115
R4101112115R4101112115
R4101112115
 
At4101261265
At4101261265At4101261265
At4101261265
 
D41012230
D41012230D41012230
D41012230
 
Ae4101177181
Ae4101177181Ae4101177181
Ae4101177181
 
Bc4101312317
Bc4101312317Bc4101312317
Bc4101312317
 
L41018792
L41018792L41018792
L41018792
 
I41016172
I41016172I41016172
I41016172
 
Be4101324326
Be4101324326Be4101324326
Be4101324326
 
Je3515811587
Je3515811587Je3515811587
Je3515811587
 
Communist party line fbi file series in 25 parts - vol. (23)
Communist party line   fbi file series in 25 parts - vol. (23)Communist party line   fbi file series in 25 parts - vol. (23)
Communist party line fbi file series in 25 parts - vol. (23)
 
Cfes ssubsidios sociojuridico2014
Cfes ssubsidios sociojuridico2014Cfes ssubsidios sociojuridico2014
Cfes ssubsidios sociojuridico2014
 

Semelhante a G364246

Performance analysis of viterbi decoder for wireless applications
Performance analysis of viterbi decoder for wireless applicationsPerformance analysis of viterbi decoder for wireless applications
Performance analysis of viterbi decoder for wireless applicationsacijjournal
 
Implementation of Viterbi Decoder on FPGA to Improve Design
Implementation of Viterbi Decoder on FPGA to Improve DesignImplementation of Viterbi Decoder on FPGA to Improve Design
Implementation of Viterbi Decoder on FPGA to Improve Designijsrd.com
 
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...IJERA Editor
 
FPGA Implementation of Soft Output Viterbi Algorithm Using Memoryless Hybrid ...
FPGA Implementation of Soft Output Viterbi Algorithm Using Memoryless Hybrid ...FPGA Implementation of Soft Output Viterbi Algorithm Using Memoryless Hybrid ...
FPGA Implementation of Soft Output Viterbi Algorithm Using Memoryless Hybrid ...VLSICS Design
 
A Low Power VITERBI Decoder Design With Minimum Transition Hybrid Register Ex...
A Low Power VITERBI Decoder Design With Minimum Transition Hybrid Register Ex...A Low Power VITERBI Decoder Design With Minimum Transition Hybrid Register Ex...
A Low Power VITERBI Decoder Design With Minimum Transition Hybrid Register Ex...VLSICS Design
 
FPGA IMPLEMENTATION OF SOFT OUTPUT VITERBI ALGORITHM USING MEMORYLESS HYBRID ...
FPGA IMPLEMENTATION OF SOFT OUTPUT VITERBI ALGORITHM USING MEMORYLESS HYBRID ...FPGA IMPLEMENTATION OF SOFT OUTPUT VITERBI ALGORITHM USING MEMORYLESS HYBRID ...
FPGA IMPLEMENTATION OF SOFT OUTPUT VITERBI ALGORITHM USING MEMORYLESS HYBRID ...VLSICS Design
 
Viterbi Decoder Plain Sailing Design for TCM Decoders
Viterbi Decoder Plain Sailing Design for TCM DecodersViterbi Decoder Plain Sailing Design for TCM Decoders
Viterbi Decoder Plain Sailing Design for TCM Decodersijtsrd
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...ijceronline
 
AN EFFICIENT VITERBI DECODER
AN EFFICIENT VITERBI DECODERAN EFFICIENT VITERBI DECODER
AN EFFICIENT VITERBI DECODERIJCSEA Journal
 
An efficient reconfigurable code rate cooperative low-density parity check co...
An efficient reconfigurable code rate cooperative low-density parity check co...An efficient reconfigurable code rate cooperative low-density parity check co...
An efficient reconfigurable code rate cooperative low-density parity check co...IJECEIAES
 
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier SystemsFPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier SystemsIJMER
 
VHDL Design and FPGA Implementation of a High Data Rate Turbo Decoder based o...
VHDL Design and FPGA Implementation of a High Data Rate Turbo Decoder based o...VHDL Design and FPGA Implementation of a High Data Rate Turbo Decoder based o...
VHDL Design and FPGA Implementation of a High Data Rate Turbo Decoder based o...IJECEIAES
 
A Configurable and Low Power Hard-Decision Viterbi Decoder in VLSI Architecture
A Configurable and Low Power Hard-Decision Viterbi Decoder in VLSI ArchitectureA Configurable and Low Power Hard-Decision Viterbi Decoder in VLSI Architecture
A Configurable and Low Power Hard-Decision Viterbi Decoder in VLSI ArchitectureIRJET Journal
 
A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...
A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...
A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...eSAT Journals
 
Improving The Performance of Viterbi Decoder using Window System
Improving The Performance of Viterbi Decoder using Window System Improving The Performance of Viterbi Decoder using Window System
Improving The Performance of Viterbi Decoder using Window System IJECEIAES
 

Semelhante a G364246 (20)

Performance analysis of viterbi decoder for wireless applications
Performance analysis of viterbi decoder for wireless applicationsPerformance analysis of viterbi decoder for wireless applications
Performance analysis of viterbi decoder for wireless applications
 
Implementation of Viterbi Decoder on FPGA to Improve Design
Implementation of Viterbi Decoder on FPGA to Improve DesignImplementation of Viterbi Decoder on FPGA to Improve Design
Implementation of Viterbi Decoder on FPGA to Improve Design
 
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
Analysis and Implementation of Hard-Decision Viterbi Decoding In Wireless Com...
 
K0216571
K0216571K0216571
K0216571
 
FPGA Implementation of Soft Output Viterbi Algorithm Using Memoryless Hybrid ...
FPGA Implementation of Soft Output Viterbi Algorithm Using Memoryless Hybrid ...FPGA Implementation of Soft Output Viterbi Algorithm Using Memoryless Hybrid ...
FPGA Implementation of Soft Output Viterbi Algorithm Using Memoryless Hybrid ...
 
A Low Power VITERBI Decoder Design With Minimum Transition Hybrid Register Ex...
A Low Power VITERBI Decoder Design With Minimum Transition Hybrid Register Ex...A Low Power VITERBI Decoder Design With Minimum Transition Hybrid Register Ex...
A Low Power VITERBI Decoder Design With Minimum Transition Hybrid Register Ex...
 
Lb35189919904
Lb35189919904Lb35189919904
Lb35189919904
 
FPGA IMPLEMENTATION OF SOFT OUTPUT VITERBI ALGORITHM USING MEMORYLESS HYBRID ...
FPGA IMPLEMENTATION OF SOFT OUTPUT VITERBI ALGORITHM USING MEMORYLESS HYBRID ...FPGA IMPLEMENTATION OF SOFT OUTPUT VITERBI ALGORITHM USING MEMORYLESS HYBRID ...
FPGA IMPLEMENTATION OF SOFT OUTPUT VITERBI ALGORITHM USING MEMORYLESS HYBRID ...
 
Viterbi Decoder Plain Sailing Design for TCM Decoders
Viterbi Decoder Plain Sailing Design for TCM DecodersViterbi Decoder Plain Sailing Design for TCM Decoders
Viterbi Decoder Plain Sailing Design for TCM Decoders
 
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 IJCER (www.ijceronline.com) International Journal of computational Engineeri... IJCER (www.ijceronline.com) International Journal of computational Engineeri...
IJCER (www.ijceronline.com) International Journal of computational Engineeri...
 
AN EFFICIENT VITERBI DECODER
AN EFFICIENT VITERBI DECODERAN EFFICIENT VITERBI DECODER
AN EFFICIENT VITERBI DECODER
 
E42032732
E42032732E42032732
E42032732
 
An efficient reconfigurable code rate cooperative low-density parity check co...
An efficient reconfigurable code rate cooperative low-density parity check co...An efficient reconfigurable code rate cooperative low-density parity check co...
An efficient reconfigurable code rate cooperative low-density parity check co...
 
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier SystemsFPGA Implementation of Efficient Viterbi Decoder for  Multi-Carrier Systems
FPGA Implementation of Efficient Viterbi Decoder for Multi-Carrier Systems
 
40120140505011
4012014050501140120140505011
40120140505011
 
VHDL Design and FPGA Implementation of a High Data Rate Turbo Decoder based o...
VHDL Design and FPGA Implementation of a High Data Rate Turbo Decoder based o...VHDL Design and FPGA Implementation of a High Data Rate Turbo Decoder based o...
VHDL Design and FPGA Implementation of a High Data Rate Turbo Decoder based o...
 
A Configurable and Low Power Hard-Decision Viterbi Decoder in VLSI Architecture
A Configurable and Low Power Hard-Decision Viterbi Decoder in VLSI ArchitectureA Configurable and Low Power Hard-Decision Viterbi Decoder in VLSI Architecture
A Configurable and Low Power Hard-Decision Viterbi Decoder in VLSI Architecture
 
A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...
A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...
A 2 stage data word packet communication decoder using rate 1-by-3 viterbi de...
 
Improving The Performance of Viterbi Decoder using Window System
Improving The Performance of Viterbi Decoder using Window System Improving The Performance of Viterbi Decoder using Window System
Improving The Performance of Viterbi Decoder using Window System
 
Ff34970973
Ff34970973Ff34970973
Ff34970973
 

Último

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

G364246

  • 1. Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46 www.ijera.com RESEARCH ARTICLE OPEN ACCESS Implementation of Convolution Encoder and Viterbi Decoder for Constraint Length 7 and Bit Rate 1/2 Mr. Sandesh Y.M*, Mr. Kasetty Rambabu** *(Department of Electronics & Communication, Nagarjuna College of Engineering & Technology, Bengaluru) ** (Department of Electronics & Communication, Nagarjuna College of Engineering & Technology,Bengaluru) ABSTRACT Convolutional codes are non blocking codes that can be designed to either error detecting or correcting. Convolution coding has been used in communication systems including deep space communication and wireless communication. At the receiver end the original message sequence is obtained from the received data using Viterbi decoder. It implements Viterbi Algorithm which is a maximum likelihood algorithm, based on the minimum cumulative hamming distance it decides the optimal trellis path that is most likely followed at the encoder. In this paper I present the convolution encoder and Viterbi decoder for constraint length 7 and bit rate 1/2. Keywords - Convolution Encoder, trellis diagram, Verilog HDL, Viterbi algorithm, Viterbi decoder. I. INTRODUCTION Elias introduced convolutional codes in 1955[1]. Convolution coding has been used in communication systems including deep space communication and wireless communication. An advantage of convolutional coding is that it can be applied to a continuous data stream as well as block of data. Convolutional coding scheme correlates information elements by means of exclusive -or (XOR) operation, resulting in the increases of transmission redundancy[2]. Convolutional codes are used in applications that require good performance with low implementation cost. Several practical procedures have been developed for decoding. In 1967 A.J Viterbi introduced "Viterbi decoding" based on the maximum likelihood algorithm. At the receiver, the actual received encoded data plus the noise is compared with the encoded data sequence for each of the possible outputs of the convolution encoder. The closest hypothetical encoded data sequence will be optimum received encoded data sequence[1]. Viterbi algorithm is the most resource consuming, efficient and robust. II. CONVOLUTION ENCODER Encoding of convolutional codes can be accomplished using simple registers. In convolutional encoder, the message stream continuously runs through the encoder unlike in the block coding schemes where the message is first divided into long blocks and then encoded. Thus the convolutional encoder requires very little buffering and storage hardware[3]. In this paper for a convolutional encoder, the following notations are used. c = number of output bits. x = number of input bits entering at a time. m = number of stages of shift register. www.ijera.com L = number of bits in a message sequence. j = number of modulo 2 adders. Constraint Length: K = (m + 1) digits. Bit Rate: r = x / c Output C2 + input X=dn dn-1 dn-2 dn-3 dn-4 dn-5 dn-6 + Output C1 Figure 1. Convolution encoder for constraint length (K)=7,bit rate (r)=1/2 The block diagram of convolution encoder is shown in figure 2. To generate the output, the encoder uses 7 values of the input signal (1 present input bit and 6 previous input bits). The set of values of input data in the shift register is called a state. The number of input data values used to generate the code is called the constraint length. Each set of outputs is generated by XOR ing a pattern of current and shifted values of input data. If g1(j), g2(j), g3(j), . . . . . g7(j) denote the "impulse responses" also called "generator sequences" of input-output path through 'jth' modulo2 Adder. Then the encoder generates 'j' number of 42 | P a g e
  • 2. Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46 output sequences denoted by C(1), C(2). From definition of discrete convolution[3], we have Cn(j) = dn-i * gi+1(j) - - -(1) Therefore, g(1) and g(2) for the convolution encoder shown in figure1 is given by [2][3] g(1) = g1(1) g2(1) g3(1) g4(1) g5(1) g6(1) = 1 0 1 1 0 1 1 g(2) = g1(2) g2(2) g3(2) g4(2) g5(2) g6(2) = 1 1 1 1 0 0 1 The 2 output bits are generated by XOR ing the following bits. C1= dn ⊕ dn-2 ⊕ dn-3 ⊕ dn-5 ⊕ dn-6 - - -(2) C2= dn ⊕ dn-1 ⊕ dn-2 ⊕ dn-3 ⊕ dn-6 - - -(3) A. State Diagram The state of an encoder is defined as its shift register contents. Each new 'x' bit input results in a new state. Therefore for one bit entering the encoder there are 21 = 2 possible branches for every state. If the Constraint length k=7, then the size of shift register would be m=6 which results in 2 m states. Therefore 26 = 64 states are named from S0 to S63. In the figure 2, 'State Diagram' is shown, here all the 64 states are represented and labelled as S0,S1,.......S63. Consider the state S0 (000000). With '0' input, the shift register remains at same state S0 and is shown as a dotted loop starting from S0 and ending at S0. With '1' input, the shift register moves to state S1 (100000) and is shown as a solid line starting from S0 and ending at S1. To make easy for tracking the transition two different types of line are used. Solid line represents the transition when the input bit is '1' and dotted line represents the transition when the input bit is '0'. www.ijera.com B. Code Tree In the state diagram shown in Figure 3. It is very difficult to follow the paths because too many paths leads to confusion hence for better understanding state diagram can be re-drawn as 'codetree'. The following rules are followed while constructing the code tree. If the input is a '0', then the upper path is followed and if the input is a '1', then lower path is followed, the circles represents the 'node' and lines represents the 'branch'. The output code [C(1) C(2)] for each input is shown on the branches. Consider the input sequence 1 0 1 1 0 1 1 0 as the input to the convolution encoder, then the code tree for the above input is as shown below. Figure 3. Code tree for the input 1011011 III. VITERBI DECODER When a sequence of data is received from the channel, it is required to estimate the original sequence that has been sent. The process of identifying original message sequence from the received data can be done using the diagram called "trellis"[4]. A Viterbi decoder uses the Viterbi algorithm for decoding a bit stream that has been encoded using Forward error correction based on a convolutional code[5].Figure 4 shows the block diagram of Viterbi decoder. Branch Metric unit Branch Metric Trace Back Unit Add Compare and Select Unit Optimal Path Survivor Path Metric Metric previous State Information Survivor Path Metric Metric Survivor Memory previous State Information Figure 4. Block diagram of Viterbi decoder Figure 2. State diagram of K=7, r=1/2 convolution encoder www.ijera.com a) b) c) d) It consists of following functional units. Branch Metric Unit (BMU) Add Compare and Select Unit (ACS) Survivor Memory Unit Trace Back Unit (TBU) 43 | P a g e
  • 3. Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46 Using the functional units of Viterbi decoder the Viterbi Algorithm is computed and the original message sequence is obtained by following the below mentioned steps[2]. Step 1: Two parallel binary bits are inputted into the Viterbi decoder and then the hamming distance computation module (BMU) calculates sixty four set of hamming distance. Each set consists of two values because each current state can be reached by two possible paths. Step 2: Cumulative hamming distance till the last branch is added to hamming distance of the new branches by ACS module. After adding operation each current state gets two new cumulative hamming distances, now ACS module compares the size of the two cumulative distances and selects the smaller one as a survivor. The smaller cumulative hamming distance becomes the benchmark for the next computation. Survivor paths of all the sixty four states are stored in RAM blocks of Survivor memory unit. Step 3: sixty four survivor paths are stored in the RAM blocks at each stage. When there are no more encoded bits to process the detection of a node having minimum path metric is done by comparing all the sixty four cumulative hamming distances at the last stage. Step 4: Using the minimum path metric of last stage the Trace back Unit starts back tracing survivor paths which are stored in the memory unit. according to survivor path values the original transmitted message is determined. A. Branch Metric Unit Expected Codes Modular 2 Adder Two Bits Count the number of 1 in the two bits Hamming Distance Received Codes Figure 5. Block diagram of Branch Metric Unit In this unit hamming distance computation is done. This Unit compares the received codes with the expected codes of the current state and calculates the hamming distance between them. The block diagram of BMU is shown in figure 5. Hamming distance is calculated by giving the received codes and expected codes to modular 2 Adder and number of one's present in the resulting two bits is checked. This gives the hamming distance between those codes. www.ijera.com Possible Path metric 1 Path metric from previous stage Survivor Path metric for storage Add Possible Branch Metric 1 Compare Path metric from previous stage Possible Branch Metric 2 Add Possible Path metric 2 Survivor Path metric to next stage Figure 6. Block diagram of Add Compare and Select Unit The hardware architecture of the ACS module is shown in figure 6. Path metric of the node/state is found by adding the path metric from the previous stage and the present branch metrics. Since there are two possible way to reach any node/state two path metrics are obtained, these two are compared to select the one with the least path metric. The selected least path metric is sent for storage as well as it is used as benchmark for calculating the path metric of next stage. C. Survivor Memory Unit This unit is used for storing the survivor path values of the ACS modules. Each stage there are 64 survivor paths and number of such stages vary depending on the length of encoded bits received. another memory is reserved for trace back depth which defines the maximum number of stages that is allowed during the decoding process. D. Trace Back Unit Once the minimum path metrics of all the nodes at each stage is calculated, the minimum path metric at the last stage is found. The node having the minimum path metrics at the last stage is given as input to Trace Back Unit and then it starts trace backing the survival paths from that node and outputs the corresponding bit which has caused the transition of that path. In this paper decoding depth of 64 is set in the decoder. The below figure 7 shows the trace back procedure followed. B. Add Compare and Select Unit Figure 7. Trace back procedure of optimal path www.ijera.com 44 | P a g e
  • 4. Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46 Butterfly Diagram As mentioned earlier there are always two possible path to reach any node/state. The representation of this is done using the figure 8 as shown below which is popularly referred as butterfly diagram. S 001010 000101 x Sx+ 001011 www.ijera.com respectively. The design is tested for different trials by introducing the errors manually. V. RESULTS The Convolution Encoder and Viterbi Decoder for constraint length 7 and bit rate 1/2 has been developed and synthesis is done. Figure 10 shows the output of encoder. Input = 1 0 1 1 0 1 1 output = 1101000110011000 100101 32 Figure 8. Butterfly diagram In the diagram the state S40 ('000101') is taken as example, this state can be reached from two different states namely S20 and S52. During computation out of these two any 'one' state will have the minimum path metric. The transition path having the minimum path metric is labelled as survivor path and stored in the memory. While tracing back if at any point this node comes then the survivor path to that node is followed to reach the previous stage and the bit causing that transition is taken as output. In the above figure the transition caused due to '0' is marked in dotted line and the transition caused due to '1' is marked as solid line. Input bit 1 output bit '11' for the first input bit '1' Figure 10. Output waveform of encoder Considering the effect of noise suppose if the encoded data is corrupted then also decoder should be able to retrieve the original message sequence. Figure 11 shows the output of decoder if the error has occurred at second bit of the encoded sequence. Input = 1001000110011000 output = 1 0 1 1 0 1 1 Trellis Diagram The original message sequence is encoded following a path which has to be determined at the decoder part of receiver to get the original message sequence from the encoded data. For the representation of this path a 'trellis diagram' is used. An example of trellis structure for K=3 and r=1/2 is given below in figure 9. Error in the 2nd bit output reading direction Figure 9. Trellis diagram for K = 3 and r = 1/2 IV. IMPLEMENTATION Implementation of Convolution Encoder and Viterbi Decoder for constraint length 7 and bit rate 1/2 is done using Verilog HDL. The design is simulated and synthesized using ModelSim PE Student Edition10.2a and Xilinx ISE Design Suit 14.3 www.ijera.com Figure 11. Output waveform of decoder In the figure we can observe the trace backing process results in the original message sequence ( output is read in the direction or arrow) rectifying the error. 45 | P a g e
  • 5. Mr. Sandesh Y.M et al Int. Journal of Engineering Research and Application ISSN : 2248-9622, Vol. 3, Issue 6, Nov-Dec 2013, pp.42-46 The synthesis report gives the device utilization table for both convolution encoder and Viterbi decoder as shown in table 1 and table 2. [3]. [4]. Table 1. Device utilization table for convolution encoder [5]. [6]. [7]. [8]. Table 2. Device utilization table for Viterbi decoder www.ijera.com "Information Theory and Coding", by Prof. K. Giridhar, pooja publications. V.Kavinilavu, S. Salivahanan, V. S. Kanchana Bhaaskaran, Samiappa Sakthikumaran, B. Brindha and C. Vinoth," Implementation of Convolutional Encoder & Viterbi Decoder using Verilog HDL",IEEE, 2011 HEMA.S, SURESH BABU.V, RAMESH P "FPGA Implementation of Viterbi Decoder", Proceedings of the 6th WSEAS Int. Conf. on Electronics, Hardware, Wireless and Optical Communications, Corfu Island, Greece, February 16-19, 2007. DR. Anubhuti Khare, Manish Saxena, Jagdish Patel "FPGA Implementation of Viterbi Decoder. "Error Detection and Correction" at www.mathworks.in Sherif Welsen Shaker, Salwa Hussein Elramly, Khaled Ali Shehata "FPGA Implementation of a Reconfigurable Viterbi Decoder for Wimax Receiver", International Conference on Microelectronics, 2009. Acknowledgement I would like to express my sincere gratitude to Mr. Kasetty Rambabu for his guidance in the course of my research. I am also grateful to Dr. K.N Hari Bhat and Mr. Ashish Gupta for their generous discussion and helps, without their help this paper is impossible to be completed. VI. CONCLUSION Convolution encoder and Viterbi decoder for constraint length 7 and bit rate 1/2 is implemented using Verilog HDL and simulated using ModelSim PE Student Edition . 10.2a and synthesis is done using Xilinx ISE Design Suit 14.3 tool. The working of the design is cross verified for many trials with introducing errors. Sandesh Y.M REFRENCES [1]. [2]. Madhu Vamshi Malladi, "Reconfigurable Viterbi Decoder", The University of New Brunswick, Canada, 2005. Yan Sun, Zhizhong Ding "FPGA Design and Implementation of a Convolutional Encoder and a Viterbi Decoder Based on 802.11a for OFDM", Wireless Engineering and Technology, 2012, 3, 125-131, doi:10.4236/wet.2012.33019 Published Online July 2012 www.ijera.com 46 | P a g e