|
From: | Marcus Müller |
Subject: | Re: [Discuss-gnuradio] Multiplying the inputs with a scalar/vector in my own block |
Date: | Wed, 8 Jun 2016 20:59:35 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 |
Hi Pavan,I am seeing Us on the output basically every time.That means the USRP ran out of samples to transmit when they were due to be transmitted! So, this means the block isn't fast enough to handle 30.72 million samples per second?It seems like it, yes. Should I lower that sampling rate? And to what value? How do we know?Well, usually, sampling rate is a demand of your application that you need to meet, not the other way around. You'd know you've reduced the sampling rate enough as soon as you stop seeing "U"s. You could approach this problem with benchmarking, but to be honest: just a bit of trial and error will get you there faster. And I guess what is the "correct" thing to see on the output? This is very likely my problem.Well, multiplication with 1 really is a no-op, so you should be seeing your normal spectrum. However, the repeated underruns mean that there's discontinuities in your signal, which inherently have high bandwidth. So, I'd expect that as soon as we fix the "U" issue, your signal would be fine. So, Python blocks are really not what I'd recommend at high rates. The Python handling overhead is substantial. Try implementing things in C++ blocks; that should give you a solid boost. Ideally, you'd do things like multiplications and additions with VOLK kernels [1], but don't optimize too early, and just write readable C++ first. Best regards, Marcus [1] http://libvolk.org On 08.06.2016 19:34, Pavan Yedavalli
wrote:
|
[Prev in Thread] | Current Thread | [Next in Thread] |