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