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
_____________________________________