how many bits my preamble should be typically??

course carrier bits+ carrier recovery bits + timing recovery bits+ phase ambiguity ??

i have see typically carrier recovery bits + timing recovery bits+phase ambiguity is 32 +32 +32

and course carrier recovery bits are more?

i know it depends on the carrier offset between tx and rx ? are there any other criteria?

can anyone explain ? Gaussian, qpsk mod, 50 kbps, coherent, SNR 70db

Channel is flat in the bandwidth.

There are no pilot symbols. I think preamble is enough?

I think frame length doesn't matter as we will be continuously doing carrier recovery and Bit recovery after preamble is over.

Frequency accuracy is 1ppm Mark

  • $\begingroup$ there's no such thing as "typical" preambles. The length of your preamble depends on what your system needs - and that depends on what kind of transmission system you're building, what kind of channel you're facing, and what kind of restrictions you're subject to. This is far too broad – can you narrow this down by describing what problem you're solving? $\endgroup$ May 30, 2020 at 0:03
  • $\begingroup$ Thanks Marcus I am trying to build a uhf communication system with qpsk burst transmission. Data rate is around 50 kbps. Channel is considered as Gaussian. Please let me know any other info is required. So from my study typically around 64 bits is used for timing recovery and phase ambiguity removals. But if the carrier offset is more then I will be needing more bits? Am I right $\endgroup$
    – mark
    May 30, 2020 at 1:20
  • $\begingroup$ SNR, modulation scheme, bandwidth, coherent/non-coherent reception, frequency accuracy of LOs and sampling clocks, coherence time of the channel, length of frames, nature of multiuser access on your medium, if applicable distance of pilot symbols in your transmission, is the preamble necessary for presence detection, what are acceptable error rates. $\endgroup$ May 30, 2020 at 8:42
  • $\begingroup$ Basically, edit your question to describe as much of your system as you already know. $\endgroup$ May 30, 2020 at 8:44
  • 1
    $\begingroup$ so, what's still missing is at least length of frames, whether there is pilot symbols, how coherent your channel is, is it flat within your bandwidth? (also, dBm is not a unit for SNR, I'll assume you mean dB) $\endgroup$ May 30, 2020 at 17:31

1 Answer 1


Let's take it from the top. A preamble can have multiple roles:

  1. Presence detection, both for the actual intended receiver of the message, and for others that are trying to access the shared medium in a Carrier-Sense Collision Avoidance system
  2. Recovery of the carrier frequency
  3. Recovery of the symbol time and rate
  4. Recovery of the absolute phase of the transmitter
  5. Estimation of the channel impulse response

Channel is flat in the bandwidth.

Now, your channel is flat, so that 5. can only yield a single complex number, and the argument of that number will be the answer to problem 4.

For that to work, you really need only one known transmit symbol. You usually use more than that, because it's impossible to know what is the first symbol of a preamble and what is noise in any lower-SNR case, but here:

70 dB SNR

That means your received signal will have ten millions the power of your noise. There's virtually no chance that an additive Gaussian noise will reach a value that is 10⁷ its variance.

So, a single QPSK symbol it is – that suffices for phase recovery, and an estimate of the channel path loss in detail.

Seriously, 70 dB is "noiseless" for all practical purposes of a low-rate transmission as yours - you won't see a noise-caused symbol error in your lifetime. So, you know that the first strong symbol you actually detect is your preamble.

qpsk mod, 50 kbps

That means you have a symbol rate of 25 kS/s.

That is a very low rate. You can trivially record a significant amount of received signal to memory even of modest-sized microcontrollers. That will come in handy.

1 ppm frequency accuracy

You need coarse frequency recovery when your carrier is off by more than the symbol rate.

1 million times the symbol rate is 25 MHz, so you need coarse frequency recovery, since you say you want this to work on UHF, which is >> 25 MHz.

So, how to do coarse frequency recovery? Typically, this is a pretty system-specific task, but seeing as you bandwidth is so low: you just drastically oversample the whole signal, and would do a DFT large enough so that its bin spacing is smaller than half the symbol rate. Then, selecting the maximum power bin gives you a coarse frequency correction, so that only a fine frequency offset remains.

Let's throw around some numbers: UHF is 300 to 3 GHz, so let's take the hardest case, 3 GHz. At 1 ppm frequency error, that is 30 kHz error. So, our signal might be 30 kHz higher or lower in frequency than what we expect. That makes a range of 60 kHz, plus the bandwidth of the signal. I'd say with a sampling rate of 200 kHz we're more than on the safe side.

