Hi all,

Thank you for your clarifications, Now I understand the concept much better.

Best regards

On Thu, Sep 10, 2015 at 8:36 PM, Richard Bell <richard.be...@gmail.com>
wrote:

> Nicolas,
>
> The GNU Radio scheduler hands your block a certain number of samples
> everytime the blocks work function is called. The work function gets called
> many times over the course of a running flowgraph. To be technically
> correct, the scheduler tells your block how much memory it has to store
> output (noutput_items) and makes sure you have enough input to produce an
> output, which it learned from the forecast() function. In your case, you're
> seeing the scheduler give 4096 samples to the block in a call to work. This
> doesn't mean you are stuck using only 4096 samples, it just means you have
> to write your code so that it collects what it needs over the course of
> several calls to work and then computes an output. I know this is hard to
> understand for beginners, but it's central to how GNU Radio works, so worth
> absorbing.
>
> set_output_multiple() gives you a little more control on what
> noutput_items will be. For example, set_output_multiple(100000) tells the
> scheduler that it shouldn't call your work function unless it can provide
> 100,000 noutput_items or more. That means it could be 200,000, 300,000,
> N*100,000 where N is a positive integer. If you overuse this, you might
> hurt performance of your flowgraph, because you're placing additional
> constraints on the scheduler. I try to avoid it unless I find I really need
> it. I almost never need it.
>
> Hope that helps,
> Rich
>
> On Thu, Sep 10, 2015 at 9:37 AM, Martin Braun <martin.br...@ettus.com>
> wrote:
>
>> On 10.09.2015 07:25, Nicolas Cuervo Benavides wrote:
>> > 1. Where does the 4096 comes from? it is 2¹², which I don't recall being
>> > 12 the size of one datatype that is involved in my function. It is
>> > directly a value from scheduler and always the same?
>>
>> This value is pretty much random; 4096 works well with pages, but it
>> could be any other value. noutput_items is how much valid items you have
>> in your buffer. On the *first run*, all other values will be zero (but
>> after that, they may contain old samples).
>>
>> > 2. If it is not always the same value, how I am indirectly fixing that
>> > amount of samples? I would like, if possible, to save more samples as it
>> > would reduce the variance of the calculations.
>>
>> You need to construct your block to handle *any* number of samples,
>> unless you constrain it e.g. with set_output_multiple(). Your variance
>> can be calculated over several work() calls, until you've read enough
>> samples.
>>
>> Your code may have some other issues, but it's hard to say without
>> seeing the rest of the work function.
>>
>> M
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> Discuss-gnuradio@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
>


-- 
Nicolás Cuervo Benavides
Handy: +49 157 70476855
Electric and Electronic Engineering department.
Electronic Engineering
Universidad Nacional de Colombia
--
Student M.Sc. Information and Communication Technology
Karlsruher Institut für Technologie
Karlsruhe, Baden Würtemberg, Germany
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to