IT++ Logo Newcom Logo

itpp::CRC_Code Class Reference
[Forward Error Correcting Codes]

Cyclic Redundancy Check Codes. More...

#include <itpp/comm/crc.h>

List of all members.

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)
 Calulate the parity bits.
bool check_parity (const bvec &coded_bits)
 Return true if parity checks OK otherwise flase.
void encode (const bvec &in_bits, bvec &out)
 Calculate and add parity to the in_bits.
bvec encode (const bvec &in_bits)
 Returns the in_bits vector with parity added.
bool decode (const bvec &coded_bits, bvec &out)
 Return true if parity checks OK otherwise flase. Also returns the message part in out.
bool decode (bvec &bits)
 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 67 of file crc.h.


Constructor & Destructor Documentation

itpp::CRC_Code::CRC_Code (  )  [inline]

Default Constructor.

Definition at line 71 of file crc.h.

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

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

Parameters:
code Possible 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 80 of file crc.h.

References set_code().


Member Function Documentation

void itpp::CRC_Code::set_generator ( const bvec &  poly  ) 

Set an arbitary polynomial in bvec form. Start with highest order terms.

Definition at line 40 of file crc.cpp.

References it_assert, and itpp::poly().

Referenced by set_code().

void itpp::CRC_Code::set_code ( const std::string &  code  ) 

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

Definition at line 73 of file crc.cpp.

References it_assert, itpp::poly(), and set_generator().

Referenced by CRC_Code().

void itpp::CRC_Code::parity ( const bvec &  in_bits,
bvec &  out 
)

Calulate the parity bits.

Definition at line 90 of file crc.cpp.

References itpp::concat(), itpp::reverse(), and itpp::zeros_b().

Referenced by encode().

bool itpp::CRC_Code::check_parity ( const bvec &  coded_bits  ) 

Return true if parity checks OK otherwise flase.

Definition at line 109 of file crc.cpp.

References itpp::concat(), itpp::reverse(), and itpp::zeros_b().

Referenced by decode().

void itpp::CRC_Code::encode ( const bvec &  in_bits,
bvec &  out 
)

Calculate and add parity to the in_bits.

Definition at line 132 of file crc.cpp.

References itpp::concat(), and parity().

Referenced by encode().

bvec itpp::CRC_Code::encode ( const bvec &  in_bits  ) 

Returns the in_bits vector with parity added.

Definition at line 139 of file crc.cpp.

References encode().

bool itpp::CRC_Code::decode ( const bvec &  coded_bits,
bvec &  out 
)

Return true if parity checks OK otherwise flase. Also returns the message part in out.

Definition at line 146 of file crc.cpp.

References check_parity().

bool itpp::CRC_Code::decode ( bvec &  bits  ) 

Return true if parity checks OK otherwise flase. Also returns the message part in bits.

Definition at line 155 of file crc.cpp.

References check_parity().


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

Generated on Fri Jun 8 00:27:26 2007 for IT++ by Doxygen 1.5.2