Hello Daniel, Are you using OFDM? If so, read on, otherwise disregard the rest of the email.
Please look at the Schmidl-Cox synchronization method (Robust Frequency and Timing Synchronization for OFDM). In a nutshell, the frame detection works like this: At the transmitter, the packet is created such that the first ODFM symbol has only the even numbered subcarriers filled up (with some random PN sequence) and the odd subcarriers are set to 0. When this sequence is passed through the IFFT block, the symbol (in the time domain) has its first half identical to the second half. For example, if the FFT size is 1024, then in the time domain, the symbol has its first 512 samples identical to the next 512 samples. Therefore at the receiver, the detection becomes rather simple. The incoming stream (in the time domain) is correlated against a 512-sample delayed version of itself. A peak in this correlater output will indicate the boundary of the first symbol in the packet. Hope this helps. On Sun, Feb 8, 2015 at 10:21 AM, Richard Bell <richard.be...@gmail.com> wrote: > I'm very interested to learn the answer to this. I'm trying to do the same > thing right now. > > Rich > > On Feb 7, 2015, at 10:16 AM, Daniel Franch <dfran...@gmail.com> wrote: > > Hello, > > I have been searching for a simple frame detection scheme for GNURadio > for a while, but everything I've found either doesn't work or it is more > complicated than I expected. > > What I needed was a block that would be searching for a predetermined > sequence used by the transmitter. While it doesn't find this sequence, > it should give no output. Once it is found, it should output everything > that came after the sequence and discard the rest as "garbage". > > I tried using the simple framer and simple correlator. I created a > simple example that just took a random source, created a frame, > converted it to float, added some delay and then the correlator would > try to find the sequence. But this didn't work. I got a constant zero > signal as output. The documentation on these blocks is really poor and I > couldn't find any good example to clarify its usage. > > On the other hand, I found plenty of examples of the header/payload > demux. But it seems more complicated than what I need. I don't quite > understand the tags and streams portion of GNURadio and I am not sure on > what I should use as header data. > > I have been trying to create a block that will try to check for a known > sequence in the incoming stream. Once it is detected, it will read the next > L samples (L will be the message length defined by the user) and create a > frame, which will be sent as a message. Everything before the detection of > the known sequence will be ignored. The message will then be read by > further blocks as the received frame. Unfortunately, creating a message > passing block from scratch is turning out to be way harder than I expected. > > Is there any easier way to do this? > > Thanks in advance, > Dan Franch > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > _______________________________________________ > Discuss-gnuradio mailing list > Discuss-gnuradio@gnu.org > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio > >
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio