Hi George,
You are welcome.

> Q1. If I write a line of code to extract the remez taps, say:
>    lpfilter =
> gr::filter::pm_remez ( int  order,
> const std::vector< double > &  bands,
> const std::vector< double > &  ampl,
> const std::vector< double > &  error_weight,
> const std::string  filter_type = "bandpass",
> int  grid_density = 16
> )
> The pm_remez has a squidly line under it and if I hover it with the mouse,
> it says gr::filter has no member function pm_remez. (I tried a bunch of
> different variations of things, but the squidly line remains.)


Marcin: Have you included the appropriate header file in your code? You
should declare: *#include <gnuradio/filter/pm_remez.h>*

Q2. The doc write up states that the pm_remez filter_types are  one of:
> bandpass, hilbert or differentiator. It seems like a natural for all these
> filters to provide a lowpass option, what do you think? If I can get rid of
> the squidly line, I would be able to test if "lowpass" works.


Marcin: I think that this depends on what you want to achieve. I cannot
help here because of the lack of exact knowledge about that, sorry.

Marcin

śr., 23 lut 2022 o 19:31 George Edwards <gedwards....@gmail.com> napisał(a):

> Hi Marcin,
>
> Thank you very much! I found my error, I forgot the "gain" which is the
> first parameter to the filter. The first parameter I wrote in the filter
> method was the "sample_rate" (which was a large number), hence the filter
> function could not converge. It is all good now, thank you.
>
> I have two questions related to the remez filter (you may or maynot be
> able to give me an answer(s)):
> Q1. If I write a line of code to extract the remez taps, say:
>    lpfilter =
> gr::filter::pm_remez ( int  order,
> const std::vector< double > &  bands,
> const std::vector< double > &  ampl,
> const std::vector< double > &  error_weight,
> const std::string  filter_type = "bandpass",
> int  grid_density = 16
> )
> The pm_remez has a squidly line under it and if I hover it with the mouse,
> it says gr::filter has no member function pm_remez. (I tried a bunch of
> different variations of things, but the squidly line remains.)
>
> Q2. The doc write up states that the pm_remez filter_types are  one of:
> bandpass, hilbert or differentiator. It seems like a natural for all these
> filters to provide a lowpass option, what do you think? If I can get rid of
> the squidly line, I would be able to test if "lowpass" works.
>
> Thanks again for all your help.
>
> Regards,
> George
>
> On Wed, Feb 23, 2022 at 2:02 AM Marcin Puchlik <m.puch...@is-wireless.com>
> wrote:
>
>> 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
>>>>>>
>>>>>
          • ... Vasil Velichkov
          • ... GNU Radio, the Free & Open-Source Toolkit for Software Radio
          • ... Vasil Velichkov
          • ... GNU Radio, the Free & Open-Source Toolkit for Software Radio
  • Re: Are t... Vasil Velichkov
    • Re: ... George Edwards
      • ... GNU Radio, the Free & Open-Source Toolkit for Software Radio
        • ... George Edwards
          • ... GNU Radio, the Free & Open-Source Toolkit for Software Radio
          • ... George Edwards
          • ... GNU Radio, the Free & Open-Source Toolkit for Software Radio

Reply via email to