From: gallamine on
Hello,

Short version: How does an early/late gate symbol synchronizer work for
BPSK data?

Detailed: I'm working on a digital receiver for a M-PSK transmitter (BPSK
for now, but I want 4 or 8 PSK).

The transmitter modulates the phase of a 1MHz carrier with a square pulse
symbol shape - 250k symbols/sec. I am sampling the passband signal at 10M
samples/sec.

I am doing non-coherent conversion from passband to baseband, by the
following Matlab code:

ybaseband = hilbert(ypassband).*exp(-j*2*pi*Fc*t);

where 'Fc' is the carrier frequency (1e6) and 'ypassband' is the sampled
signal. Since it's non-coherent, the absolute phase of the transmitted
signal drifts, so I'm doing differential phase detection at the receiver
(take the phase difference between subsequent symbols).

My transmitter symbol clock and my receiver clocks are not synchronized,
and there is a slight offset between the two. i.e. There are 40+delta
samples per symbol, where delta is very small, so I need to somehow recover
my symbol timing. I've used an early/late gate symbol synchronizer before
for OOK data, but I'm not understanding how it works for phase modulated
data, since the magnitudes are all the same.

So, for a early/late gate detector using BPSK data, should I be comparing
the phase of the early and late samples, instead of the magnitude? Or, am I
missing something obvious?

Thanks for the help.


From: Jason on
On Jun 1, 2:07 pm, "gallamine" <wccox(a)n_o_s_p_a_m.ncsu.edu> wrote:
> Hello,
>
> Short version: How does an early/late gate symbol synchronizer work for
> BPSK data?
>
> Detailed: I'm working on a digital receiver for a M-PSK transmitter (BPSK
> for now, but I want 4 or 8 PSK).
>
> The transmitter modulates the phase of a 1MHz carrier with a square pulse
> symbol shape - 250k symbols/sec. I am sampling the passband signal at 10M
> samples/sec.
>
> I am doing non-coherent conversion from passband to baseband, by the
> following Matlab code:
>
> ybaseband = hilbert(ypassband).*exp(-j*2*pi*Fc*t);
>
> where 'Fc' is the carrier frequency (1e6) and 'ypassband' is the sampled
> signal. Since it's non-coherent, the absolute phase of the transmitted
> signal drifts, so I'm doing differential phase detection at the receiver
> (take the phase difference between subsequent symbols).
>
> My transmitter symbol clock and my receiver clocks are not synchronized,
> and there is a slight offset between the two. i.e. There are 40+delta
> samples per symbol, where delta is very small, so I need to somehow recover
> my symbol timing. I've used an early/late gate symbol synchronizer before
> for OOK data, but I'm not understanding how it works for phase modulated
> data, since the magnitudes are all the same.
>
> So, for a early/late gate detector using BPSK data, should I be comparing
> the phase of the early and late samples, instead of the magnitude? Or, am I
> missing something obvious?
>
> Thanks for the help.

The timing-error detector would typically operate on the output of a
matched filter for BPSK. The ideal matched filter output is a triangle
function, so your synchronizer tries to lock your sample time to the
triangle's peak. You can remove the differential encoding by
multiplying each symbol by the conjugate of the previous one, thus
yielding no phase difference for a "0" and a 180 degree phase
difference for a "1' (or vice versa depending on your encoding).

Jason
From: Eric Jacobsen on
On 6/1/2010 12:23 PM, Jason wrote:
> On Jun 1, 2:07 pm, "gallamine"<wccox(a)n_o_s_p_a_m.ncsu.edu> wrote:
>> Hello,
>>
>> Short version: How does an early/late gate symbol synchronizer work for
>> BPSK data?
>>
>> Detailed: I'm working on a digital receiver for a M-PSK transmitter (BPSK
>> for now, but I want 4 or 8 PSK).
>>
>> The transmitter modulates the phase of a 1MHz carrier with a square pulse
>> symbol shape - 250k symbols/sec. I am sampling the passband signal at 10M
>> samples/sec.
>>
>> I am doing non-coherent conversion from passband to baseband, by the
>> following Matlab code:
>>
>> ybaseband = hilbert(ypassband).*exp(-j*2*pi*Fc*t);
>>
>> where 'Fc' is the carrier frequency (1e6) and 'ypassband' is the sampled
>> signal. Since it's non-coherent, the absolute phase of the transmitted
>> signal drifts, so I'm doing differential phase detection at the receiver
>> (take the phase difference between subsequent symbols).
>>
>> My transmitter symbol clock and my receiver clocks are not synchronized,
>> and there is a slight offset between the two. i.e. There are 40+delta
>> samples per symbol, where delta is very small, so I need to somehow recover
>> my symbol timing. I've used an early/late gate symbol synchronizer before
>> for OOK data, but I'm not understanding how it works for phase modulated
>> data, since the magnitudes are all the same.
>>
>> So, for a early/late gate detector using BPSK data, should I be comparing
>> the phase of the early and late samples, instead of the magnitude? Or, am I
>> missing something obvious?
>>
>> Thanks for the help.
>
> The timing-error detector would typically operate on the output of a
> matched filter for BPSK. The ideal matched filter output is a triangle
> function, so your synchronizer tries to lock your sample time to the
> triangle's peak. You can remove the differential encoding by
> multiplying each symbol by the conjugate of the previous one, thus
> yielding no phase difference for a "0" and a 180 degree phase
> difference for a "1' (or vice versa depending on your encoding).
>
> Jason

A triangle? Shouldn't it look like the usual eye diagram one sees in
all the textbooks?

--
Eric Jacobsen
Minister of Algorithms
Abineau Communications
http://www.abineau.com