DSPRelated.com
Forums

PSK Modem - Synchronisation

Started by jame...@btinternet.com February 6, 2011
Hi everyone,

I have been learning and experimenting with digital communications and the C6713 DSK for a few months now: and I need some guidance to 'untangle' my mind!

Basically, I wish to develop a simplex modem across a wireless channel. For starters, I have managed to implement a BPSK simplex modem between two DSK boards which assumes no carrier frequency offset (i.e. no phase lock loop) and I manually set a delay in the receiver to align the integrate and dump. To achieve frame synchronization i.e. to identify the data I use a known sequence of bits. This works great.

What techniques are used to improve such modems in terms of, 1) not having to manually set the delay, and 2) to cope with AWGN channels?

I have read about matched filters.. but I am unsure how to achieve syncrhonisation. What is particular confusing me is this is burst communications, how do modems cope with this.. the receiver needs to synchronize immediately.

I look forward to your thoughts,

_____________________________________
James,

I do not have an experience with the preambles, but they take space... Just means you need to sacrifice some data rate. However, with the large enough loop bandwidth you should be able to synchronize. I have to say that pre-amble would need to be present anyways in burst communication. Even with large loop bandwidth any PLL needs some time to synch, which might mean lost data.. On the other hand with error coding, it might not be that bad.

It really all comes down to the data rate you are trying to achieve, and how much processor time you are willing to spend on something like IFFT. Also I suppose PLL can be made such that when data stops it keeps the state, such that when new burst comes it knows where to start from. Try both ideas and see what you can get.

Vladimir

-------------------------------
Dear Vladimir,

Your reply made a lot of sense and matched nicely with the material I have been reading.

I have seen several projects which appear not to implement any of these things - choosing to use a preamble for synchronisation (and channel estimation) - data aided I suppose this is called. Would this be an option?

What concerns me about the methods you have suggested is - I am transmitting in bursts, so will the receiver be able to re-synchronise fast enough using the non-preamble methods. (I should point out its a preamble, consisting of 16 symbols, iffft(ones(1,16))) but does use matched filters to improve SNR).

Kind Regards,
James

--- On Mon, 7/2/11, vterrap wrote:
From: vterrap
Subject: Re: PSK Modem - Synchronisation
To: j...@btinternet.com
Date: Monday, 7 February, 2011, 15:38

--- In c..., james_hillman@... wrote:
>
> Hi everyone,
>
> I have been learning and experimenting with digital communications and the C6713 DSK for a few months now: and I need some guidance to 'untangle' my mind!
>
> Basically, I wish to develop a simplex modem across a wireless channel. For starters, I have managed to implement a BPSK simplex modem between two DSK boards which assumes no carrier frequency offset (i.e. no phase lock loop) and I manually set a delay in the receiver to align the integrate and dump. To achieve frame synchronization i.e. to identify the data I use a known sequence of bits. This works great.
>
> What techniques are used to improve such modems in terms of, 1) not having to manually set the delay, and 2) to cope with AWGN channels?
>
> I have read about matched filters.. but I am unsure how to achieve syncrhonisation. What is particular confusing me is this is burst communications, how do modems cope with this.. the receiver needs to synchronize immediately.
>
> I look forward to your thoughts,
>

Hello James,

For problem number (1) there is couple of options, but there are some good methods for the BPSK. For frequency and phase synchronization, you will need to use PLL (or in this case it will be Digital Phase Locked Loop). One method is to take received signal and square it. Another method is to first determine what symbol you have received and based on that calculate error. For second part of problem (1) you need to do something called symbol timing synchronization. This one is trickier, but overall what you can do is square incoming signal, take it's derivative, and run it through summation... Find online this method, squaring timing recovery it's called. As far as problem #2, this is the simplest channel, all you need is filter your incoming signal using same filter as your pulse shape (Square or square root raised cosine).

For DD-PLL this is good article I used http://www.eetimes.com/design/communications-design/4138454/Using-PLLs-to-Obtain-Carrier-Synchronization-Part-2...

As for the squaring method here is the pseudo-code:

e = atan(imag(rxSym), real(rxSym))*2;

// Reduce error to [-pi, pi] range:
e = e - 2pi until e is between [-pi, pi]

e = e/2;

This is not a standard way to do it, but it worked for me.

Anyhow, good luck with all. Hope this helps a little.

Vladimir

_____________________________________