About setting the GRC block properties

Hello,

According to the website, http://gnuradio.org/doc/doxygen/page_ofdm.html
I would like to realize the transmit part.
However, when I tried to execute it, there is error on "
ofdm_carrier_allocatorhttp://gnuradio.org/doc/doxygen/classgr_1_1digital_1_1ofdm__carrier__allocator__cvc.html
"


Using Volk machine: sse4_1_64_orc

Traceback (most recent call last):

File “/home/TX-test/top_block.py”, line 106, in

tb = top_block()

File “/home/TX-test/top_block.py”, line 59, in init

self.digital_ofdm_carrier_allocator_cvc_1 =
digital.ofdm_carrier_allocator_cvc(fft_len, (-30,-29,-28, -27, -26, -25,
-24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11,
-10,
-9, -8 , -7, -6, -5, -4, -3, -2, -1,1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12,
13, 14, 15, 16, 17, 18, 19, 20, 21,22,23,24,25,26,27,28,29,
30,31),(-30,-29,-28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18,
-17,
-16, -15, -14, -13, -12, -11, -10, -9, -8 , -7, -6, -5, -4, -3, -2,
-1,1,2,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21,22,23,24,25,26,27,28,29, 30,31), ((-31),(-31)), ((1),(1j)), (0,0),
“packet_len”)

File
“/usr/local/lib/python2.7/dist-packages/gnuradio/digital/digital_swig.py”,
line 4268, in make

return _digital_swig.ofdm_carrier_allocator_cvc_make(*args, **kwargs)

TypeError: in method ‘ofdm_carrier_allocator_cvc_make’, argument 2 of
type
‘std::vector< std::vector< int,std::allocator< int > >,std::allocator<
std::vector< int,std::allocator< int > > > > const &’

I think I set something wrong on this block, is there any place which
contain all the documentation about how to set the parameters?

also, I am confused on the “Virtual source” block, it shows “pre-ofdm”
how can I create and make this?
Should I generate the “random source”, make “ofdm Mod”, and create the"
virtual sink called pre-ofdm"?

Thanks

Kevin

On Tue, Sep 17, 2013 at 02:50:33PM -0500, Kevin wrote:

self.digital_ofdm_carrier_allocator_cvc_1 =
digital.ofdm_carrier_allocator_cvc(fft_len, (-30,-29,-28, -27, -26, -25, -24,
-23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8 ,
-7, -6, -5, -4, -3, -2, -1,1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21,22,23,24,25,26,27,28,29, 30,31),(-30,-29,-28, -27, -26,
-25, -24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10,
-9, -8 , -7, -6, -5, -4, -3, -2, -1,1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21,22,23,24,25,26,27,28,29, 30,31), ((-31),(-31)),
((1),(1j)), (0,0), “packet_len”)

I think you just need brackets around the carrier allocation table.
Also, use Python’s range() to make stuff more readable.

all the documentation about how to set the parameters?
Yeah, of course: GNU Radio Manual and C++ API Reference: OFDM Blocks
It’s in the manual.

also, I am confused on the “Virtual source” block, it shows “pre-ofdm”

how can I create and make this?

This is unclear. Perhaps you can explain what you’re trying to do?

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

Thanks for reply,

Because in this site, http://gnuradio.org/doc/doxygen/page_ofdm.html
The figure in transmitting part,
http://gnuradio.org/doc/doxygen/ofdm_tx_core.png
“Virtual source” block shows “pre-ofdm”, which means I need to create
some
blocks like “Virtual sink” labeled “pre-ofdm” before this?
if yes, I am thinking to create the blocks like

 "Random Source -> OFDM Mod -> Virtual sink"

I am not sure if

"OFDM carrier allocator, FFT, and OFDM cyclic prefixer" are doing 

the
same thing with “OFDM Mod”

Or should I change the

"OFDM Mod" block into like "PSK Mod"?

And about the error,
You were saying

"I think you just need brackets around the carrier allocation table.
Also, use Python's range() to make stuff more readable."

Can you explain it more specifically?
bracket at which section?
“python’s range()” I have no idea what this is?

Thanks


Using Volk machine: sse4_1_64_orc

Traceback (most recent call last):

File “/home/TX-test/top_block.py”, line 106, in

tb = top_block()

File “/home/TX-test/top_block.py”, line 59, in init

