|From:||Kevin McQuiggin (SFU)|
|Subject:||Re: Byte Boundary alignment|
|Date:||Wed, 22 Jul 2020 10:59:36 -0700|
I am working on a similar project in the digital not audio domain.
There are two approaches. The simple one, which I am currently using, is to prepend each message with a preamble of known bytes. Then you recover byte alignment from the received bitstream by using a sliding window over the received bitstream looking for the known pattern. This gives you an offset and you can recover bytes from there.
I am currently doing this realignment in a small Python program that I will eventually integrate into a custom block.
This method is simple but it has no error detection or correction. It works for my project, however! I can transfer megabytes of data successfully at about 130M bps.
As it’s a learning project, however, I am currently working on a more sophisticated approach. Please read the gnuradio tutorial on packet transmission and recovery. Just Google “gnuradio packet” and the article will be near the top.
This article covers adding proper headers, CRCs, forward error correction et cetera and moving to use of a burst transmission approach. It is quite complicated but I have the basic techniques “sort of” working with my project. My goal is to integrate the discussed techniques into the project so I can make my data transfers more robust.
The article Co es with example flowgraphs which are complicated at first look but through reading the (excellent) explanatory text it becomes clear as to which parts do what, and why.
Hope this helps. If you want to discuss the sliding window basic approach then let me know. As another responder noted you could also conceivably use a Correlation block for this, but you might have to move your data stream into the gnuradio messaging side first.
Sent from my iPad
On Jul 22, 2020, at 08:40, lannan jiang <firstname.lastname@example.org> wrote:
|[Prev in Thread]||Current Thread||[Next in Thread]|