IT++ Logo
exit.h
Go to the documentation of this file.
00001 
00029 #ifndef EXIT_H
00030 #define EXIT_H
00031 
00032 #include <itpp/itbase.h>
00033 #include <itpp/comm/modulator.h> //BPSK class for a priori information generation
00034 
00035 namespace itpp
00036 {
00037 
00054 class EXIT
00055 {
00056 public:
00058 
00060     double apriori_mutual_info(const double &in_sigma2A, 
00061                                const double &lim=100 
00062                               )
00063     {
00064         sigma2A = in_sigma2A;
00065         return 1.0-itpp::quad(&gaussian_fct, -lim, lim);
00066     };
00068 
00071     itpp::vec generate_apriori_info(const itpp::bvec &bits)
00072     {
00073         itpp::BPSK bpsk;
00074         return (-sigma2A/2)*bpsk.modulate_bits(bits)+std::sqrt(sigma2A)*itpp::randn(bits.length());
00075     };
00077 
00080     double extrinsic_mutual_info(const itpp::vec &obs, 
00081                                  const itpp::bvec &cond, 
00082                                  const int &N=100 
00083                                 );
00084 private:
00085     static double sigma2A;
00086     friend double itpp::quad(double (*f)(double), double a, double b, double tol);
00087     static double gaussian_fct(const double x);
00088 };
00089 
00090 }
00091 #endif /* EXIT_H_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
SourceForge Logo

Generated on Wed Jul 27 2011 16:27:04 for IT++ by Doxygen 1.7.4