[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] How to synchronize RX with TX?
From: |
Nick Foster |
Subject: |
Re: [Discuss-gnuradio] How to synchronize RX with TX? |
Date: |
Wed, 22 Jun 2011 09:43:34 -0700 |
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
>
>
> I'm looking forward to your helpful advices.
>
> --
> Seokseong Jeon (aka Songsong Gee)
>
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio