Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Convolutional code
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Convolutional encoding == To convolutionally encode data, start with ''k'' [[Processor register|memory registers]], each holding one input bit. Unless otherwise specified, all memory registers start with a value of 0. The encoder has ''n'' modulo-2 [[Adder (electronics)|adder]]s (a modulo 2 adder can be implemented with a single [[Boolean algebra|Boolean]] [[XOR gate]], where the logic is: {{math|1=0+0 = 0}}, {{math|1=0+1 = 1}}, {{math|1=1+0 = 1}}, {{math|1=1+1 = 0}}), and ''n'' [[Polynomial code|generator polynomials]] — one for each adder (see figure below). An input bit ''m''<sub>1</sub> is fed into the leftmost register. Using the generator polynomials and the existing values in the remaining registers, the encoder outputs ''n'' symbols. These symbols may be transmitted or punctured depending on the desired code rate. Now [[Bitwise operation#Bit shifts|bit shift]] all register values to the right (''m''<sub>1</sub> moves to ''m''<sub>0</sub>, ''m''<sub>0</sub> moves to ''m''<sub>β1</sub>) and wait for the next input bit. If there are no remaining input bits, the encoder continues shifting until all registers have returned to the zero state (flush bit termination). [[File:Convolutional encoder non-recursive.png|frame|Img.1. Rate 1/3 non-recursive, non-systematic convolutional encoder with constraint length 3]] The figure below is a rate {{1/3}} ({{frac|''m''|''n''}}) encoder with constraint length (''k'') of 3. Generator polynomials are {{math|1=''G''<sub>1</sub> = (1,1,1),}} {{math|1=''G''<sub>2</sub> = (0,1,1)}}, and {{math|1=''G''<sub>3</sub> = (1,0,1)}}. Therefore, output bits are calculated (modulo 2) as follows: :''n''<sub>1</sub> = ''m''<sub>1</sub> + ''m''<sub>0</sub> + ''m''<sub>β1</sub> :''n''<sub>2</sub> = ''m''<sub>0</sub> + ''m''<sub>β1</sub> :''n''<sub>3</sub> = ''m''<sub>1</sub> + ''m''<sub>β1</sub>. Convolutional codes can be systematic and non-systematic: * systematic repeats the structure of the message before encoding * non-systematic changes the initial structure Non-systematic convolutional codes are more popular due to better noise immunity. It relates to the free distance of the convolutional code.<ref>Moon, Todd K. "Error correction coding." Mathematical Methods and Algorithms. Jhon Wiley and Son (2005). p. 508</ref> <gallery heights="150"> File:Non-systematic convolutional code.png|A short illustration of non-systematic convolutional code. File:Systematic convolutional code.png|A short illustration of systematic convolutional code. </gallery>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Convolutional code
(section)
Add topic