| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This reverts commit ccd28dfbb1504fdc29db267acd8aa3354fe10cd2.
|
|
|
|
|
|
|
|
| |
This is a modernization possible through C++17
Fixes #4780
Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
|
|
|
|
| |
Signed-off-by: Josh Morman <jmorman@peratonlabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
| |
Signed-off-by: cmrincon <cmrincon611@hotmail.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
|
|
|
|
| |
Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
|
|
|
|
|
| |
Signed-off-by: Ipsit <mmkipsit@gmail.com>
Signed-off-by: Martin Braun <martin@gnuradio.org>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
Signed-off-by: Ron Economos <w6rz@comcast.net>
|
|
|
|
|
|
| |
average power or to not normalize at all.
Signed-off-by: Eduardo Sánchez Muñoz <esm@eduardosm.net>
|
| |
|
|
|
|
|
|
|
| |
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>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
* Fix various typos
Found via `codespell v2.0.dev`
`codespell -q 3 -L ans,fo,hist,inout,ist,ith,nd,sinc,uint -S ./volk`
|
|
|
|
|
|
|
|
|
| |
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: 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>`.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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/
|
| |
|
| |
|
| |
|
|
|
|
|
| |
These subsequently appeared twice in install_manifest.txt, which lead to
warnings/errors on deinstallation.
|
|\ |
|
| | |
|
| |\ |
|
| |\ \ |
|
| |\ \ \ |
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Conflicts:
gr-digital/examples/CMakeLists.txt
|
| |\ \ \ \ \ |
|
| |\ \ \ \ \ \ |
|