GNU Radio Manual and C++ API Reference 3.9.4.0
The Free & Open Software Radio Ecosystem
glfsr.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2007,2012,2016 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_GLFSR_H
12#define INCLUDED_DIGITAL_GLFSR_H
13
15#include <cstdint>
16
17namespace gr {
18namespace digital {
19
20/*!
21 * \brief Galois Linear Feedback Shift Register using specified polynomial mask
22 * \ingroup waveform_generators_blk
23 *
24 * \details
25 * Generates a maximal length pseudo-random sequence of length 2^degree-1
26 */
28{
29private:
30 uint32_t d_shift_register;
31 uint32_t d_mask;
32
33public:
34 glfsr(uint32_t mask, uint32_t seed)
35 {
36 d_shift_register = seed;
37 d_mask = mask;
38 }
40
41 static uint32_t glfsr_mask(unsigned int degree);
42
43 uint8_t next_bit();
44
45 uint32_t mask() const { return d_mask; }
46};
47
48} /* namespace digital */
49} /* namespace gr */
50
51#endif /* INCLUDED_DIGITAL_GLFSR_H */
Galois Linear Feedback Shift Register using specified polynomial mask.
Definition: glfsr.h:28
static uint32_t glfsr_mask(unsigned int degree)
uint32_t mask() const
Definition: glfsr.h:45
glfsr(uint32_t mask, uint32_t seed)
Definition: glfsr.h:34
#define DIGITAL_API
Definition: gr-digital/include/gnuradio/digital/api.h:18
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition: basic_block.h:29