Simulation inconsistent (Time interleaving block)

Hi all

I have a simulation problem with my time interleaving block. If I
simulate my block the most time all tests get passed, but in average
every 7th simulation the tests don’t pass and I get the message:

Traceback (most recent call last):
File “./qa_howto.py”, line 239, in test_007_time_interleaving_vff
self.assertFloatTuplesAlmostEqual (expected_result_0, result_data0,
6)
File “/usr/local/lib/python2.6/dist-packages/gnuradio/gr_unittest.py”,
line 85, in assertFloatTuplesAlmostEqual
self.assertEqual (len(a), len(b))
AssertionError: 86016 != 80640

Had somebody in the past the same problem? I have no idea what the fault
could be.
Any idea? Any help will be appreciated.

Thanks,
Michael

On Fri, Jul 08, 2011 at 05:57:17AM +0000, Höin Michael (hoim) wrote:

Had somebody in the past the same problem? I have no idea what the fault could
be.
Any idea? Any help will be appreciated.

Hi Michael,

are you using free-running simulations, e.g. by reading from a file and
without any kind of throttling? If so, try adding a throttle and see
what happens.
Note that if this helps, then there’s probably a bug in GNU Radio
(assuming you’ve tested the hell out of your own code). I’ve seen flow
graphs randomly produce signal processing errors when run without any
kind of throttle (in particular, when running unit tests from large
pre-recorded IQ-files), but so far I haven’t been able to cook up a test
scenario with which this could be properly tested.
However, whenever I’ve taken my code to the antenna where the USRP
limits the incoming data rate, these errors have vanished.

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 Martin

This was the solution. Many thanks!
I don’t realize that in simulations I had also to use the throttles.

Gruss aus der Schweiz :slight_smile:
Michael

On Fri, Jul 08, 2011 at 10:26:57AM +0200, Michael Höin wrote:

Hi Martin

This was the solution. Many thanks!
I don’t realize that in simulations I had also to use the throttles.

Hi Michael,

you shouldn’t have to use throttles–I believe there’s a bug somewhere
in the scheduling or memory allocation, perhaps a race condition or
something…?

If possible, could you provide a test case which sometimes fails? I’d
love to get my hands on one :slight_smile:

Gruss aus der Schweiz :slight_smile:
Grüezi! :slight_smile:

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 Martin

Here the python-testcode:
https://home.zhaw.ch/~hoim/qa_howto.py
(Without the throttle sometimes the test fails)

Here the whole C++ -entity-code:
https://home.zhaw.ch/~hoim/howto_time_interleaving_vff.cc

Have fun :slight_smile:

Michael


Zurich University of Applied Sciences
Center for Signal Processing/Communication Systems

Michael Höin
Dipl. El. Ing. FH
Scientific Assistant

Phone +41 58 934 71 57
mailto:[email protected]