[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: |
Thu, 29 Apr 2010 12:00:33 +0200 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
On Wed, Apr 28, 2010 at 11:29:16PM +0000, Nick Foster wrote:
> I'm struggling with what I hope isn't a naive problem regarding feedback
> between flowgraph blocks. I've written a simple frequency estimator for FSK
> signals based on the squared FFT method. Its input is an N-point FFT, created
> by an N-item stream-to-vector block feeding an N-bin FFT block. The output of
> the frequency estimator is a float value in Hz, and it is a sync_block.
> Therefore, the output produces samples at the original (pre-stream-to-vector)
> sample rate divided by N. So if my original raw sample rate is 50000, and I
> use a 4096-bin FFT, the output frequency estimate arrives at ~12.2 samples
> per second. That's fine.
>
> The problem is that I want to use the output of the frequency estimator to
> center the input data at baseband. With continuous streaming data, this is
> easy -- just use a frequency-xlating filter, and call set_center_freq() when
> data comes in from the frequency estimator. However, the packets I'm
> interested in are short, and I'd like the frequency correction to be applied
> at or near the start of the packet so the preamble can be detected
> appropriately. In order to do this, I have to be able to determine the delay
> it takes for feedback to come back, and that delay has to be constant. For
> this reason, I can't use a frequency-xlating filter, because the delay in
> calling set_center_freq() from the main Python loop could take any amount of
> time. I could write a version of the frequency-xlating filter that accepted a
> second stream of filter offset data at the input sample rate -- my thinking
> is that would make the delay a fixed number of samples. Is that assumption
> valid?
>
> Before I go reinventing the wheel, I'm wondering if there is a "usual" way of
> solving this feedback problem within the architecture of GNU Radio, or if I'm
> totally out in left field.
Hi Nick,
I recommend tracing the flow graph of the OFDM system. That helped me a
lot understanding how to do synchronisation in GNU Radio.
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.
g
mb
--
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
pgpI_s0r3rlZH.pgp
Description: PGP signature