Dividing these 200 kHz in 12.5 kHz slots takes a 16-point FFT – I think you can store 16 samples in memory. Therefore, this is nothing that has to be solved by the preamble.

we will be continuously doing carrier recovery and Bit recovery after preamble is over.

That is quite a nice oscillator! So, you don't need to do symbol rate recovery through the preamble, you've got 100,000 symbols until your symbol clock error would amount to shifting 10% of a symbol time – and even that is not really a problem, since with our near-perfect SNR and Gaussian pulse shaping, it takes a long time before you run into trouble.

So, if your packets are shorter than 200,000 bits, or if you're really doing timing tracking while receiving (don't see why you should, though), then this is nothing that the preamble has to do.

Carrier frequency estimation can be done without a preamble, completely, here, but since we already have the first symbol for phase recovery:

After you've corrected the phase based on the preamble symbol, you take two consecutive symbols (here: your preamble symbol, and the first data symbol), and you put them to the fourth power (sometimes, this is a bit problematic, because you'd be putting a noise+signal mixture to the fourth power, drastically reducing SNR; but the SNR will still be near-perfect after this).

Your preamble symbol, which you just used to rotate so that it lies on $e^0, e^{j\frac\pi2}, e^{j\pi}$ or $e^{j\frac32\pi}$, will inherently end up lying on $e^0$, no matter what the actual symbol is, because $e^{j((\frac n2\pi)\cdot 4 \mod 2\pi)}$ is always $e^0$. Hence, you don't even have to calculate that.

Your second symbol now is $e^{j\left(\left(\frac {n\pi}2 + \frac{\Delta f}{f_\text{symbol}}\right) \cdot 4 \mod 2\pi\right)}$, with $\Delta f$ being the fine frequency offset. Just as for the first symbol, the phase of the symbol content gets "powered away" to 0, so you're just left with an argument of $4\frac{\Delta f}{f_\text{symbol}}\mod 2\pi$, and since you've already made sure that $\Delta f < \frac{f_\text{sym}}2$, this is unambiguous. So, divide the argument of the second symbol to the fourth power by four, and tadah, you get the phase increment per symbol (i.e. the relative frequency offset) that you need to correct.

So, in total, for this system with this excellent SNR, you need but a single symbol as preamble. Sometimes, life is easier than you think.

  • $\begingroup$ Thanks marcus for ur detailed explanation. after going through your analysis i still have some queries. 1. Does Recovery of the absolute phase of the transmitter mean carrier phase recovery? 2. What if my snr is -10 dBm?because it should support -10 to +70dBm what are the changes required? 3. you have used DFT for coarse recovery as the band width is less. What if the bandwidth is 1 Mhz. does it depend on the bandwidth or carrier offset? 4. can the carrier frequency recovery be done by coastas loop but u have used two consecutive systems to the power of four for offset calculation? $\endgroup$
    – mark
    Jun 1, 2020 at 15:31
  • $\begingroup$ 1. yes 2. again, dBm is not a unit of SNR, but of power. Get the difference straight in your head. If your SNR is -10 dB instead of +70 dB, then you have a problem that is harder by a factor of 100 million, and you need to ask a different question, and will get a very different answer. Why did you state the best case, and not the worst case? I'm not sitting down to write a second answer... 3. yes, it obviously depends on both, and with -10 dB of SNR, the proposed solution can't work. 4. yes, but the loop will have to have a very narrow bandwidth and be very well-designed for -10 dB SNR. $\endgroup$ Jun 1, 2020 at 15:37
  • $\begingroup$ Sorry about that Marcus. actually i forgot to mention it. My adc actually works from -10 to 70 dB. so If you can briefly tell me for the worst case that will help me a lot.-- Mark $\endgroup$
    – mark
    Jun 1, 2020 at 15:45
  • $\begingroup$ ADCs don't care about SNRs, they care about amplitudes, now your question makes even less sense. $\endgroup$ Jun 1, 2020 at 17:48
  • $\begingroup$ Yes but based on rf sensitivity and the amplitude range it can process and by the time it comes to IF frequency the total range is -10 to 70 dm . So my processing of the rf should cater fot the complete range. I am having digital AGC of 40db after AGC for further processing $\endgroup$
    – mark
    Jun 1, 2020 at 20:51

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.