Forums

DDC a Satellite BPSK signal

Started by billykao September 29, 2008
Hello,

I captured a raw 19.2K BPSK centered at 70 MHz.  I want to tune it at 70
MHz and use the real part for BPSK demodulation.

In MATLAB simulation, I can generate a BPSK modulated with an IF.  In FFT
plot, I can see the peak of the IF.  So if I can tune precisely at IF, I
can have a perfect real signal for BPSK demodulation.

In the real world, I cannot see the peak of the IF.  So how can I center
the BPSK signal?  If I do not center the signal, the imaginary part will
fold back to the real part and make it difficult to demod.

To do this job in the real world, is there any other things I need to pay
attention to?  Thank you.

Billy
On Mon, 29 Sep 2008 19:29:14 -0500, "billykao" <billy.kao@gmail.com>
wrote:

>Hello, > >I captured a raw 19.2K BPSK centered at 70 MHz. I want to tune it at 70 >MHz and use the real part for BPSK demodulation. > >In MATLAB simulation, I can generate a BPSK modulated with an IF. In FFT >plot, I can see the peak of the IF. So if I can tune precisely at IF, I >can have a perfect real signal for BPSK demodulation. > >In the real world, I cannot see the peak of the IF. So how can I center >the BPSK signal? If I do not center the signal, the imaginary part will >fold back to the real part and make it difficult to demod. > >To do this job in the real world, is there any other things I need to pay >attention to? Thank you. > >Billy
I'm not completely following the description of what you're doing. I can offer that usually BPSK is demodulated in the same fashion as QPSK, though. In other words, it is mixed down to complex baseband and phase-locked using the complex symbols. The phase-lock stops the rotation of the complex vector so that the constellation points can be sliced on the real axis, but other than that it is demodulated just like QPSK. I hope that helps a little bit. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.ericjacobsen.org Blog: http://www.dsprelated.com/blogs-1/hf/Eric_Jacobsen.php
On Sep 29, 8:29&#2013266080;pm, "billykao" <billy....@gmail.com> wrote:
> Hello, > > I captured a raw 19.2K BPSK centered at 70 MHz. &#2013266080;I want to tune it at 70 > MHz and use the real part for BPSK demodulation. > > In MATLAB simulation, I can generate a BPSK modulated with an IF. &#2013266080;In FFT > plot, I can see the peak of the IF. &#2013266080;So if I can tune precisely at IF, I > can have a perfect real signal for BPSK demodulation. > > In the real world, I cannot see the peak of the IF. &#2013266080;So how can I center > the BPSK signal? &#2013266080;If I do not center the signal, the imaginary part will > fold back to the real part and make it difficult to demod. > > To do this job in the real world, is there any other things I need to pay > attention to? &#2013266080;Thank you. > > Billy
What you need is carrier recovery. As you noted, in a practical system, you are not going to have access to the exact carrier frequency (and even if you did, your system likely has an oscillator that is imprecise enough to require carrier recovery). There are many techniques for doing so; as Eric pointed out, you can use a phase- locked loop (often called a Costas loop in this context) to remove the "spinning" from the demodulated symbols and rotate them onto the real axis as you desire. Other strategies exist, such as passing the BPSK signal through a nonlinearity (like a square, or delay and multiply) to induce spectral lines whose frequencies are related to the carrier offset (look for "spectral line synchronization"). Jason
>On Sep 29, 8:29=A0pm, "billykao" <billy....@gmail.com> wrote: >> Hello, >> >> I captured a raw 19.2K BPSK centered at 70 MHz. =A0I want to tune it at
7=
>0 >> MHz and use the real part for BPSK demodulation. >> >> In MATLAB simulation, I can generate a BPSK modulated with an IF. =A0In
F=
>FT >> plot, I can see the peak of the IF. =A0So if I can tune precisely at
IF, =
>I >> can have a perfect real signal for BPSK demodulation. >> >> In the real world, I cannot see the peak of the IF. =A0So how can I
cente=
>r >> the BPSK signal? =A0If I do not center the signal, the imaginary part
wil=
>l >> fold back to the real part and make it difficult to demod. >> >> To do this job in the real world, is there any other things I need to
pay
>> attention to? =A0Thank you. >> >> Billy > >What you need is carrier recovery. As you noted, in a practical >system, you are not going to have access to the exact carrier >frequency (and even if you did, your system likely has an oscillator >that is imprecise enough to require carrier recovery). There are many >techniques for doing so; as Eric pointed out, you can use a phase- >locked loop (often called a Costas loop in this context) to remove the >"spinning" from the demodulated symbols and rotate them onto the real >axis as you desire. Other strategies exist, such as passing the BPSK >signal through a nonlinearity (like a square, or delay and multiply) >to induce spectral lines whose frequencies are related to the carrier >offset (look for "spectral line synchronization"). > >Jason >
Thank you Eric, Jason, I can see the residual carrier frequency from the mismatch of LO (for example, 70.001 MHz) and IF (70 MHz). I put a digital PLL between PFIR(DDC) and Costas loop doing frequency and phase correction for the residual frequency, because I found my Costas loop can only track a certain range of the frequency mismatch. So now after ADC sampled data, the data will pass a mixer, DDC, digital PLL, Costas loop for demodulation. Is it correct? Inside the digital PLL, I have a LPF for residual frequency so that my DDS (in PLL) can compensate it. It works fine with the signal generated by MATLAB. | MATLAB | |--|--| | | | ------|--|--|------ IF In the signal I captured, I didn't see any IF. I think in transmitting side, BPSK signal will be mixed with an IF (70 MHz). Why did I see it in the spectrum? Real signal |--\ /--| | | | ------|---|---|------ IF Jason, you mentioned Costas loop can correct the spin the symbol. Does it mean that my digital PLL is unnecessary? Thank you for your reply. Billy
>>On Sep 29, 8:29=A0pm, "billykao" <billy....@gmail.com> wrote: >>> Hello, >>> >>> I captured a raw 19.2K BPSK centered at 70 MHz. =A0I want to tune it
at
>7= >>0 >>> MHz and use the real part for BPSK demodulation. >>> >>> In MATLAB simulation, I can generate a BPSK modulated with an IF.
=A0In
>F= >>FT >>> plot, I can see the peak of the IF. =A0So if I can tune precisely at >IF, = >>I >>> can have a perfect real signal for BPSK demodulation. >>> >>> In the real world, I cannot see the peak of the IF. =A0So how can I >cente= >>r >>> the BPSK signal? =A0If I do not center the signal, the imaginary part >wil= >>l >>> fold back to the real part and make it difficult to demod. >>> >>> To do this job in the real world, is there any other things I need to >pay >>> attention to? =A0Thank you. >>> >>> Billy >> >>What you need is carrier recovery. As you noted, in a practical >>system, you are not going to have access to the exact carrier >>frequency (and even if you did, your system likely has an oscillator >>that is imprecise enough to require carrier recovery). There are many >>techniques for doing so; as Eric pointed out, you can use a phase- >>locked loop (often called a Costas loop in this context) to remove the >>"spinning" from the demodulated symbols and rotate them onto the real >>axis as you desire. Other strategies exist, such as passing the BPSK >>signal through a nonlinearity (like a square, or delay and multiply) >>to induce spectral lines whose frequencies are related to the carrier >>offset (look for "spectral line synchronization"). >> >>Jason >> > >Thank you Eric, Jason, > >I can see the residual carrier frequency from the mismatch of LO (for >example, 70.001 MHz) and IF (70 MHz). I put a digital PLL between >PFIR(DDC) and Costas loop doing frequency and phase correction for the >residual frequency, because I found my Costas loop can only track a
certain
>range of the frequency mismatch. So now after ADC sampled data, the
data
>will pass a mixer, DDC, digital PLL, Costas loop for demodulation. Is it >correct? > >Inside the digital PLL, I have a LPF for residual frequency so that my
DDS
>(in PLL) can compensate it. It works fine with the signal generated by >MATLAB. > | MATLAB > | > |--|--| > | | | >------|--|--|------ > IF > >In the signal I captured, I didn't see any IF. I think in transmitting >side, BPSK signal will be mixed with an IF (70 MHz). Why did I see it
in
>the spectrum? > Real signal > |--\ /--| > | | | >------|---|---|------ > IF > >Jason, you mentioned Costas loop can correct the spin the symbol. Does
it
>mean that my digital PLL is unnecessary? > >Thank you for your reply. > >Billy >
Sorry I need to fix my diagram. The MATLAB diagram actually looks the same as "real signal diagram". The difference is that the MALTAB signal is 1.6 Vp-p and real signal is less than 100 mVp-p. I think I need to tune it more precisely and the residual frequency may become more obvious. My another question. For a 19.2 K BPSK signal, what is the bandwidth? Can I tune at IF and demod only using real part? Thank you. Real signal |--\ /--| | | | ------|---|---|------ IF ?
On Sep 30, 2:19 pm, "billykao" <billy....@gmail.com> wrote:

> Sorry I need to fix my diagram. The MATLAB diagram actually looks the > same as "real signal diagram". The difference is that the MALTAB signal is > 1.6 Vp-p and real signal is less than 100 mVp-p. I think I need to tune it > more precisely and the residual frequency may become more obvious.
I think you need to determine your signal's bandwidth, apply a filter a little bit bigger than that (too get rid of noise) and make use of some of the processing gain available in that filter, and also in the probably less selective downsampler filter before it.