George, Running the below code:
*#include <iostream>#include <gnuradio/filter/firdes.h>using namespace std;int main() { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! std::vector<float> taps = gr::filter::firdes::low_pass(1, 1, 0.3, 0.1); for(int i = 0; i < taps.size(); i++) cout << "tap " << i << ":" << "\t" << taps[i] << "\n"; return 0;}* *I get the output:* !!!Hello World!!! tap 0: -0.00124749 tap 1: 0.0026334 tap 2: -3.313e-18 tap 3: -0.00722382 tap 4: 0.00725102 tap 5: 0.0112526 tap 6: -0.0272494 tap 7: 1.54168e-17 tap 8: 0.0582835 tap 9: -0.0539706 tap 10: -0.0877955 tap 11: 0.298026 tap 12: 0.600081 tap 13: 0.298026 tap 14: -0.0877955 tap 15: -0.0539706 tap 16: 0.0582835 tap 17: 1.54168e-17 tap 18: -0.0272494 tap 19: 0.0112526 tap 20: 0.00725102 tap 21: -0.00722382 tap 22: -3.313e-18 tap 23: 0.0026334 tap 24: -0.00124749 śr., 23 lut 2022 o 02:39 George Edwards <gedwards....@gmail.com> napisał(a): > Hi Marcin and Vasil, > > Thank you guys very much! > > Marcin: I did as you suggested and left out win_type and beta. > Vasil: Based on the conversation exchanges between you Marcin, I followed > your suggestion to link in the gnuradio-filter library - in > lib/CMakeLists.txt in target_link_libraries() by adding gnuradio-filter. > Thus, the target_link_libraries in the original OOT lib/CMakeLists.txt > file was: > target_link_libraries(gnuradio-ge_filters gnuradio::gnuradio-runtime) > and I added to it as shown below: > target_link_libraries(gnuradio-ge_filters gnuradio::gnuradio-runtime > gnuradio-filter) > The OOT program compiles and makes the intended Gnuradio block for me to > load in a GRC flowgraph. For experimental purposes, I made the OOT block to > output the filter coefficients. When I run the grc, the lowpass filter > outputs all zeros, so something is wrong! > Marcin: You had written a piece of code to print "Hello World". Please run > your code to print out the returned filter coefficients and let me know if > it works well because mine is having some problems. > > This is how I invoked the filter method (all parameters are defined): > vector <float> lpfilter; //vector variable will contain the filter > coeff's > lpfilter = gr::filter::firdes::low_pass(gain, sampling_freq, cutoff_freq, > transition_bandwidth); > > Thank you guys! > > George > > > On Tue, Feb 22, 2022 at 3:41 PM Marcin Puchlik <m.puch...@is-wireless.com> > wrote: > >> Geroge, >> I posted the working code a few messages ago. Try to check this out. BTW >> as far as I can see those two arguments are optional (window type and >> beta). Try to run your code without them and check if it works. >> >> >> wt., 22 lut 2022 o 19:25 George Edwards <gedwards....@gmail.com> >> napisał(a): >> >>> Hello Vasil and Marcin, >>> >>> Thanks very much for your help. >>> >>> I have all the relevant #include header files and invoke the low_pass >>> filter as follows: >>> lpfilter = gr::filter::firdes::low_pass(gain, sampling_freq, >>> cutoff_freq, transition_bandwidth, >>> fft::window::win_type::WIN_HAMMING, beta); >>> >>> Observations: >>> Using the mouse to hover over WIN_HAMMING, I can see that it interprets >>> the win_type enum variable and correctly assigns it a value of "0" (which >>> is the value stated in the Gnuradio C++ API Reference manual). However, >>> there is a squidly under beta. Hovering over beta, the error message >>> is: >>> Argument of type "double" is incompatible with parameter of type >>> "gr::fft::window::win_type" >>> >>> If one of you has a working code fragment using one of the C++ Gnuradio >>> filter methods that you can cut, paste and send in your next email I would >>> appreciate it. >>> >>> Thanks for your help. >>> >>> George >>> >>> On Tue, Feb 22, 2022 at 6:15 AM Vasil Velichkov <vvvelich...@gmail.com> >>> wrote: >>> >>>> Hi George, >>>> >>>> On 21/02/2022 18.31, George Edwards wrote: >>>> > lpfilter = gr::filter::firdes::low_pass(gain, sampling_freq, >>>> cutoff_freq, transition_bandwidth, >>>> > fft::window::win_type < >>>> https://www.gnuradio.org/doc/doxygen/classgr_1_1fft_1_1window.html#a599d7e9625d6cc77203a8b877c4911e2>window >>>> = fft::window::win_type::WIN_HAMMING, beta = 6.76); >>>> > >>>> > This failed and showed a squidly across the line with >>>> fft::window::win_type....! >>>> >>>> Try adding "gr::" before "fft::window" and make sure >>>> gnuradio/fft/window.h is included. >>>> >>>> #include <gnuradio/fft/window.h> >>>> >>>> lpfilter = gr::filter::firdes::low_pass(gain, sampling_freq, >>>> cutoff_freq, transition_bandwidth, >>>> gr::fft::window::win_type window = >>>> fft::window::win_type::WIN_HAMMING, beta = 6.76); >>>> >>>> If this does not fix it then provide the exact error you are getting. >>>> >>>> Regards, >>>> Vasil >>>> >>>