With GNU Radio, never feel stupid ;)
Documentation did turn out quite great in most places, but as soon as
you want to figure out what happens inside, you're pretty much on your
own, often. grep/ack/git grep is a constant friend, but it's not always
easy to figure out how stuff works internally. There's a delicate
balance between writing code and documenting that outside of the code
itself, especially since GNU Radio has quite a lot of contributors.

Cheers,
Marcus

On 10.08.2015 14:44, Tom Cook wrote:
> I see.  I don't feel quite so stupid for having not found it myself, now!
>
> On Mon, 10 Aug 2015 at 13:37 Marcus Müller <marcus.muel...@ettus.com
> <mailto:marcus.muel...@ettus.com>> wrote:
>
>     Hi Tom,
>
>     added the block, opened the block properties, had a look at the
>     id; I knew that these kind of blocks live within gr-filter, so
>
>     cd gr-filter
>     vim grc/*rational*.grc ##that's where the block definitions for
>     GRC reside
>
>     found out that the non-base variant used
>     rational_resampler_$(type), but I had a look into filter, and only
>     found rational_resampler_base_*; so I guessed it was a python file.
>     Went into python/filter, and opened rational_resampler.py, based
>     on it being the only python file that was possibly relevant here.
>
>     You know, that's really unintuitive, and I think we'll need some
>     helpers or better documentation that makes finding such things easier.
>
>     Best regards,
>     Marcus
>
>
>     On 10.08.2015 14:31, Tom Cook wrote:
>>     On Mon, 10 Aug 2015 at 13:14 Marcus Müller
>>     <marcus.muel...@ettus.com <mailto:marcus.muel...@ettus.com>> wrote:
>>
>>         Hi Tom,
>>
>>         I just had to look this up. If you're in GRC, you have
>>         "rationale resampler" and "rational resampler base"; they do
>>         basically the same, but if you use the one without "base",
>>         and don't specify the taps, GNU Radio just automatically
>>         designs a filter that avoids all aliasing and imaging, which
>>         is done with a python wrapper around the C++
>>         rational_resampler_base_xxx's make function[1]. That's pretty
>>         handy in most use cases, but not too much if you want your
>>         own filter for some reason.
>>
>>         If you're using the "base" variant, you /must/ specify the
>>         taps yourself, because you directly invoke the C++ block's
>>         maker. If you go ahead and just use "[1.0]" as taps, you get
>>         the aliased results from my pictures.
>>
>>         So if you happen to /want /to specify the taps, because you
>>         can integrate the functionality of a downstream filter into
>>         the resampler to save CPU cycles, it doesn't make a
>>         difference which block you use.
>>
>>
>>     Ah, I see.  Many thanks for taking the time to explain this. 
>>     Where did you look to find out that 'rational resampler' block
>>     does an automatic filter design for you?
>>
>>     Regards,
>>     Tom
>

_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to