On Wed, Jun 22, 2011 at 12:43 PM, Nick Foster
<address@hidden> wrote:
On Thu, 2011-06-23 at 00:03 +0900, Songsong Gee wrote:
> Hi,
>
>
> I'm trying to calculate BER for my communication system (just FSK and
> other simple schemes)
>
>
> I use two PCs and two USPRs for a TX and a RX.
> Altough I managed to run flow graphs for TX and RX simultaneously,
> either TX or RX should start earlier than the other.
>
>
> It results that RX USRP receives undesired signal if RX turns on
> earlier,
> and RX USRP cannot receive what TX sent if RX turns on later.
>
>
> Thus, I have a difficulty on making synchronization.
Synchronization is a classic problem in communications and has been
extensively researched. There are three types of synchronization which
will be necessary in any practical system:
1. Frequency synchronization
2. Packet synchronization
3. Clock recovery
To solve #1, you can use a PLL or Costas loop, pilot tones, or a
frequency estimator of your choice to remove the unavoidable carrier
frequency offset caused by using separate oscillators on TX and RX.
To solve #2, real communication systems generally use a preamble, a
predefined data sequence at the start of each transmission, which the
receiver can use to find the start of each transmission and to obtain a
channel estimate. If your transmission is continuous in nature, you
won't need to do this part.
To solve #3, Gnuradio includes two blocks designed to recover clocked
data from a demodulated signal: the M&M clock recovery block, and the
polyphase filterbank clock recovery block. Both are closed-loop
algorithms which attempt to recover clock-aligned data at the original
clock rate.
So unfortunately, the answer isn't really "it's easy, just do this". Any
communications textbook will include a treatment of the synchronization
problem on all three levels. Gnuradio does include a DPSK modulator and
demodulator which includes these steps; you might check out the source
code for that block to see how it's done. You can see an example
implementation in GRC in the
gnuradio-examples/grc/simple/dpsk_loopback.grc
--n
As Nick said, this is a classic problem in communications, and he gives a good overview of it here. My only problem with what he said is that "any communications textbook will include a treatment..." In my experience, if they mention the problem at all, they ignore any in-depth discussion. And if they do, it's usually a simple explanation of a phase locked loop, which is great if you have a carrier. This is a subject that I think is seriously underrepresented in communications courses at school.
A good treatment of the subject is fred harris' paper "Let’s Assume the System is Synchronized."
Tom