discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Processing expectations


From: Tom Cook
Subject: Re: [Discuss-gnuradio] Processing expectations
Date: Mon, 10 Aug 2015 13:35:48 +0000

Okay.  Time to fork on github, methinks, and start contributing documentation patches.

On Mon, 10 Aug 2015 at 14:02 Marcus Müller <address@hidden> wrote:
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 <address@hidden> 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 <address@hidden> 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



reply via email to

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