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:
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