aboutsummaryrefslogtreecommitdiffstats
path: root/gr-filter/lib (follow)
Commit message (Collapse)AuthorAgeFilesLines
* classic modules: use common precompiled headersMarcus Müller2021-07-191-0/+5
| | | | | | | This commit contains all the additions to gr-*/lib/CMakeLists.txt applicable to modules already present in 3.8. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* global: remove unused <iomanip>, fix other includes in affected files when obviousMarcus Müller2021-06-171-5/+0
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* global: remove iostream from all files not use cout|cerr|cin|clogMarcus Müller2021-06-174-4/+0
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* filter: remove deprecated mmse_interpolatorJosh Morman2021-04-215-290/+0
| | | | Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* filter: Remove manual memory management for polyphase filterbankThomas Habets2021-03-013-14/+11
| | | | Signed-off-by: Thomas Habets <thomas@habets.se>
* filter: remove unnecessary set_history(1)Josh Morman2021-02-115-8/+0
| | | | | | | since d_history is set to 1 in gr::block, these statements are unnecessary Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* Fix typosluz paz2021-02-081-1/+1
| | | | | | | | Found via `codespell v2.1.dev0` `codespell -q 3 -L ans,fo,hist,inout,ist,ith,nd,sinc,uint -S ./volk` Signed-off-by: luz paz <luzpaz@users.noreply.github.com> Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* Removed unused <cassert>Marcus Müller2021-01-283-3/+0
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* gr-filter: update for additional window valuesJacob Gilbert2021-01-253-47/+46
| | | | | | Recently added window options include several additional windows that take a configuration parameter. This updates this parameter from 'beta' which was previously used only for Kaiser windows to a generic 'param' which makes sense for any window requiring a configuration parameter. The default values remain 6.76 which is not legal for the Tukey window but this error will be caught if the default is used; this is a reasonable cost for backward compatability. Signed-off-by: Jacob Gilbert <jacob.gilbert@protonmail.com>
* clang-tidy: run full .clang-tidy on C++17 codebaseMarcus Müller2021-01-198-14/+14
| | | | | | | | | | | | | | | | | | | | 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>
* filter: update decimation after gcd calculationJosh Morman2021-01-041-2/+3
| | | | Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* C++14: Use std::make_unique instead of boost::make_uniqueMarcus Müller2021-01-043-13/+13
| | | | | | Also, clean up includes Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* filter: update python binding hashesJosh Morman2020-12-181-1/+2
| | | | Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* filter: remove deprecated win_type duplicate in firdesJosh Morman2020-12-184-27/+32
| | | | | | | The win_type defined in firdes is marked as deprecated to be removed in 3.8, so let's go ahead and remove it and fix all the references Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* gr-filter: Remove unused parameter in polyphase_filterbank.Ron Economos2020-12-171-2/+1
|
* filter: remove initialization for history which is same as defaultJosh Morman2020-12-171-1/+0
|
* filter: replace rational_resampler_base with rational_resamplermormj2020-12-174-178/+277
| | | | | | | | The bulk of the rational resampler code is named rational_resampler_base and only in Python is the automatic designing of filters if taps are not specified. This pushes that code into the C++ classes (which get binded) so rational_resampler.py can go away, removing a layer of wrapping
* fir_filter: in constructor, 'decimation' is unusedJeff Long2020-11-3014-20/+19
|
* freq_xlating_fir_filter: keep phase continuous on retuneJeff Long2020-11-252-0/+16
|
* filter: remove needless empty destructors and problematic constThomas Habets2020-11-1665-147/+0
| | | | | | | You can't move from a const object, so unfortunately it's not possible to keep constness on these. This should fix #3757
* Move FFT functions and blocks to templates (#3903)mormj2020-11-036-29/+31
| | | | | | | | | | | | | * fft: refactor fft classes as templates In order to reduce code duplication construct fft objects and blocks with template paramters. Separate forward and reverse as a template parameter Maintain the real fft block forward as r2c and reverse as r2c as well Co-authored-by: Andrej Rode <mail@andrejro.de>
* modernization: `override` instead of virtual in all compilation unitsMarcus Müller2020-11-0331-135/+138
|
* Add `override` for common virtual function overridesThomas Habets2020-11-0331-39/+39
| | | | | | | | | | Mostly done with: ``` find -name "*_impl.h" | xargs sed -i -r '/(void forecast|int work|int general_work|bool check_topology)\(/{:back /\)/b nxt;N;b back;:nxt s/\)$|\)(;)/) override\1/g}' ``` Then I removed an incorrect `work` that this found.
* Fix typos throughout the codeluzpaz2020-10-291-1/+1
| | | | | | | * Fix various typos Found via `codespell v2.0.dev` `codespell -q 3 -L ans,fo,hist,inout,ist,ith,nd,sinc,uint -S ./volk`
* filter: Remove manual memory management in QAThomas Habets2020-10-264-14/+8
|
* filter/fir_filter_with_buffer: Remove manual memory managementThomas Habets2020-10-262-227/+85
| | | | | This removes the copy constructor from being exported to Python. Which is good, because calling copying this Would Be Bad.
* gr-filter: Add complex band rejection design helpersYamakaja2020-10-201-0/+92
|
* fft&filter: Remove malloc_complex/freeThomas Habets2020-09-082-13/+5
|
* Replace all calls to `get_initial_sptr` with `make_block_sptr`Thomas Habets2020-07-3031-49/+39
| | | | | | | | | | | | | | First batch of changes: ``` find […] -print0 | xargs -0 sed -i -r '/get_initial_sptr/{:nxt N;/;/!b nxt;s/get_initial_sptr\(\s*new ([^(]+)(.*)\)\)/make_block_sptr<\1>\2)/}' ``` Then: * Back out `sptr_magic.h` edits * Change some `friend` clauses * clang-format the whole thing * Update checksums in the pybind11 bindings files
* filter: Remove manual memory managementThomas Habets2020-07-0557-474/+375
| | | | | | | | | | | | | | | | | | | | | Mostly manual work, followed by updating checksums. Note that there were (and still remain) a lot of default copy constructors and copy assignment operators in the codebase that are not safe. And they're even exported to Python (some removed in this commit). While it's perfectly possible to allow safe copies once raw pointers are removed, it seems like a performance trap waiting to happen. Hence I removed the fir_filter copy cons/assignment. Short script I used to update the header file hashes for pybind11: ``` a=polyphase_filterbank S=$(md5sum $(find -name "${a}.h") | awk '{print $1}') sed -i -r "s/(BINDTOOL_HEADER_FILE_HASH)[(].*[)]/\1($S)/" $(find -name "${a}_python.cc") ```
* msg_handler: Use lambdas in most componentsJohannes Demel2020-06-043-8/+4
| | | | | With this commit, all components except gr-qtgui use lambdas instead of `boost::bind` to register msg handlers.
* filter: Fix firdes RRC filter gain for alpha == 1Brett Gottula2020-04-231-0/+1
| | | | | | * Fix gain of firdes.root_raised_cosine() when alpha is set to 1.0. Was 2x the expected gain for alpha==1.0 previously. * Adds corresponding unit test.
* gr-filter: Remove warning in fft_filter.cc logging.Ron Economos2020-04-221-6/+3
|
* filter: replace stderr logging by calls to GR's logging faciltiesMarcus Müller2020-04-132-19/+40
| | | | | This also changed a bit on the logging format of the FFT filter; I don't expect anyone to rely on that, but it's worth noting.
* Remove VOLK as a submoduleMartin Braun2020-04-111-1/+1
| | | | | | | | | | | | | | This removes the volk/ submodule pointer and updates the CMake to detect VOLK like any other dependency. The VOLK_MIN_VERSION CMake variable is added (and set to 2.1.0). The GR_VOLK_LIB variable is replaced with Volk::volk everywhere. The VOLK_INSTALL_LIBRARY_DIR and VOLK_INSTALL_INCLUDE_DIR variables weren't used and were removed. CMake will now fail if VOLK cannot be detected. Therefore, ENABLE_VOLK was also removed as a variable; all in-tree components may assume the existence of VOLK.
* gr-filter: Add ichar/ishort decimatorghostop142020-02-203-1/+133
| | | | | | | | | Current resamplers do not support ichar and ishort as an input type. When processing streaming ichar data from external sources (such as the ATA), decimation in native ichar would be faster than converting to another data type then decimating. This block provides the ability to decimate the ichar stream directly. Support was also added to support ishort data in the same manner.
* Update license header to SPDX formatdevnulling2020-01-2788-1146/+88
|
* Filter: Improve performance in xlating FIR filterghostop142020-01-212-3/+11
| | | | | | Re-ordered work call to let rotate take advantage of volk. Rather than rotating individually with each for iteration, the rotate happens after with a rotateN to use the volk version for the data.
* Fix all formatting issuesMartin Braun2020-01-106-36/+12
| | | | | This fixes every leftover file in the GNU Radio source tree to match our clang-format definition.
* Replace many `const` variables with `constexpr`Thomas Habets2020-01-042-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-filter/fft_filter: Use smart instead of raw pointersThomas Habets2020-01-037-115/+40
|
* Remove newlines from exception messagesThomas Habets2020-01-018-13/+13
|
* Fix memset clearing non-trivial type gr_complex warnings in gcc-8Anders Kalør2019-08-224-16/+18
| | | | | | | | Using memset with gr_complex is not a problem since the underlying representation of gr_complex is guaranteed to be two floats in adjacent memory locations without padding or additional memory. Fixes #2743
* clang-tidy in gnuradio-runtime: use empty() instead of size()!=0Marcus Müller2019-08-225-7/+7
|
* clang-format: Ordering all the includesMarcus Müller2019-08-0940-56/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0983-8345/+7731
|
* Fix for misc. documentation + trivial typosluz.paz2019-07-171-1/+1
| | | | | | | | | | | | | 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/
* cmake: Update to modern CMake usageAndrej Rode2019-03-041-71/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes using target based setting of includes and link libraries. This will transitively add the includes and linking flags to dependent targets. This is still a work in progress since only the dynamic libraries have been touched and not all of include_directories directives are gone yet. cmake: remove GR_INCLUDE_SUBDIRECTORY macro Previously this macro was used to inject subdirectories in the current CMake namespace. This is generally undesired and pollutes the current context. previously GNU Radio CMake had a non-default option ENABLE_STATIC_LIBS to build both, shared libraries and static libraries. This seems to be a construction taken over from autotools and serves no purpuose in CMake and complicates the library building. cmake: remove GR_LIBTOOL and la generation support This looks like it was primarily used to support projects using autotools, but comments state that the generated .la files aren't compatible with autotools anyway. cmake: Bump required CMake version to 3.8 UseSWIG cmake uses syntax which requires at least CMake 3.8 and is non-trivial to change
* cmake: remove unused *_generated_swigs syntaxAndrej Rode2019-01-071-1/+0
| | | | | these variables are always empty and are leftovers from removing gengen templates
* filter: Fix pfb_decimator_ccf_impl alloc-dealloc mismatchDan Robertson2018-12-181-1/+1
| | | | | | The d_rotator member of pfb_decimator_ccf_impl is allocated with new[] but deallocated with delete. It should instead be deallocated with delete[].