I recently started to implement communication systems with software-defined radios in GNU Radio. In my system design, I am planning to transmit data in burst mode, the frames will be not sequentially concatenated and there will be time guards between the frames, and the duration of the time guards is not known (transmitter can send signal any time). The frame design is given below:
Alternating Sequence (for Symbol synch) | Frame Synch Sequence | Data symbols |
---|---|---|
+1,-1,+1,-1,+1,... | Barker-11 sequence (coded BPSK) | any linear modulation (M-PSK,M-QAM) |
I first started the frame with an alternating sequence for the symbol synchronization to be satisfied. I kept the length of the alternating sequence as 32. and I observed that the symbol timing is achieved before the sampler reaches the frame synchronization sequence, which ensures that the frame sync sequence is sampled at the optimal points. After the alternating sequence, a frame synchronization sequence which is also known by the receiver is placed to accommodate frame synchronization. As the frame start is detected, the receiver knows that the rest of the symbols are data symbols.
Up to now, I generate the transmit signal on GNU Radio and successfully collected the samples from the output of the "Symbol Sync" block and observed the constellation.
Let us assume that $\mathbf{r} = [r_1,r_2,\dots]$ are the frame symbols. Then, at the receiver, the output of the matched filter (after sampling at the optimal time instants) can be written as $$ x_i = \begin{cases} n_i,& \text{if no transmission} \\ h r_i e^{j2\pi f_0 i + \phi} +n_i,& \text{in transmission} \end{cases}$$ where $h$ is the complex channel gain, $n_i$ is the noise, $r_i$ is the $f_0$ is the carrier frequency offset, and the $\phi$ is the relative phase difference of the transmitter and the receiver. I tried correlation-based frame synchronization algorithms, but they do not perform well in the low SNR regime (around 0-5 dB). Since the channel gain $h$ varies from frame to frame, threshold-based techniques are prone to received signal level alteration. Lastly, I should provide frame synchronization before removing the carrier frequency offset for my specific application (no use of Costas Loop).
My question is two folds:
- Is my frame design appropriate for such an application?
- Is there any frame synchronization algorithms suitable for my design?
Thank you!