Re: gr_firdes.cc/firdes.cc - window functions - flawe

$ git diff v3.6.3 HEAD gr-filter/lib/firdes.cc (but modified since you
remain @ v3.6.3)

diff --git a/gr-filter/lib/firdes.cc b/gr-filter/lib/firdes.cc
index 5c3320d…d55a4ba 100644
— a/gr-filter/lib/firdes.cc
+++ b/gr-filter/lib/firdes.cc
@@ -746,6 +746,7 @@ namespace gr {
case WIN_RECTANGULAR:
for(int n = 0; n < ntaps; n++)
taps[n] = 1;

  •    break;
    
     case WIN_HAMMING:
      for(int n = 0; n < ntaps; n++)
    

@@ -774,16 +775,13 @@ namespace gr {
double IBeta = 1.0/Izero(beta);
double inm1 = 1.0/((double)(ntaps));
double temp;

  •     //fprintf(stderr, "IBeta = %g; inm1 = %g\n", IBeta, inm1);
    
  •     for(int i=0; i<ntaps; i++) {
    
  •       temp = i * inm1;
    
  •       //fprintf(stderr, "temp = %g\n", temp);
    
  •       taps[i] = Izero(beta*sqrt(1.0-temp*temp)) * IBeta;
    
  •       //fprintf(stderr, "taps[%d] = %g\n", i, taps[i]);
    
  •     }
    
  •     for(int i= 0; i<ntaps; i++) {
    
  •        temp = 2*i*inm1 - 1;
    
  •        taps[i] = Izero(beta*sqrt(1.0-temp*temp)) * IBeta;
    
  •      }
      }
    
  •  break;
    
  •   break;
    
     default:
      throw std::out_of_range("firdes:window: type out of range");
    

@@ -804,7 +802,7 @@ namespace gr {
throw std::out_of_range(“firdes check failed: 0 < fa <=
sampling_freq / 2”);

   if(transition_width <= 0)
  •   throw std::out_of_range("gr_dirdes check failed: 
    

transition_width >
0");

  •   throw std::out_of_range("gr_firdes check failed: 
    

transition_width >
0");
}

 void

… but don’t make the #include file changes in your v3.6.3 and you
should
change the version number (VERSION_INFO_MAINT_VERSION) in CMakeLists.txt

Hi Tom and Chris,

Thanks for your detailed guidance on this. I’ll try this out.

Bob

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs