GNU Radio C++ API Reference: constellation_soft_decoder_cf.h Source File

| GNU Radio C++ API Reference 3.10.12.0 The Free & Open Software Radio Ecosystem |

Loading...
Searching...
No Matches
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>
15#include <gnuradio/digital/constellation.h>
16#include <gnuradio/sync_interpolator.h>
17
18namespace gr {
19namespace 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
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 */
40 class DIGITAL_API constellation_soft_decoder_cf : virtual public sync_interpolator
41{
42public:
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 npwr sets expected noise power.
59 */
60 virtual void set_npwr(float 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 */
gr::digital::constellation_soft_decoder_cf
Constellation Decoder.
Definition constellation_soft_decoder_cf.h:41
gr::digital::constellation_soft_decoder_cf::sptr
std::shared_ptr< constellation_soft_decoder_cf > sptr
Definition constellation_soft_decoder_cf.h:44
gr::digital::constellation_soft_decoder_cf::set_constellation
virtual void set_constellation(constellation_sptr constellation)=0
gr::digital::constellation_soft_decoder_cf::make
static sptr make(constellation_sptr constellation, float npwr=-1)
Make constellation decoder block.
gr::digital::constellation_soft_decoder_cf::set_npwr
virtual void set_npwr(float npwr)=0
gr::digital::constellation
An abstracted constellation object.
Definition constellation.h:50
gr::sync_interpolator::sync_interpolator
sync_interpolator(void)
Definition sync_interpolator.h:31
constellation.h
api.h
DIGITAL_API
#define DIGITAL_API
Definition gr-digital/include/gnuradio/digital/api.h:18
gr::digital
Definition adaptive_algorithm.h:22
gr
GNU Radio logging wrapper.
Definition basic_block.h:29
sync_interpolator.h