> On Thu, Apr 29, 2010 at 12:00:33PM +0200, Martin Braun wrote:
>> However, I think there's no direct way to feed back data between blocks.
>> You need to create a feed-forward structure, i.e. have a synchronisation
>> block near the beginning that outputs the frequency offset to your
>> frequency correction.
>
> This has been bugging me for a while now, and since I sent that email, I
> just can't get it out of my head (sorry, Nick, for hijacking this
> thread).
>
> Imagine the following setup:
> http://img338.imageshack.us/img338/6418/diffequation.png
> (for those who don't want to follow the link: I connect a noise source
> to two connected delays such that they form the difference equation
>
> y(n) = x(n) + x(n-2)
This is easy and already supported in GNU Radio, since it is not
feedback. Perhaps you meant:
y(n) = x(n) + y(n-1)
Which would be feedback, and is not currently supported. You can, of
course, do it *within* a block, like our IIR filter blocks.
>
> My question is: can GNU Radio be modified to accept this? It's a
> perfectly valid flow graph (similar to ones you find in DSP textbooks),
> and thanks to the history of the delays, one that should work. I'd be
> very interested to hear some comments on this.
>
> Cheers
> MB
Assuming you meant the feedback version I mentioned above, the current
GNU Radio scheduler does not allow this. The changes to support it
would be significant, but not impossible. Eric would be better
positioned to explain it, but here is my take on it.
First, you would need to be able to communicate the amount of delay to
the scheduler, so it could insert leading zeros for time when it does
not have feedback values. This is because the adder would not have its
own previous output in order to produce its first input.
Second, you would need to check for deadlock. If you were to put
variable rate blocks in the loop, you could end up with deadlock.
Third, blocks in GNU Radio usually take large blocks of input and
produce large blocks of output. If you were to do your block like
above, you could only produce 1 output per call, which would result in
very high overhead and poor performance.
Matt
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio
No comments:
Post a Comment