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,
   Lannan 
> On Jul 22, 2020, at 1:59 PM, Kevin McQuiggin (SFU) <mcqui...@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.
> 
> Kevin
> 
> 
> 
> 
> 
> Sent from my iPad
> 
> On Jul 22, 2020, at 08:40, lannan jiang <jln...@live.com 
> <mailto:jln...@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