From: gallamine on 1 Jun 2010 14:07 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 1 Jun 2010 15:23 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 1 Jun 2010 17:15 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
|
Pages: 1 Prev: Literature/Link references? Next: Filtering Noise from a signal |