Forum: GNU Radio Update Channel coding toolbox to Gnuradio 3.7.0

D41d5d1b903f356b90da0c2c8842b41b?d=identicon&s=25 Hoang Ngo Khac (Guest)
on 2014-06-25 09:56
(Received via mailing list)
Deal all,

Does anyone update the Channel Coding
(https://www.cgran.org/wiki/chancoding)
toolbox so that it can work in Gnuradio 3.7.0?

I did try to install this toolbox. The installation was done but it do
not
appear in Gnuradio Companion interface.

Thanks,
Hoang
D17685d174fee4ca258c75cce7bc2202?d=identicon&s=25 Marcus Müller (Guest)
on 2014-06-25 10:25
(Received via mailing list)
Hi Hoang,

GNU Radio 3.7 has the gr-fec framework, and recent updates brought more
performance and some features, so if that matches your use case, go
ahead and try it out!

Greetings,
Marcus
Bc47c4eec3c22199dd203fc7145231d7?d=identicon&s=25 Hoang Ngo Khac (Guest)
on 2014-06-25 11:28
(Received via mailing list)
Thank you Marcus.

I've checked out gr-fec. The problem is that Decode CCSDS 27 block takes
float input while my data to feed it is in byte.


On Wed, Jun 25, 2014 at 3:23 PM, Marcus Müller
<marcus.mueller@ettus.com>
C539637020fd56193dd6daec746c4a84?d=identicon&s=25 Tom Rondeau (Guest)
on 2014-06-25 15:56
(Received via mailing list)
On Wed, Jun 25, 2014 at 5:27 AM, Hoang Ngo Khac <hoangnk_55@vnu.edu.vn>
wrote:

> Thank you Marcus.
>
> I've checked out gr-fec. The problem is that Decode CCSDS 27 block takes
> float input while my data to feed it is in byte.
>

If you've built the documentation of the latest version of GNU Radio,
look
at the Forward Error Correction page for a description of the new FEC
API.
It's designed with exactly your issue in mind. You would write a new
deployment for the FEC of your choice to handle the data type
conversions.
In fact, the current CC decoder actually takes in bytes but the
deployment
takes in floats. The floats are intended to be soft symbols, and the
decoder deployment converts from the soft symbol floats to a quantized
soft
symbol byte that floats at a particular level.

Tom
Bc47c4eec3c22199dd203fc7145231d7?d=identicon&s=25 Hoang Ngo Khac (Guest)
on 2014-06-28 05:25
(Received via mailing list)
Thank you Tom.
I've modified the Decode CCSDS 27. In particular, I changed the code in
implementation file (.cc):

Existing code:

>     unsigned char sym = (unsigned char)(floor(sample));
>         // printf("%li\n", *(out-1), metric);
>       }
>     }
>
>     d_count++;
>       }
>
My code:

>         byte = in[ni];
>       }
>     }
>
    ni ++;
>     d_count++;
>  }
>

I also modify the header file, xml file.  Now the new block appear in
GRC.
I build a flow graph (see in attachment) to test this block. When I run
this flowgraph, I got this error:

init::console_sink_bb
Traceback (most recent call last):
  File "/home/khachoang/GNU_Radio/Test GRC/top_block.py", line 58, in
<module>
    tb = top_block()
  File "/home/khachoang/GNU_Radio/Test GRC/top_block.py", line 43, in
__init__
    self.connect((self.fec_encode_ccsds_27_bb_0, 0),
(self.fec_decode_ccsds_27_bb_0, 0))
  File
"/usr/local/lib/python2.7/dist-packages/gnuradio/gr/top_block.py",
line 130, in connect
    self._connect(points[i-1], points[i])
  File
"/usr/local/lib/python2.7/dist-packages/gnuradio/gr/top_block.py",
line 142, in _connect
    dst_block.to_basic_block(), dst_port)
  File
"/usr/local/lib/python2.7/dist-packages/gnuradio/gr/runtime_swig.py",
line
4100, in primitive_connect
    return _runtime_swig.top_block_sptr_primitive_connect(self, *args)


*ValueError: itemsize mismatch: encode_ccsds_27_bb0:0 using 1,
decode_ccsds_27_bb0:0 using 4*
Is my code correct? How could I fix this bug?

Thanks
*,*
Hoang
C539637020fd56193dd6daec746c4a84?d=identicon&s=25 Tom Rondeau (Guest)
on 2014-06-28 16:45
(Received via mailing list)
On Fri, Jun 27, 2014 at 11:24 PM, Hoang Ngo Khac <hoangnk_55@vnu.edu.vn>
wrote:

>>     // Translate and clip [-1.0..1.0] to [28..228]
>>       viterbi_butterfly2(d_viterbi_in, d_mettab, d_state0, d_state1);
>>       }
>>
>>         // long metric =
> I also modify the header file, xml file.  Now the new block appear in GRC.
>     self.connect((self.fec_encode_ccsds_27_bb_0, 0),
>     return _runtime_swig.top_block_sptr_primitive_connect(self, *args)
>
>
> *ValueError: itemsize mismatch: encode_ccsds_27_bb0:0 using 1,
> decode_ccsds_27_bb0:0 using 4*
> Is my code correct? How could I fix this bug?
>
> Thanks
> *,*
> Hoang
>

First, I'd say in the long run, you're still better off looking into the
FEC API. Right now, you'll have to build the new manual yourself as we
don't have it published yet online, but the Forward Error Correction
section in the new manual explains how you could build a deployment to
use
the FEC codes you need. Then, you wouldn't have to have a patch on an
existing block.

That having been said, the FEC API is brand new, so there's not much
more
help or examples than what's in the manual and in the code right now. So
we
should at least be able to get you going with where you are now.

Most likely, the problem is in the constructor of the block you're
editing.
Look for the io_signature line. You'll see a 'sizeof(float)' there.
Change
that to 'sizeof(char)' and that should work for you.

Tom
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.