Re: a question about Reed-Solomon in GNURadio!

Hi!

I have successfully implemented the Reed-Solomon coding scheme in
gr.atsc on USRP, the receiver can receive packets now. But after running
tons of experimentation and comparing the performance between DQPSK
without coding and DQPSK with Reed-Solomon, I cannot observe any
performance improvement of the DQPSK with Reed-Solomon scheme. For the
same PDR and BER, the RSSIs which are read using probe.level() are
similar, and Reed-Solomon did show any correcting effect.

Does the reed-solomon in gr.atsc take effect? I coded the payload+crc
part. Thanks!

Bill

— On Fri, 5/1/09, Bill S. [email protected] wrote:

From: Bill S. [email protected]
Subject: [Discuss-gnuradio] a question about Reed-Solomon in GNURadio!
To: [email protected]
Date: Friday, May 1, 2009, 2:41 AM

I implemented the reed-solomon coding scheme in gr-atsc onto
benchmark_tx.py and benchmark_rx.py. Following describes the results I
got:

1, The transmitter can transmit reed-solomon coded stream with no
problem. The receiver just keeps on waiting for the packets. There is no
response at the receiver.

2, To fit the needs of USRP and the format of atsc data segment, the
entire packet before the reed-solomon coding is packed in this way:
MPEG_SYNC_BYTE+transport error byte+preamble+access code+header+ some
padding (pad it into 256 bytes)+payload+ some padding+…+crc+…, the
length of packet size is 1098, so after packing process, there are 6
data segments sent out in each packet.

3, I uncommented the assert(in[i].pli.regular_seg_p()) in
atsc_rs_decoder.cc and
atsc_derandomizer.cc because without uncommenting them, the
corresponding error message will pop out the moment I run the
benchmark_rx.py -f 2400M… command at the receiver side.

4, I simulated this system in my laptop without connecting to any USRPs,
and the result showed that the reed-solomon performance is apparently
much better than that without reed-solomon.

Based on my limited knowledge, there might be two reasons: one is
because of erasing the assert(in[i].pli.regular_seg_p()) phrase, but I
don’t think it is the culprit since the similer simulation did not
indicate anying wrong with that method; the second one is
MPEG_SYNC_BYTE+transport error byte ruined the correlating process of
access code because it seemed that there were 3 preamble out there, but
I am not sure about my conclusion.

I don’t know what makes my receiving process down. Is that because of
the MPEG_SYNC_BYTE in front of the preamble code? I really hope
someone could give me some help on this problem! Thanks a lot!!! :slight_smile:

Bill

-----Inline Attachment Follows-----