IT++
4.3.1
Toggle main menu visibility
itpp
comm
channel_code.h
Go to the documentation of this file.
1
28
29
#ifndef CHANNEL_CODE_H
30
#define CHANNEL_CODE_H
31
32
#include <
itpp/base/vec.h
>
33
#include <
itpp/comm/modulator.h
>
34
#include <itpp/itexports.h>
35
36
namespace
itpp
37
{
38
42
43
//---------------------- BCH --------------------------------------
44
50
class
ITPP_EXPORT
Channel_Code
51
{
52
public
:
54
Channel_Code
() {}
56
virtual
~Channel_Code
() {}
57
59
virtual
void
encode
(
const
bvec &uncoded_bits, bvec &coded_bits) = 0;
61
virtual
bvec
encode
(
const
bvec &uncoded_bits) = 0;
62
64
virtual
void
decode
(
const
bvec &codedbits, bvec &decoded_bits) = 0;
66
//virtual bvec decode(const bvec &coded_bits);
67
virtual
bvec
decode
(
const
bvec &coded_bits) = 0;
68
70
virtual
void
decode
(
const
vec &received_signal, bvec &decoded_bits) = 0;
72
//virtual bvec decode(const vec &received_signal);
73
virtual
bvec
decode
(
const
vec &received_signal) = 0;
74
76
virtual
double
get_rate
()
const
= 0;
77
};
78
79
86
class
ITPP_EXPORT
Dummy_Code
:
public
Channel_Code
87
{
88
public
:
90
Dummy_Code
() {}
92
virtual
~Dummy_Code
() {}
93
95
virtual
void
encode
(
const
bvec &uncoded_bits, bvec &coded_bits) { coded_bits = uncoded_bits; }
97
virtual
bvec
encode
(
const
bvec &uncoded_bits) {
return
uncoded_bits; }
98
100
virtual
void
decode
(
const
bvec &coded_bits, bvec &decoded_bits) { decoded_bits = coded_bits; }
102
virtual
bvec
decode
(
const
bvec &coded_bits) {
return
coded_bits; }
103
105
virtual
void
decode
(
const
vec &received_signal, bvec &decoded_bits) {
BPSK
bpsk; bpsk.
demodulate_bits
(received_signal, decoded_bits); }
107
virtual
bvec
decode
(
const
vec &received_signal) { bvec out;
decode
(received_signal, out);
return
out; }
108
110
virtual
double
get_rate
()
const
{
return
1.0; }
111
};
112
113
114
115
}
// namespace itpp
116
117
#endif
// #ifndef CHANNEL_CODE_H
itpp::BPSK
BPSK modulator with real symbols.
Definition
modulator.h:877
itpp::BPSK::demodulate_bits
void demodulate_bits(const vec &signal, bvec &output) const
Demodulate noisy BPSK symbols in complex domain into bits.
Definition
modulator.cpp:326
itpp::Channel_Code::Channel_Code
Channel_Code()
Default constructor.
Definition
channel_code.h:54
itpp::Channel_Code::decode
virtual bvec decode(const bvec &coded_bits)=0
Decode a bvec of coded data.
itpp::Channel_Code::get_rate
virtual double get_rate() const =0
Get the code rate.
itpp::Channel_Code::encode
virtual bvec encode(const bvec &uncoded_bits)=0
Encode a bvec of input.
itpp::Channel_Code::encode
virtual void encode(const bvec &uncoded_bits, bvec &coded_bits)=0
Encode a bvec of input.
itpp::Channel_Code::decode
virtual void decode(const vec &received_signal, bvec &decoded_bits)=0
Decode a vec of received data.
itpp::Channel_Code::~Channel_Code
virtual ~Channel_Code()
Destructor.
Definition
channel_code.h:56
itpp::Channel_Code::decode
virtual bvec decode(const vec &received_signal)=0
Decode a vec of received data.
itpp::Channel_Code::decode
virtual void decode(const bvec &codedbits, bvec &decoded_bits)=0
Decode a bvec of coded data.
itpp::Dummy_Code::decode
virtual void decode(const vec &received_signal, bvec &decoded_bits)
Decode a vec of received data. Assumes soft input (BPSK modulated).
Definition
channel_code.h:105
itpp::Dummy_Code::Dummy_Code
Dummy_Code()
Default constructor.
Definition
channel_code.h:90
itpp::Dummy_Code::decode
virtual bvec decode(const bvec &coded_bits)
Decode a bvec of coded data.
Definition
channel_code.h:102
itpp::Dummy_Code::encode
virtual bvec encode(const bvec &uncoded_bits)
Encode a bvec of input.
Definition
channel_code.h:97
itpp::Dummy_Code::get_rate
virtual double get_rate() const
Get the code rate.
Definition
channel_code.h:110
itpp::Dummy_Code::decode
virtual void decode(const bvec &coded_bits, bvec &decoded_bits)
Decode a bvec of coded data.
Definition
channel_code.h:100
itpp::Dummy_Code::decode
virtual bvec decode(const vec &received_signal)
Decode a vec of received data. Assumes soft input (BPSK modulated).
Definition
channel_code.h:107
itpp::Dummy_Code::encode
virtual void encode(const bvec &uncoded_bits, bvec &coded_bits)
Encode a bvec of input.
Definition
channel_code.h:95
itpp::Dummy_Code::~Dummy_Code
virtual ~Dummy_Code()
Destructor.
Definition
channel_code.h:92
modulator.h
One- and two-dimensional modulators - header file.
itpp
itpp namespace
Definition
itmex.h:37
vec.h
Templated Vector Class Definitions.
Generated by
1.17.0