/usr/include/gnuradio/fec/ber_bf.h is in gnuradio-dev 3.7.9.1-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | /* -*- c++ -*- */
/*
* Copyright 2013-2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
*
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
#ifndef INCLUDED_FEC_BER_BF_H
#define INCLUDED_FEC_BER_BF_H
#include <gnuradio/fec/api.h>
#include <gnuradio/block.h>
namespace gr {
namespace fec {
/*!
* \brief BER block in FECAPI
* \ingroup error_coding_blk
*
* \details
*
* This block measures the bit error rate between two streams of
* packed data. It compares the bits of each streams and counts
* the number of incorrect bits between them. It outputs the log
* of the bit error rate, so a value of -X is 10^{-X} bit errors.
*
* When the \p mode is set to false (default), it is in streaming
* mode. This means that the output is constantly producing the
* current value of the BER. In this mode, there is a single
* output BER calculation per chunk of bytes passed to it, so
* there is no exact timing between calculations of BER. In this
* mode, the other two parameters to the constructor are ignored.
*
* When \p mode is true, the block is in test mode. This mode is
* used in the ber_curve_gen example and for other offline
* analysis of BER curves. Here, the block waits until at least \p
* berminerrors are observed and then produces a BER
* calculation. The parameter \p ber_limit helps make sure that
* the simulation is controlled. If the BER calculation drops
* below the \p ber_limit setting, the block will exit and simply
* return the set limit; the real BER is therefore some amount
* lower than this.
*
* Note that this block takes in data as packed bytes with 8-bits
* per byte used. It outputs a stream of floats as the log-scale BER.
*/
class FEC_API ber_bf : virtual public block
{
public:
// gr::fec::ber_bf::sptr
typedef boost::shared_ptr<ber_bf> sptr;
/*!
* Get total number of errors counter value.
*/
virtual long total_errors() = 0;
/*!
* Calculate the BER between two streams of data.
*
* \param test_mode false for normal streaming mode (default);
* true for test mode.
* \param berminerrors the block needs to observe this many
* errors before outputting a result. Only valid when
* test_mode=true.
* \param ber_limit if the BER calculation falls below this
* limit, produce this value and exit. Only valid when
* test_mode=true.
*/
static sptr make(bool test_mode = false, int berminerrors=100, float ber_limit=-7.0);
};
} /* namespace fec */
} /* namespace gr */
#endif /* INCLUDED_FEC_BER_BF_H */
|