[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] How to synchronize feedback between blocks?
From: |
Martin Braun |
Subject: |
Re: [Discuss-gnuradio] How to synchronize feedback between blocks? |
Date: |
Fri, 30 Apr 2010 09:35:46 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
Thanks Matt, and Michael, for your input.
To clarify: I was thinking about a frequency offset detection at a later
stage in the demodulation process, which feeds back the frequency offset
to an initial xlating FIR filter (I do realise feeding back individual
samples is kind of ridiculous from a scheduling POV).
Another question: will the message interface be able to send messages
"backwards" in the flow graph?
Thanks
MB
On Thu, Apr 29, 2010 at 09:07:27AM -0700, Matt Ettus wrote:
> >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.
--
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)
Dipl.-Ing. Martin Braun
Research Associate
Kaiserstraße 12
Building 05.01
76131 Karlsruhe
Phone: +49 721 608-3790
Fax: +49 721 608-6071
www.cel.kit.edu
KIT -- University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association
pgpWLF619HWmc.pgp
Description: PGP signature