hi,
can anyone point me towards some example code using gr-buffer?
I need to read a sample stream from HD (not very fast…)
and afterwards re send it towards the usrp significantly faster
(8complex
Msps).
is gr-buffer a good candidate to do this?
thanks
2007/7/19, Vincenzo P. [email protected]:
hi,
can anyone point me towards some example code using gr-buffer?
I need to read a sample stream from HD (not very fast…)
and afterwards re send it towards the usrp significantly faster (8complex
Msps).
is gr-buffer a good candidate to do this?
You could either use gr.file_source_x or gr.vector_source_x.
–
Trond D.
thanks Trond,
I went your way, and actually my stream gets loaded right into the ram
as I wanted…
my problem is now that… doing:
data = fromfile("/root/Desktop/ofdm_encode_1H.dump",
dtype=“complex64”)
vector_source = gr.vector_source_c(data,True)
self.connect(vector_source,gain)
self.connect (gain, self.u)
I get an error relating to the number of arguments I pass to
gr.vector_source_c
vector_source = gr.vector_source_c(data,True)
File
“/usr/local/lib/python2.4/site-packages/gnuradio/gr/gnuradio_swig_py_gengen.py”,
line 6695, in vector_source_c
return _gnuradio_swig_py_gengen.vector_source_c(*args)
NotImplementedError: Wrong number of arguments for overloaded function
‘vector_source_c’.
Possible C/C++ prototypes are:
gr_make_vector_source_c(std::vector<gr_complex,std::allocator<gr_complex
const &,bool)
gr_make_vector_source_c(std::vector<gr_complex,std::allocator<gr_complex
const &)
what am I doing wrong?
sorry for bothering…
and thanks for help
vincenzo
2007/7/19, Vincenzo P. [email protected]:
anything like:
gr.file_source—>data=gr.vector_sink
gr.vector_source(data, repeat=true)—>usrp_sink
would be correct?
No, if you use vector_source, you should not use the gr.file_source to
load the data. How you read the data from the file depends on the
format is is stored in, but if it data recorded with GNU Radio, I
personally use numpy/scipy. Python example:
from numpy import *
Use complex64 for gr.gr_complex and float32 for gr.float
data = fromfile(“filename.dat”, dtype=“complex64”)
src = gr.vector_source(data, repeat=True)
i think my problem is that numpy’s fromfile() provides this as an output
[ -1.38586906e+38 +1.12948992e+32j 1.43605805e+30 -4.40817649e-09j
8.78218944e+08 -1.98631123e-14j …, 4.88822397e+23 +2.90330289e
+13j
5.91237359e-02 +4.88047634e+23j -5.31466166e+33 -3.25484218e-18j]
which gets refused from gr.vector_source
instead of this
[ -1.38586906e+38 +1.12948992e+32j , 1.43605805e+30 -4.40817649e-09j
8.78218944e+08 -1.98631123e-14j , 4.88822397e+23 +2.90330289e+13j
5.91237359e-02 +4.88047634e+23j , -5.31466166e+33 -3.25484218e-18j]
which works fine.
I haven’t been able to find much documentation about numpy so I don’t
know how to convert between these data types…
does anyone know where to look?
thanks
vincenzo
2007/7/24, Eric B. [email protected]:
self.connect(vector_source,gain)
‘vector_source_c’.
sorry for bothering…
and thanks for help
vincenzo
What is the type of the “data” result?
The type of data is a numpy array. It can be converted to an ordinary
python list:
a_list = data.tolist()
However, whenever a list is expected, a numpy array can always be used.
vector_source_c expects a Python list or tuple of complex.
–
Trond D.
On Wed, Jul 25, 2007 at 12:14:42PM +0200, Vincenzo P. wrote:
but what is the usual good way in gnuradio to fill a vector with data
from files?
is there an alternative to this?
the only thing I need is to set up my vector source for feeding the usrp
with samples
If you’re reading binary data from files, the usual way it to just
use gr.file_source(gr.sizeof_gr_complex, ‘my-filename’)
Eric
On Tue, Jul 24, 2007 at 12:36:10PM +0200, Vincenzo P. wrote:
thanks Trond,
I went your way, and actually my stream gets loaded right into the ram
as I wanted…
my problem is now that… doing:
data = fromfile("/root/Desktop/ofdm_encode_1H.dump",
dtype=“complex64”)
vector_source = gr.vector_source_c(data,True)
You might want to try dtype=“complex32”
Eric
On Tue, Jul 24, 2007 at 12:36:10PM +0200, Vincenzo P. wrote:
self.connect (gain, self.u)
Possible C/C++ prototypes are:
sorry for bothering…
and thanks for help
vincenzo
What is the type of the “data” result?
vector_source_c expects a Python list or tuple of complex.
Eric
my fromfile (file, dtype) numpy function does not accept d type =
complex32…
data = fromfile("/root/Desktop/rx.dat", dtype="complex32")
TypeError: data type not understood
but what is the usual good way in gnuradio to fill a vector with data
from files?
is there an alternative to this?
the only thing I need is to set up my vector source for feeding the usrp
with samples
thanks Eric
vincenzo
2007/7/25, Vincenzo P. [email protected]:
[ -1.38586906e+38 +1.12948992e+32j , 1.43605805e+30 -4.40817649e-09j
8.78218944e+08 -1.98631123e-14j , 4.88822397e+23 +2.90330289e+13j
5.91237359e-02 +4.88047634e+23j , -5.31466166e+33 -3.25484218e-18j]
which works fine.
I haven’t been able to find much documentation about numpy so I don’t
know how to convert between these data types…
does anyone know where to look?
–
Trond D.