Off-line signal processing (GR in slow motion)

I know that a source block of live IQ samples set to a certain sampling
rate is equivalent to a File source of IQ samples followed by a Throttle
block set to that same sampling rate. So far so good.

But suppose the system cannot keep up with a live IQ stream, or the
equivalent File + Throttle and do all the desired signal processing. Is
there another way to process a file of captured samples without a
throttle block, yet produce equivalent results output to another file?

Here is an example to illustrate the question:

Live example:
USRP -> AM Radio Demodulation, produces audio data -> Audio Sink

Off-line example (3 separate flowgraphs, run one at a time):

  1. USRP --> File
  2. File --> AM Radio Demodulation, produces audio data --> File
  3. File --> Throttle @ audio rate --> Audio Sink

Note that #2 can take as long as needed to complete, no issues with loss
of data.

If so, how would I set up flowgraph #2 above?

Regards,
Tim

On Wed, Aug 28, 2013 at 10:33:53PM +0000, Monahan-Mitchell, Tim wrote:

Off-line example (3 separate flowgraphs, run one at a time):

  1. USRP --> File
  2. File --> AM Radio Demodulation, produces audio data --> File
  3. File --> Throttle @ audio rate --> Audio Sink

Note that #2 can take as long as needed to complete, no issues with loss of
data.

If so, how would I set up flowgraph #2 above?

Hm, I’m not quite sure if I understand your problem. You can simply
connect a file source to the am demod and then to a file sink.

This flowgraph will then run unlimited ('cause no throttle). But that’s
OK if the input file is limited in size. Your CPU will be running full
power until there’s nothing left to process.

MB


Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin B.
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT – University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association

Off-line example (3 separate flowgraphs, run one at a time):

  1. USRP --> File
  2. File --> AM Radio Demodulation, produces audio data --> File
  3. File --> Throttle @ audio rate --> Audio Sink

As Tim O pointed out, #3 would just be File --> Audio Sink, since the
Audio Sink consumes at a fixed rate.

Note that #2 can take as long as needed to complete, no issues with loss of
data.

If so, how would I set up flowgraph #2 above?

Hm, I’m not quite sure if I understand your problem. You can simply connect a
file source to the am demod and then to a file sink.

Yes, #2 was meant to depict whatever processing blocks are needed to go
from RF samples to audio samples.

This flowgraph will then run unlimited ('cause no throttle). But that’s OK if
the input file is limited in size. Your CPU will be running full power until
there’s nothing left to process.

Yes, I understand that part. What I was not sure about was whether the
real time rate of data passing through the system was required to be
able to do proper signal processing? Or whether some of the processing
blocks are simply told what the rate is?

Here is another example: suppose I have a file of audio samples. To
determine the spectrum of the data , isn’t the sampling rate of the data
a factor? Or must a scalar be applied somewhere (related to the sampling
rate) to convert relative values to energy per Hz?

If the latter is true, then I’m still unclear on whether something like
the rx_ofdm example under gr-digital can work, just given a file of
samples and no throttle block (CPU limitations aside)?

On Thu, Aug 29, 2013 at 11:53 AM, Monahan-Mitchell, Tim
[email protected] wrote:

Here is another example: suppose I have a file of audio samples. To determine
the spectrum of the data , isn’t the sampling rate of the data a factor? Or must a
scalar be applied somewhere (related to the sampling rate) to convert relative
values to energy per Hz?

If the latter is true, then I’m still unclear on whether something like the
rx_ofdm example under gr-digital can work, just given a file of samples and no
throttle block (CPU limitations aside)?

GNU Radio doesn’t care about sampling rate. It just runs data through
as fast as possible.

Those blocks that accept a sampling rate is for convenience only. In
the end, everything is operated off a normalized sampling rate. So
when you have a signal source with sampling rate 32k and a frequency
of 1k, the math that goes into generating that sine wave is really
working as 1000/32000. We allow you to state the sampling rate in
blocks like this because it allows us to think more naturally about
the frequency without doing the normalization process ourselves. But
in the end, it just how fast it’s turning around the unit circle every
sample.

So no, running without throttle has no difference on the signal
processing that’s happening.


Tom
Visit us at GRCon13 Oct. 1 - 4
http://www.trondeau.com/grcon13