Thursday, March 4, 2021

Re: Is there a way to change the number of taps of the FIR filter in GNURadio while running?

I confirm this an issue for GR 3.8 and 3.9

I used:

  • 3 original filters with taps defined in a Variable block, and  (transition is not taken into account at runtime)
  • one filter (the last one: self.br_filter) with taps defined as firdes.low_pass(1, samp_rate, bp_low, transition) inside the filter block (transition is taken into account at runtime)

Looking at the python generated code (see below),

  • there is no tap updating when lp_taps are defined in a Variable block
  • taps are only updated for the "last" filter


    def set_transition(self, transition):
        self.transition = transition
        self.br_filter.set_taps(firdes.low_pass(1, self.samp_rate, self.bp_low, self.transition))

    def get_samp_rate(self):
        return self.samp_rate

    def set_samp_rate(self, samp_rate):
        self.samp_rate = samp_rate
        self.blocks_throttle_0.set_sample_rate(self.samp_rate)
        self.br_filter.set_taps(firdes.low_pass(1, self.samp_rate, self.bp_low, self.transition))
        self.qtgui_freq_sink_x_0.set_frequency_range(0, self.samp_rate)


On 04/03/2021 04:10, Jay Patel wrote:
Hi all,

I am using GNURadio example Filter Introduction flow graph which shows basic introduction of filtering. I want to change the no. of taps while running the program. I tried to put the qt gui range but it looks like GNURadio creates/calculates taps as a static vector in the start of the execution of the flow graph.

Is there a work around this ?  I mean can I put a slider or counter for changing the transition_width which changes the number of taps while running the flow graph ?

Thanks. Any suggestions are appreciated.

With Regards,
Jay Patel


No comments:

Post a Comment