I did 3 more experiments to test the performance of Reed Solomon in
gr.atsc, but I got some contradictory results. I don’t know what else I
can do on this. Hope Dr. Corgan could help me this time.
1,I did a simulation with Reed-Solomon coding scheme on my laptop and
add std::cout << nerrors_corrrected << std::endl;, it functioned very
well. When the number of errors is less than 10, the number will be
output, otherwise, it will output -1, which means there are more than 10
2,I added that coding scheme into packet_utils.py (I coded the
payload+crc). While ten packets were sent out from the TX and all of the
received packets were true (ok = True), the nerrors_corrected were all
-1, which were supposed to be 0.
3, I also checked whether the output of the RS encoder matched the input
of the RS decoder, and the answer is YES, which means the packet before
decoding was a correct packet, and the nerrors_corrected should not be
I think I did all of what I can…, but the result is really
Dr. Corgan, could u give me a little help?
— On Sat, 5/9/09, Bill S. [email protected] wrote:
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
Does the reed-solomon in gr.atsc take effect? I coded the payload+crc
— On Fri, 5/1/09, Bill S. [email protected] wrote:
I implemented the reed-solomon coding scheme in gr-atsc onto
benchmark_tx.py and benchmark_rx.py. Following describes the results I
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_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!!!
-----Inline Attachment Follows-----