IT++
4.3.1
Toggle main menu visibility
itpp
comm
exit.h
Go to the documentation of this file.
1
28
29
#ifndef EXIT_H
30
#define EXIT_H
31
32
#include <
itpp/itbase.h
>
33
#include <
itpp/comm/modulator.h
>
//BPSK class for a priori information generation
34
#include <itpp/itexports.h>
35
36
namespace
itpp
37
{
38
55
class
ITPP_EXPORT EXIT
56
{
57
public
:
59
61
double
apriori_mutual_info
(
const
double
&in_sigma2A,
62
const
double
&lim=100
63
)
64
{
65
_gaussian_fct = Gaussian_Fct(in_sigma2A);
66
return
1.0-
itpp::quad
(_gaussian_fct, -lim, lim);
67
};
68
69
72
itpp::vec
generate_apriori_info
(
const
itpp::bvec &bits)
73
{
74
itpp::BPSK
bpsk;
75
double
sigma2A = _gaussian_fct.sigma();
76
return
(-sigma2A/2)*bpsk.
modulate_bits
(bits)+std::sqrt(sigma2A)*
itpp::randn
(bits.length());
77
};
78
79
82
double
extrinsic_mutual_info(
const
itpp::vec &obs,
83
const
itpp::bvec &cond,
84
const
int
&N=100
85
);
86
private
:
87
class
ITPP_EXPORT Gaussian_Fct
88
{
89
double
_sigma;
90
public
:
91
Gaussian_Fct(): _sigma(0.0){}
92
Gaussian_Fct(
double
sigma): _sigma(sigma){}
93
double
sigma()
const
{
return
_sigma;}
94
double
operator()(
double
x)
const
;
95
};
96
Gaussian_Fct _gaussian_fct;
97
};
98
99
}
100
#endif
/* EXIT_H_ */
itpp::BPSK
BPSK modulator with real symbols.
Definition
modulator.h:877
itpp::BPSK::modulate_bits
void modulate_bits(const bvec &bits, vec &output) const
Modulate bits into BPSK symbols in complex domain.
Definition
modulator.cpp:310
itpp::apriori_mutual_info
double apriori_mutual_info(const double &in_sigma2A, const double &lim=100)
EXtrinsic Information Transfer (EXIT) chart.
Definition
exit.h:61
itpp::randn
double randn(void)
Generates a random Gaussian (0,1) variable.
Definition
random.h:831
itbase.h
Include file for the IT++ base module.
modulator.h
One- and two-dimensional modulators - header file.
itpp
itpp namespace
Definition
itmex.h:37
itpp::generate_apriori_info
itpp::vec generate_apriori_info(const itpp::bvec &bits)
Generates a priori information assuming a Gaussian distribution of the a priori information.
Definition
exit.h:72
itpp::quad
double quad(Ftn f, double a, double b, double tol=std::numeric_limits< double >::epsilon())
Definition
integration.h:162
Generated by
1.17.0