IT++ Logo
Public Member Functions | List of all members
itpp::CRC_Code Class Reference

Cyclic Redundancy Check Codes. More...

#include <itpp/comm/crc.h>

Public Member Functions

 CRC_Code ()
 Default Constructor.
 
 CRC_Code (const std::string &code)
 Set CRC code to one of the standardpolynomials using the string value.
 
void set_generator (const bvec &poly)
 Set an arbitary polynomial in bvec form. Start with highest order terms.
 
void set_code (const std::string &code)
 Set CRC code to one of the standardpolynomials using the string value.
 
void parity (const bvec &in_bits, bvec &out) const
 Calulate the parity bits.
 
bool check_parity (const bvec &coded_bits) const
 Return true if parity checks OK otherwise flase.
 
void encode (const bvec &in_bits, bvec &out) const
 Calculate and add parity to the in_bits.
 
bvec encode (const bvec &in_bits) const
 Returns the in_bits vector with parity added.
 
bool decode (const bvec &coded_bits, bvec &out) const
 Return true if parity checks OK otherwise flase. Also returns the message part in out.
 
bool decode (bvec &bits) const
 Return true if parity checks OK otherwise flase. Also returns the message part in bits.
 

Detailed Description

Cyclic Redundancy Check Codes.

This class will add the CRC bits after each input word. With b(i) denoting the i-th input bit and p(i) the i-th parity check bit, the order of the outbut bits will be:

[b(1), b(2), ..., b(k), p(1), p(2), ..., p(n-k)]

When the WCDMA CRC polynomials are used, this class will reverse the order of the parity check bits in order to comply to the WCDMA standard. Thus for the polynomials WCDMA-8, WCDMA-12, WCDMA-16, and WCDMA-24 the output will be:

[b(1), b(2), ..., b(k), p(n-k), ..., p(2), p(1)]

Usage:

CRC_Code crc(string("CRC-4"));
bvec bits = randb(10), coded_bits, decoded_bits;
bool error;
coded_bits = crc.encode(bits);
error = crc.decode(rec_bits, decoded_bits);

Definition at line 64 of file crc.h.

Constructor & Destructor Documentation

itpp::CRC_Code::CRC_Code ( const std::string &  code)
inline

Set CRC code to one of the standardpolynomials using the string value.

Parameters
codePossible values: CRC-4, CRC-7, CRC-8, CRC-12, CRC-24, CRC-32, CCITT-4, CCITT-5, CCITT-6, CCITT-16, CCITT-32, WCDMA-8, WCDMA-12, WCDMA-16, WCDMA-24, ATM-8, ANSI-16, SDLC-16

Definition at line 78 of file crc.h.


The documentation for this class was generated from the following files:
SourceForge Logo

Generated on Sat May 25 2013 16:32:30 for IT++ by Doxygen 1.8.2