GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
constellation_soft_decoder_cf.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2013 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * SPDX-License-Identifier: GPL-3.0-or-later
8  *
9  */
10 
11 #ifndef INCLUDED_DIGITAL_CONSTELLATION_SOFT_DECODER_CF_H
12 #define INCLUDED_DIGITAL_CONSTELLATION_SOFT_DECODER_CF_H
13 
14 #include <gnuradio/digital/api.h>
17 
18 namespace gr {
19 namespace digital {
20 
21 /*!
22  * \brief Constellation Decoder
23  * \ingroup symbol_coding_blk
24  *
25  * \details
26  * Decode a constellation's points from a complex space to soft
27  * bits based on the map and soft decision LUT of the \p
28  * constellation object.
29  *
30  * Does not support constellations of dimensionality higher than 1 \p
31  *
32  * npwr sets the noise power to use for soft decoding.
33  * this is equivalent to 10**(-SNR/10) if the constellation is
34  * received at unit average power. defaults to -1 allowing npwr
35  * and LUT in the constellation object to be used as-is.
36  * values above 0 will recalculate LUT and set the constellation object.
37  * noise powers in the range of 0.01-1 are common.
38  *
39  */
41 {
42 public:
43  // gr::digital::constellation_soft_decoder_cf::sptr
44  typedef std::shared_ptr<constellation_soft_decoder_cf> sptr;
45 
46  /*!
47  * \brief Make constellation decoder block.
48  *
49  * \param constellation A constellation derived from class
50  * 'constellation'. Use base() method to get a shared pointer to
51  * this base class type.
52  * \param npwr sets expected noise power, default -1 set unused.
53  */
54  static sptr make(constellation_sptr constellation, float npwr = -1);
55  /*!
56  * set constellation noise power for soft decision calculation
57  *
58  * \param d_npwr sets expected noise power.
59  */
60  virtual void set_npwr(float d_npwr) = 0;
61  /*!
62  * Set a new constellation object for decoding
63  *
64  * \param constellation A constellation derived from class
65  * 'constellation'. Use base() method to get a shared pointer to
66  * this base class type.
67  */
68  virtual void set_constellation(constellation_sptr constellation) = 0;
69 };
70 
71 } /* namespace digital */
72 } /* namespace gr */
73 
74 #endif /* INCLUDED_DIGITAL_CONSTELLATION_SOFT_DECODER_CF_H */
Constellation Decoder.
Definition: constellation_soft_decoder_cf.h:41
std::shared_ptr< constellation_soft_decoder_cf > sptr
Definition: constellation_soft_decoder_cf.h:44
virtual void set_npwr(float d_npwr)=0
virtual void set_constellation(constellation_sptr constellation)=0
static sptr make(constellation_sptr constellation, float npwr=-1)
Make constellation decoder block.
An abstracted constellation object.
Definition: constellation.h:50
synchronous 1:N input to output with history
Definition: sync_interpolator.h:26
#define DIGITAL_API
Definition: gr-digital/include/gnuradio/digital/api.h:18
GNU Radio logging wrapper.
Definition: basic_block.h:29