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
smime.p7s
Description: S/MIME cryptographic signature