OFDM benchmark - premature termination

Hi,

For the majority of my tests (ex. below), with benchmark_ofdm_*, the
receiver terminates prematurely with:

ok: True pktno: 7501 n_rcvd: 4537 n_right: 4263
ok: True pktno: 7502 n_rcvd: 4538 n_right: 4264
ok: True pktno: 7503 n_rcvd: 4539 n_right: 4265
Exception in thread Thread-1:
Traceback (most recent call last):
File
“/usr/local/lib/python2.4/site-packages/gnuradio/gr/gr_threading_24.py”,
line 446, in __bootstrap
self.run()
File
“/usr/local/lib/python2.4/site-packages/gnuradio/blks2impl/ofdm.py”,
line 294, in run
self.callback(ok, payload)
File “./benchmark_ofdm_rx.py”, line 168, in rx_callback
(pktno,) = struct.unpack(’!H’, payload[0:2])
error: unpack str size does not match format
uOuOuOuOuOuO

It seems a certain combination of fftlength, occupied tones, and cp
length allows the program to run to completion (FFT/OT/CP = 64/28/54
and 40/20/32 works but 256/160/128 ends early). Does anyone know the
“magic” behind these sets of values, or can explain something I have
overlooked?

Also, is there a way to control / define exactly which subcarriers are
being used to transmit the data?

Any help is appreciated, thank you in advance.

Katy

Katy Qian wrote:

File “/usr/local/lib/python2.4/site-packages/gnuradio/gr/gr_threading_24.py”,

It seems a certain combination of fftlength, occupied tones, and cp
length allows the program to run to completion (FFT/OT/CP = 64/28/54
and 40/20/32 works but 256/160/128 ends early). Does anyone know the
“magic” behind these sets of values, or can explain something I have
overlooked?

This is an error that occurs when the packet is corrupted in a way that
ends up with an empty payload, usually due to a bad value for the packet
length in the header.

Also, is there a way to control / define exactly which subcarriers are
being used to transmit the data?

No. You have to hack the C++ code in gr_ofdm_mapper. Others have been
looking to do the same thing, but I’m not sure how far they have gotten.