Skip to content

Commit

Permalink
CRC
Browse files Browse the repository at this point in the history
  • Loading branch information
valbert4 committed Feb 25, 2024
1 parent e1afd23 commit ff9eda3
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 32 deletions.
28 changes: 0 additions & 28 deletions codes/classical/bits/easy/checksum.yml

This file was deleted.

45 changes: 45 additions & 0 deletions codes/classical/bits/easy/crc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#######################################################
## This is a code entry in the error correction zoo. ##
## https://github.com/errorcorrectionzoo ##
#######################################################

code_id: crc
physical: bits
logical: bits

name: 'Cyclic redundancy check (CRC) code'
short_name: 'CRC'
introduced: '\cite{doi:10.1109/JRPROC.1961.287814,preset:PetersonWeldon,preset:LinCostello}'

alternative_names:
- 'Frame check sequence (FCS)'

description: |
A generalization of the single parity-check code in which the generalization of the parity bit is the remainder of the data string (mapped into a polynomial via the \ref{topic:Cyclic-to-polynomial-correspondence}) divided by some generator polynomial.
A notable family of codes is referred to as \textit{CRC-}\(m-1\), where \(m\) is the length of the generator polynomial.
protection: 'Detects any ''burst'' error up to the length of the generator polynomial.'

realizations:
- 'CRC-16 and CRC-32 are used in data transmission, e.g., IEEE 802.16e, IEEE 802.3 \cite{manual:{Borrelli, Chris. "IEEE 802.3 cyclic redundancy check." application note: Virtex Series and Virtex-II Family, XAPP209 (v1. 0) (2001).}} and TCP/IP communication cite[Sec. 2.3.3]{doi:10.1007/978-0-387-68192-4_2}.'

notes:
- 'See Ref. \cite{doi:10.1109/CICN.2015.108} and book \cite{manual:{Wells, Richard B. Applied coding and information theory for engineers. Prentice-Hall, Inc., 1998.}} for introductions to CRC codes.'
- 'See Refs. \cite{doi:10.1109/DSN.2002.1028931,doi:10.1109/DSN.2004.1311885} for exhaustive lists of CRC polynomials, as well as the \href{https://users.ece.cmu.edu/~koopman/crc/crc32.html}{CRC Polynomial Zoo website} by Philip Koopman.'

relations:
parents:
- code_id: binary_cyclic
cousins:
- code_id: polar
detail: 'CRC codes concataned with polar codes yield improved performance of the SCL polar-code decoder \cite{doi:10.1109/LCOMM.2012.111612.121898,doi:10.1109/TIT.2015.2410251}.'


# Begin Entry Meta Information
_meta:
# Change log - most recent first
changelog:
- user_id: VictorVAlbert
date: '2024-02-25'
- user_id: GageErwin
date: '2023-08-11'
18 changes: 14 additions & 4 deletions codes/classical/bits/easy/parity_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,14 @@ logical: bits
name: 'Single parity-check (SPC) code'
short_name: 'SPC'

description: 'Also known as a \textit{sum-zero}, \textit{zero-sum}, or \textit{even-weight} code. An \([n,n-1,2]\) linear binary code whose codewords consist of the message string appended with a parity-check bit such that the parity (i.e., sum over all coordinates of each codeword) is zero. If the Hamming weight of a message is odd (even), then the parity bit is one (zero). This code requires only one extra bit of overhead and is therefore inexpensive.'
alternative_names:
- 'Sum-zero code'
- 'Zero-sum code'
- 'Even-weight code'

description: |
An \([n,n-1,2]\) linear binary code whose codewords consist of the message string appended with a \textit{parity-check bit} or \textit{parity bit} such that the parity (i.e., sum over all coordinates of each codeword) is zero.
If the Hamming weight of a message is odd (even), then the parity bit is one (zero). This code requires only one extra bit of overhead and is therefore inexpensive.'
protection: 'This code cannot protect information, it can only detect 1-bit error.'

Expand All @@ -26,10 +33,10 @@ realizations:

relations:
parents:
- code_id: binary_cyclic
detail: 'Since permutations preserve parity, the cyclic permutation of an SPC codeword is another codeword. The generator polynomial of the code is \(x-1\).'
- code_id: q-ary_parity_check
- code_id: crc
detail: 'A CRC using the divisor 11 is a single parity-check code \cite[Sec. 2.3.3]{doi:10.1007/978-0-387-68192-4_2}.'
- code_id: reed_muller
- code_id: q-ary_parity_check
detail: 'RM\((m-1,m)\) are parity-check codes.'
- code_id: nearly_perfect
- code_id: mds
Expand All @@ -45,6 +52,9 @@ relations:
- code_id: ldgm
detail: 'Concatenated SPCs are LDGM \cite{doi:10.1109/20.917609}.'

# - code_id: binary_cyclic
# detail: 'Since permutations preserve parity, the cyclic permutation of an SPC codeword is another codeword. The generator polynomial of the code is \(x-1\).'


# Begin Entry Meta Information
_meta:
Expand Down
1 change: 1 addition & 0 deletions codes/quantum/qubits/subsystem/subsystem_product.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ physical: qubits
logical: qubits

name: 'Subsystem product (SP) code'
short_name: 'SP'
introduced: '\cite{arXiv:2007.12152}'


Expand Down

0 comments on commit ff9eda3

Please sign in to comment.