discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Integrate block functionality


From: Joe K
Subject: Re: Integrate block functionality
Date: Fri, 20 Dec 2019 09:09:03 -0800

Fair points.  As a counter-point, though, Simulink's integrate block works exactly as you'd expect an "integrate" block to work. 

I don't expect the GR documentation to explain the fundamentals of a generalized block (any IIR filter) but it would be nice if they explained what the specific implementation does (GR's IIR filter).  In general I have found that most blocks don't even say what the parameters do, or really explain what the output of a block is.  Just as an example of the difficulty a user faces, though, look at the IIR filter "Old style of taps" parameter description:

"The old style of the IIR filter uses feedback taps that are negative of what most definitions use (scipy and Matlab among them). This parameter keeps using the old GNU Radio style and is set to TRUE by default. When taps generated from scipy, Matlab, or gr_filter_design, use the new style by setting this to FALSE."

This doesn't tell me what GR's tap definition is... just how it compares to other tools.  To use the GR IIR filter block I need to know how the equivalent element works in scipy or Matlab.  It would be very nice if there was an actual description of what the filter taps field is, more than what it is not.  Imagine if LibreOffice Calc's documentation described a function as "the same as what's implemented in Excel, except parameter B is the negative of what it is in Excel", with no further explanation.  If you're not versed in Excel then such a description has no value to you.

I've actually been using GR for a long time (although, again, not a DSP expert), but 99% of what I do is in OOT modules.  The built-in blocks often have fundamental oddities in their behavior that makes them less useful than they otherwise might be.  It's not a criticism, just a comment that I hope is constructive, since developers may not have the understanding of a user's perspective.  I have a few thousand hours working with GR over 5+ years and written dozens of blocks, so I understand its value, and am grateful for that.  But even with the time I have invested in it, I still find it incredibly non-intuitive.  For me, the power of GR is its infrastructure, e.g., the scheduler, handling data streams, message passing, the GRC framework for quick and dirty testing, and so on.  I've generally found it quicker to write my own block than try to understand what the built-in blocks actually do!!

Joe



On Fri, Dec 20, 2019 at 8:44 AM Marcus D. Leech <address@hidden> wrote:
On 12/20/2019 11:33 AM, Joe K wrote:
Yeah, I understand it's not a practical thing in reality, this is mostly for a short-duration simulation which runs for a few K samples then stops. Obviously any real-world signal with any DC bias would rail this out.

I'm still surprised the integrate_x blocks allow a decimation = 1 since that effectively makes the block a pass-through.  The block documentation could use some help here.  I just requested a Wiki login and could probably make some edits to clarify this for the less-informed.  I presume that's the point of requesting a Wiki login, anyway!

I had tried the IIR approach unsuccessfully at first (not really knowing their standard form, I guess), but just revisited it, and yes, I can make that work.  Again, the documentation is pretty .. light, heheh... (https://wiki.gnuradio.org/index.php/IIR_Filter).  Probably not a big deal if you know DSP inside and out, I'm sure it's a standard thing, though.

Thanks again,
Joe
GR has always been "light" on explaining the fundamentals in the field of endeavor.  While this isn't "deliberate", it's kind of an emergent
  property of an open-source project where most of the document producers are the developers, and there aren't a team of
  tech-writers involved to produce large amounts of background material.

Contrast this to frameworks like MatLab, where they have a small army of (paid!) tech-writers who can document not only the *how* of
  a processing block (which is typical of developer docs), but also the *why*.

I am reminded of a quote from Dylan Thomas' "A Child's Christmas in Wales".

 "I received a nature book, with everything about the wasp, except for 'why?'"

Having said that:

https://wiki.gnuradio.org/index.php/Tutorials

https://wiki.gnuradio.org/index.php/SuggestedReading



On Fri, Dec 20, 2019 at 8:08 AM Marcus D. Leech <address@hidden> wrote:
A IIR filter with Alpha and Beta both set to 1.0 will accomplish this. 
Although, in real life, most people using integration functions in DSP want
   something more like what the integrate block does, since without a
"dump" type operation, the integrator output will "rail" pretty quickly.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]