[Top][All Lists]

 From: Dawei Shen Subject: Re: [Discuss-gnuradio] A question about general_work() function Date: Tue, 10 Oct 2006 12:48:00 -0400

It varies from time to time, but I am pretty sure it's larger than 7. It's at least 100. Dawei

On 10/10/06, Thomas Schmid < address@hidden> wrote:
Are you sure you get enough input items for the general_work? try to
print ninput_items and see what the result is. It might be that you
get always less than the 7 items you need to initialize the algorithm.

Thomas

On 10/10/06, Dawei Shen < address@hidden> wrote:
> Hello Everyone
>
> I have got a problem which arised from my project. Here is what I want to
> do: I am trying to implement a Viterbi algorithm. Suppose  "in" is the input
> stream, I want to use in[0], in[1]....in[6], seven elements to initialize
> the Viterbi algorithm. Then from in[7], I start to use Viterbi algorithm to
> do tracking. Now the problem comes, in the "general_work()" function, I did
> something like this:
>
> int general_work(arg1, arg2, arg3, arg4) {
>     for (int i = 0; i < 7; i++) {
>         use in[i] to intialize the Viterbi algorithm;
>     }
>     for (int i = 8; i < ninput_terms; i++) {
>         use each in[i] to do Viterbi algorithm tracking;
>         out[n] = something
>     }
> }
>
> However, the results told me this is a wrong way. Because the initialization
> part (the for i=0, i<7, i++ part) would be executed for many many times. It
> appeared to me that the scheduler would try to call the general_work
> function for many times and each time it calls it, everything in the
> function would be executed from the beginning to the end. For example, if I
> write a line
>
> printf("can you see me?\n");
>
> and put it in front of the first 'for' iteration, I can see the printed
> output many times. This thing totally disturbed what I wish to do. Am I
> understood?
>
> Could anyone provide any help or insights? Thanks in advance.
>
> Best Regards
> Dawei
> _______________________________________________