Question on using gr.file_source

Hi! I’m quite new to GNU Radio and I was wondering whether I could
access via index the values obtained after the gr.file_source()
command?

I mean, could I retrieve contents just as if it were an array? Thanks!

On Sun, Jan 13, 2008 at 08:16:03PM +0800, Jason A. wrote:

Hi! I’m quite new to GNU Radio and I was wondering whether I could
access via index the values obtained after the gr.file_source()
command?

I mean, could I retrieve contents just as if it were an array? Thanks!

GNU Radio is not MATLAB :wink:

The primary abstraction we deal with is an infinite stream of “items”
(samples).

gr.file_source produces a stream of samples that is typically run into
other processing blocks. While locally the implementation of those
blocks has a way to index the ones that are handed to it, the way to
think of it is as an infinite stream of samples.

Not sure that this answered your question…

Eric

Yeah, unfortunately it didn’t answer my question. =(

What I would’ve wanted is to superimpose data from two inputs so that
they
can be combined into a single stream.

For example; let’s say that there are two sources src0 and src1, and
let’s
say that I extracted inputs from two files “input1.dat” and “input2.dat”
to
src0 and src1 respectively. I wanted to implement something that takes
one
sample from src0 then the next sample from source 1 just like this:

variable[0] = src0[0]
variable[1] = src1[0]

variable[2] = src0[1]
variable[3] = src1[1]

and so on and so forth. In the end “variable” would have values from
both
src0 and src1 and whose length is the sum of the lengths of src0 and
src1.

I would like to know if this is possible. Thanks!

On Mon, Jan 14, 2008 at 05:51:19PM +0800, Jason A. wrote:

variable[0] = src0[0]
variable[1] = src1[0]

variable[2] = src0[1]
variable[3] = src1[1]

and so on and so forth. In the end “variable” would have values from both
src0 and src1 and whose length is the sum of the lengths of src0 and src1.

I would like to know if this is possible. Thanks!

Yes, we’ve got a block that’ll do that for you, gr.interleave.
(We’ve also got the inverse, gr.deinterleave)

src0 = …
src1 = …
interleave = gr.interleave(gr.sizeof_<items_in_src0_and_src1>) #
E.g., gr.sizeof_float

downstream = … # your downstream block…

fg.connect(src0, (interleave, 0))
fg.connect(src1, (interleave, 1))
fg.connect(interleave, downstream)

Eric

Thanks!

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs