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