summaryrefslogtreecommitdiff
path: root/gr-digital/include
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Replace boost::any with std::any"Josh Morman2021-11-061-2/+2
| | | | This reverts commit ccd28dfbb1504fdc29db267acd8aa3354fe10cd2.
* Replace boost::any with std::anyMarcus Müller2021-10-281-2/+2
| | | | | | | | This is a modernization possible through C++17 Fixes #4780 Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* digital: remove deprecation of pfb_clock_syncJosh Morman2021-10-142-2/+0
| | | | Signed-off-by: Josh Morman <jmorman@peratonlabs.com>
* digital/chunks to symbols: be less inefficientMarcus Müller2021-07-271-2/+2
| | | | | | | | | | | | | The block formerly took the tags from get_tags_in_range (which are sorted), gave them to tag_checker, which sorted them, and then went through every input sample, checking its index against the next tag. Removed the tag_checker; that saves us a sorting of a sorted vector. The other optimization is to not dispatch any tag encountered to the own message handler; instead, the handler is called directly. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* digital: Added a crc16 basic block. (#4649)cmrincon2021-07-122-0/+61
| | | Signed-off-by: cmrincon <cmrincon611@hotmail.com>
* global: automatically remove unused boost includesMarcus Müller2021-06-221-1/+0
| | | | | | | | used command: sed -i '/^#include.*boost.*$/d' $(ag -L '(boost::|BOOST)' $(ag --cpp -l '#include <boost')) Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* digital: Add NRZI option to differential en/decoderDaniel Estévez2021-06-124-2/+37
| | | | | | | | | | | | | | | | | | | This adds an option to the differential encoder an decoder blocks to perform NRZI encoding and decoding. NRZI only makes sense with a modulus of 2, so the blocks constructors will throw and exception if passed nrzi = true and a modulus different from 2. The GRC blocks handle this by hiding the modulus field if the user selects NRZI encoding. A new unit test for the NRZI version of the blocks is added. Besides checking that encode plus decode gives the original, this test also compares the C++ implementation results against a Numpy implementation. Additionally, a faster implementation of differential encoding/ decoding for modulus 2 is included here. Signed-off-by: Daniel Estévez <daniel@destevez.net>
* digital: Remove crc32 utilityMartin Braun2021-05-222-44/+0
| | | | | | | | | | This patch removes a crc32 utility that used to be used in our CRC32 blocks, but no longer is. Right now, all this does is expose a generic CRC32 function to the user (both via Python and C++), but there are enough other libraries that let the user do that. Therefore, we'll remove this. Signed-off-by: Martin Braun <martin@gnuradio.org>
* digital: remove simple_{correlator,framer}Josh Morman2021-04-214-132/+0
| | | | Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* digital: remove deprecated equalizersJosh Morman2021-04-214-205/+0
| | | | Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* digital: Fix documentation for corr_est 'threshold' paramterIpsit2021-03-101-3/+15
| | | | | Signed-off-by: Ipsit <mmkipsit@gmail.com> Signed-off-by: Martin Braun <martin@gnuradio.org>
* gr-digital: improved performance and capability of scramblers to 64-bit ↵Elof Wecksell2021-01-297-47/+66
| | | | | | | registers. Use __builtin_parity or volk popcnt. qa was also enhanced to detect errors. Signed-off-by: Elof Wecksell <elof@wecksell.se> Co-authored-by: Martin Braun <martin@gnuradio.org>
* clang-tidy: run full .clang-tidy on C++17 codebaseMarcus Müller2021-01-193-4/+4
| | | | | | | | | | | | | | | | | | | | run /usr/share/clang/run-clang-tidy.py -checks=file '-header-filter=.*' -fix .. from build directory. Then, clang-format -i $(git diff --name-only origin/master) to clang-format changed files. Then, refresh all header hashes in pybind bindings (*/python/bindings/*.cc) Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* digital: ofdm: Fix whitespace in OFDM chanest blockMartin Braun2020-12-191-25/+32
| | | | | | | | Both the C++ and Python files have really weird whitespace issues, making them hard to read. This makes the whitespace usage for consistent with usual formatting, and fixes some Doxygen issues. Signed-off-by: Martin Braun <martin@gnuradio.org>
* gr-digital: Document normalization parameter in constellation.hRon Economos2020-12-181-1/+6
| | | | Signed-off-by: Ron Economos <w6rz@comcast.net>
* Allow to choose whether to normalize constellation average magnitude, ↵Eduardo Sánchez Muñoz2020-12-181-15/+27
| | | | | | average power or to not normalize at all. Signed-off-by: Eduardo Sánchez Muñoz <esm@eduardosm.net>
* gr-digital: Update docs for MPSK SNR EstimatorThomas Habets2020-12-182-2/+8
|
* digital: deprecate clock recovery blocks covered by symbol_syncJosh Morman2020-12-175-2/+9
| | | | | | | The pfb, msk and mm clock recovery blocks are all covered by the symbol_sync block. See https://www.youtube.com/watch?v=uMEfx_l5Oxk Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* digital: update description of const enc/dec remove unpackedJosh Morman2020-11-162-3/+3
|
* digital: add constellation_encoder blockJosh Morman2020-11-163-1/+50
|
* modernization: `override` instead of virtual in all compilation unitsMarcus Müller2020-11-0313-97/+98
|
* Fix typos throughout the codeluzpaz2020-10-294-6/+6
| | | | | | | * Fix various typos Found via `codespell v2.0.dev` `codespell -q 3 -L ans,fo,hist,inout,ist,ith,nd,sinc,uint -S ./volk`
* digital: ofdm_equalizer_simpledfe: add enable_soft_output optionjapm482020-10-281-4/+14
| | | | | | | | | Enable outputting equalized symbols that are not exactly constellation symbols. This is useful for OFDM soft decoding/demodulation (e.g. optimal turbo or LDPC decoding). For compatibility, this new behaviour has to be enabled by setting the new option "enable_soft_output" to true (false by default).
* digital/qa_header: Remove manual memory managementThomas Habets2020-08-141-4/+1
|
* digital: add sptr for derive packet header typesJosh Morman2020-06-044-0/+5
|
* digital: restructure equalizers and add dfe (#3306)mormj2020-04-0911-0/+600
| | | | | | | | | | | | | | | | | | * digital: restructure equalizers and add dfe This commit restructures the linear equalizer to have a separate specifiable adaptive algorithm. Generally this works the same as the previous LMS and CMA decision directed equalizers, but also adds the ability to equalize using training sequences as well. Also, a Decision Feedback Equalizer structure is added * digital: more const in equalizers * digital: equalizers - more safety based on review * digital: dfe - use deque instead of vector for decision_history * digital - equalizers, further cleanup
* Switch from boost pointers to std C++11 pointersThomas Habets2020-04-0166-85/+80
| | | | | | | | | | | | | | | | | | | Most of this code is automated code changes: ``` set -e SUB="s/dummy/dummy/" for i in shared_ptr make_shared dynamic_pointer_cast weak_ptr enable_shared_from_this get_deleter; do SUB="$SUB;s/boost::$i/std::$i/g" done SUB="$SUB;s^#include <boost/shared_ptr.hpp>^#include <memory>^g" SUB="$SUB;s^namespace boost^namespace std^g" find . \( -name "*.cc" -o -name "*.h" -o -name "*.i" -o -name "*.cxx" -o -name "*.py" \) -print0 | xargs -0 sed -i "$SUB" ``` Only one manual change. In `./gr-fec/lib/fec_mtrx_impl.cc`, add `#include <algorithm>`.
* gr-digital:glfsr.h: drop boost/cstdint.hpp and use cstdint (michaelld)Gwenhael Goavec-Merou2020-02-071-7/+7
|
* gr-digital:glfsr.h: fix missing boost namespaceGwenhael Goavec-Merou2020-02-071-6/+6
|
* Update license header to SPDX formatdevnulling2020-01-2781-1056/+84
|
* digital: ofdm: Allow multiple CP lengths for cyclic prefixerMaximilian Stiefel2020-01-081-6/+30
| | | | | | | | This allows to specify multiple CP lengths that can be used one after another, for example for LTE modulators. - Improve sanity checking - Maintains old API
* Change some ints to unsigned intThomas Habets2020-01-061-1/+1
|
* digital: pfb clock sync: Remove deprecated set_taps() API callMartin Braun2020-01-062-24/+0
| | | | | | | This API call was deprecated a long time ago and contained a warning that it will be removed, so we're now being true to our promise. This also fixes a compiler error in SWIG *if* you have old headers installed that SWIG will find (instead of the ones in the source tree).
* Replace many `const` variables with `constexpr`Thomas Habets2020-01-041-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constexpr is like const but (for variables) guarantees evaluation at compile time (as opposed to runtime). Likely this change will do nothing on its own (though it could, since it gives the compiler more information). But it still has benefits. It allows programmer to know that initialization is not expensive (it was done at compile time), and reduces risk of a refactoring regressing the compiletimeness. Runtime initialization can be nonobvious in larger codebases. E.g.: struct S { static int foo(); }; const int bar = S::foo(); // Called and initialized at *runtime*. int S::foo() { return 10; } With constexpr: struct S { static constexpr int foo(); }; constexpr int bar = S::foo(); // Error: used before definition. constexpr int S::foo() { return 10; } Initializing at runtime is not just startup costs, but also can save memory since it'll end up in a R/O section of a binary and therefore doesn't need to be swapped out, but can be shared (in the mmap() sense of the word).
* gr-digital: Modernize C++Thomas Habets2020-01-021-1/+1
|
* clang-format: Ordering all the includesMarcus Müller2019-08-0939-45/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang-format: ordering includes in gnuradio-runtime clang-format: ordering includes in gr-filter clang-format: ordering includes in gr-fft clang-format: ordering includes in gr-audio clang-format: ordering includes in gr-analog clang-format: ordering includes in gr-fec clang-format: ordering includes in gr-wavelet clang-format: ordering includes in gr-zeromq clang-format: ordering includes in gr-vocoder clang-format: ordering includes in gr-video-sdl clang-format: ordering includes in gr-trellis clang-format: ordering includes in gr-blocks clang-format: ordering includes in gr-digital clang-format: ordering includes in gr-uhd clang-format: ordering includes in gr-dtv clang-format: ordering includes in gr-channels clang-format: ordering includes in gr-qtgui clang_format.py: re-enable include reordering
* Tree: clang-format without the include sortingMarcus Müller2019-08-0980-5915/+5872
|
* Fix for misc. documentation + trivial typosluz.paz2019-07-174-4/+4
| | | | | | | | | | | | | Found via `codespell -q 3 -L ans,sinc,hist,ist,ith,uint,fo -S ./volk` Fix typos in gnuradio-runtime/ Fix typos in gr-digital/ Fix typos in gr-qtgui/ Fix typos in gr-channels/ Fix typos in grc/ Fix typos gr-filter/ Fix typos in gr-uhd/ Fix typos in gr-blocks/ Fix typos in gr-fec/
* digital: Move enum tm_type from digital.core_est_cc to digitalVolker Schroer2019-06-181-5/+5
|
* nomalizing of constellation points is made configurableChristoph Mayer2018-12-031-3/+7
|
* digital: fix OFDM CA 'output_is_shifted' parameter use in GRC and documentationMichael Dickens2018-11-171-1/+1
|
* CMake: remove duplicately installed filesMarcus Müller2018-11-121-1/+0
| | | | | These subsequently appeared twice in install_manifest.txt, which lead to warnings/errors on deinstallation.
* Merge remote-tracking branch 'origin/next' into merge_nextMarcus Müller2018-08-3113-674/+56
|\
| * digital: replace gengen with C++ templatesAndrej Rode2018-08-253-43/+38
| |
| * Merge branch 'master' into nextMartin Braun2018-02-034-13/+13
| |\
| * \ Merge branch 'master' into nextJohnathan Corgan2017-08-272-0/+4
| |\ \
| * \ \ Merge branch 'master' into nextJohnathan Corgan2017-08-032-2/+78
| |\ \ \
| * \ \ \ Merge branch 'master' into nextJohnathan Corgan2017-07-175-1/+647
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: gr-digital/examples/CMakeLists.txt
| * \ \ \ \ Merge branch 'master' into nextJohnathan Corgan2017-04-102-0/+73
| |\ \ \ \ \
| * \ \ \ \ \ Merge branch 'master' into nextJohnathan Corgan2017-03-202-3/+8
| |\ \ \ \ \ \