[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Byte Boundary alignment

From: lannan jiang
Subject: Re: Byte Boundary alignment
Date: Wed, 22 Jul 2020 18:15:46 +0000

Hi Kevin,
   Thank you for your reply. Your simple method is what I am trying to do here. However, I do not know how to prepend each message with a preamble of known bytes in GNU Radio. Could you please elaborate on this? Did you mean that you are doing this in Python? Is it with the embedded python block? 
   I have been looking at the Packet Header Generator, i was thinking adding a preamble using that, but haven’t had any luck so far. 

   Best regards,
On Jul 22, 2020, at 1:59 PM, Kevin McQuiggin (SFU) <mcquiggi@sfu.ca> wrote:

Hi Lannan:

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 <jln925@live.com> wrote:

Hi everyone, 
   (It's me again.)
   I am working on an audio channel using QPSK modulation. I currently am transmitting through a signal source that outputs bytes. I am looking for a method to align the byte boundaries so I am able to hear a clean audio at the receiver. 
   Here is an idea of what I want to do: send packets that have, for example, 7 bytes of data and 1 byte of known pattern, and so I can sync with the receive block. However, I do not know how to implement this in GRC (I see a block named packet header generator, is this what I want to use?). Could someone please advise me on how to approach this?
   Thanks in advance.
   Lannan Jiang 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]