self.digital_ofdm_carrier_allocator_cvc_1 =
digital.ofdm_carrier_allocator_cvc(fft_len, (-30,-29,-28, -27, -26, -25,
-24, -23, -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11,
-10,
-9, -8 , -7, -6, -5, -4, -3, -2, -1,1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12,
13, 14, 15, 16, 17, 18, 19, 20, 21,22,23,24,25,26,27,28,29,
30,31),(-30,-29,-28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18,
-17,
-16, -15, -14, -13, -12, -11, -10, -9, -8 , -7, -6, -5, -4, -3, -2,
-1,1,2,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21,22,23,24,25,26,27,28,29, 30,31), ((-31),(-31)), ((1),(1j)), (0,0),
“packet_len”)

File
“/usr/local/lib/python2.7/dist-packages/gnuradio/digital/digital_swig.py”,
line 4268, in make

return _digital_swig.ofdm_carrier_allocator_cvc_make(*args, **kwargs)

TypeError: in method ‘ofdm_carrier_allocator_cvc_make’, argument 2 of
type
‘std::vector< std::vector< int,std::allocator< int > >,std::allocator<
std::vector< int,std::allocator< int > > > > const &’

On Thu, Sep 19, 2013 at 12:21 AM, Martin B. (CEL)

On Fri, Sep 20, 2013 at 01:45:46PM -0500, Kevin wrote:

“Virtual source” block shows “pre-ofdm”, which means I need to create some
blocks like “Virtual sink” labeled “pre-ofdm” before this?

Don’t worry about these blocks, they are just to make the Figures look
complete (or rather, to label the inputs).

"I think you just need brackets around the carrier allocation table.
Also, use Python's range() to make stuff more readable."

Can you explain it more specifically?

bracket at which section?

You need more (). The carrier tables are vectors of vectors ((…),
…).

“python’s range()” I have no idea what this is?

Look up the range() function in Python.

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

Hi Kevin,

no, they are not the same.
In the ofdm mod XML file (gr-digital/grc/digital_ofdm_mod.xml), the make
element is:
grc_blks2.packet_mod_$(type.fcn)(digital.ofdm_mod(
options=grc_blks2.options(
modulation="$modulation",
fft_length=$fft_length,
occupied_tones=$occupied_tones,
cp_length=$cp_length,
pad_for_usrp=$pad_for_usrp,
log=None,
verbose=None,
),
),
payload_length=$payload_length,
)

So, OFDM mod is basically a packet encoder, which internally is a
message queue based approach to managing packets.
This is nice, because internally digital.ofdm_mod has a send_pkt method
that encodes your message, enabling it to work asynchronously, it
generates a sync-friendly, preambling, data-encoding framework,
so it’s a user-friendly data->symbols->preamble+symbols->ifft->cyclic
prefixer->normalizer hier block,
while ofdm_tx_core.png only shows the very basic princible of generating
OFDM signals in GNU Radio.

Hope I was of a little assistance,
Marcus

Morning,

Sorry for taking so long to reply.

I have one question,
the block, “OFDM Mod” <-----> and these three, “OFDM Carrier
Allocator, FFT, OFDM Cyclic Prefixer”,
shown on the website, http://gnuradio.org/doc/doxygen/ofdm_tx_core.png

Are they doing the same thing?

Thanks

---------- Forwarded message ----------
From: Martin B. (CEL) [email protected]
Date: Fri, Sep 20, 2013 at 6:08 PM
Subject: Re: [Discuss-gnuradio] About setting the GRC block properties.
To: GNURadio D.ion List [email protected]

On Fri, Sep 20, 2013 at 01:45:46PM -0500, Kevin wrote:

“Virtual source” block shows “pre-ofdm”, which means I need to create some
blocks like “Virtual sink” labeled “pre-ofdm” before this?

Don’t worry about these blocks, they are just to make the Figures look
complete (or rather, to label the inputs).

"I think you just need brackets around the carrier allocation table.
Also, use Python's range() to make stuff more readable."

Can you explain it more specifically?

bracket at which section?

You need more (). The carrier tables are vectors of vectors ((…),
…).

“python’s range()” I have no idea what this is?

Look up the range() function in Python.

MB


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

Dipl.-Ing. Martin B.
Research Associate

Kaiserstrae 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-Wrttemberg and
National Laboratory of the Helmholtz Association

Thanks Marcus,

I am thinking to use “Random source” generating 010101…as source.
If I wanna modify the transmit diagram based on
http://gnuradio.org/doc/doxygen/ofdm_tx_core.pnhttp://gnuradio.org/doc/doxygen/ofdm_tx_core.png
g
What would you suggest? Can you show me the block diagrams
for me to create the blocks before ofdm_rx_core.png, “Virtual source →
OFDM Carrier Allocator → FFT → OFDM Cyclic Prefixer”
Am I right like creating “Random Source → OFDM Mod → Virtual sink”
Will it conflict between “OFDM Mod” and “Cyclic Prefixer”?
Or my thought is totally wrong!

Sincerely,