0
\$\begingroup\$

To learn more about communication systems I have been using an SDR (RTL2832U) and a 918 MHz transceiver (RFD900+) which sends signals using 2 GFSK. The deviation of my RFD900+ from the center frequency is ±63750 Hz. I have recorded some signals from my RFD900+ using my SDR to understand better how the system works. Although the RFD900+ uses FHSS I changed the settings to ensure the radio uses a single channel.

So far, I have collected data using the SDR and plotted it in MATLAB. An initial spectrogram is shown below for one of the received packets:

enter image description here

From this spectral diagram, I can see some of the signals I expected to see, given the settings of my radio. I can pick out the 64 bits of the preamble followed by 2 sync words. To better see this, I created two matched filters, one for bit 1 and one for bit 0. I then convolved these with the recorded signal to get an even better view of the transmitted signal:

enter image description here

The plot above shows the outputs of the symbol 1 matched filter and the symbol 0 matched filter. My radio has a bit rate of 64 kbits/s (since there are only two symbols, my bit rate = symbol rate), so a symbol/bit is sent every 15.6 μs. Using this and the preamble, I can try to align manually when I expect a bit to be received, as shown in the figure below:

enter image description here

Assuming a bit is received at the black lines, I can then distinguish between consecutive symbols with the same value (i.e, I can tell the difference between 111 and 1111 or 000 and 0000).

My question is, in real systems, how is this process of aligning the received bits performed? In the above case, I used the peaks of the preamble for alignment, which could be implemented using code. Still, I wasn't sure how reliable this would be in a situation with a lower SNR ratio (in this case, radios are 10 feet apart).

My question is, in general, how do communication systems choose to sample the output of the matched filter so that the start of the matched filter and the start of the symbol are aligned? As a follow-up, does this process always require a preamble?

\$\endgroup\$
6
  • \$\begingroup\$ Non of the plots you have shown are spectral plots. \$\endgroup\$
    – Andy aka
    Commented Mar 24, 2023 at 18:43
  • \$\begingroup\$ I edited the name to spectrogram, a more appropriate name for the first plot. Thank you \$\endgroup\$
    – CMH12
    Commented Mar 24, 2023 at 18:49
  • \$\begingroup\$ What precisely does this mean --> so that the start of the matched filter and the start of the symbol are aligned \$\endgroup\$
    – Andy aka
    Commented Mar 24, 2023 at 18:49
  • \$\begingroup\$ It's not a spectrogram either: From Wiki A spectrogram is a visual representation of the spectrum of frequencies of a signal as it varies with time. When applied to an audio signal, spectrograms are sometimes called sonographs, voiceprints, or voicegrams. When the data are represented in a 3D plot they may be called waterfall displays. \$\endgroup\$
    – Andy aka
    Commented Mar 24, 2023 at 18:51
  • \$\begingroup\$ Each symbol has a duration of 15.6 us, and my matched filter also has a duration of 15.6 us. Although I know the period of each symbol is 15.6 us, I don't know when the signal from the first bit is first received (I don't know when the first 15.6 us period of the packet starts). If I knew this start time, I could sample every 15.6 us and use this to determine what bits I receive, but without knowing this initial start time, I have to do some alignment of where I sample the matched filter's output to ensure my matched filter and signal are"aligned" \$\endgroup\$
    – CMH12
    Commented Mar 24, 2023 at 18:59

1 Answer 1

1
\$\begingroup\$

In a real DSP receiver the problem, essentially is that the sampling rate isn't exactly related to the transmitted symbol rate.

In the olden analog days before DSP we used to use phase locked loops that would lock to the clock energy in the recovered data, and thereby run at the modulated data rate. A common trick was to use a doubler circuit on the data so as to generate energy at the data rate. The goal was to sample the eye pattern in the middle of the bit. The preamples were usually for burst demods, to aid in acquisition. The preamble typically has a portion for carrier recovery and one for clock recovery.

Now I assume what you want to do is run a fir filter that has to be properly aligned with the input data. You need a method of calculating whether your matched filter is aligned, or not, and which way its off by. This could be the error function to a digital PLL that is controlling the sample rate. Unfortunately I'm too analog to be able to tell you for certain what that calculation is.

It's going to be something like maximising the correlation response, I guess.

Back in the day We would use the clock sampler to sample the mid bit (for the data slicer), and the zero crossing for clock recovery error function. If you sample a zero crossing late on a high to low transition (you have to use recovered data) the voltage will be low, early sample is high, etc. So with the correct circuitry we could generate an error voltage for a pll. (Band limited data usually has data transitions with a slope) So in your matched filter you could decide that a particular set of coefficients were time aligned with the zero crossings, and then use a similar technique to generate an error function, but I don't know if such a scheme is maximal.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.