Sign in

username:

password:



Not a member?

Search compdsp



Search tips

comp.dsp by Keywords

Adaptive Filter | ADPCM | ADSP | ADSP-2181 | Aliasing | AMR | Anti-Aliasing | ARMA | Autocorrelation | AutoCovariance | Beamforming | Bessel | Blackfin | Butterworth | C6713 | CCS | Chebyshev | CIC Filter | Circular Convolution | Code Composer Studio | Comb Filter | Compression | Convolution | Cross Correlation | DCT | Decimation | Deconvolution | Demodulation | DM642 | DSP Boards | DSP/BIOS | DTMF | Echo Cancellation | Equalization | Equalizer | ETSI | EZLITE (Ez-kit Lite) | FFT | FFTW | FIR Filter | Fixed Point | FSK | G.711 | G.723 | G.729 | Gaussian Noise | Goertzel | GPIO | Hilbert Transform | IFFT | IIR Filter | Interpolation | Invariance | JTAG | Kalman | Laplace Transform | Levinson | LPC | McBSP | MIPS | Modulation | MPEG | Multirate | Notch Filter | Nyquist | OFDM | Oversampling | Pink Noise | Pitch | PLL | Polyphase | QAM | QDMA | Quantization | Quantizer | Radar | Random Noise | Reed Solomon | Remez | Resampling | RTDX | Sampling | Sharc | TI C6711 | Undersampling | Viterbi | Wavelets | White Noise | Wiener Filter | Windowing | XDS510PP | Z Transform


Discussion Groups

Free Online Books

See Also

Embedded SystemsFPGAElectronics

Discussion Groups | Comp.DSP | costas loop error correction

There are 7 messages in this thread.

You are currently looking at messages 0 to 7.


costas loop error correction - viswanath - 2004-05-05 15:33:00

Hi,
I have come across a lot of literature saying that costas loop is used
for phase error correction. I had few questions regarding that. After
multiplying and generating a difference signal either cos(phi) or
sin(phi) where phi is the phase difference between the incoming and
the locally generated signals, how is this translated to an angle
which can be given as an input to the VCO??
The output of the carrier discriminator which can be a multiplier is
sin(2*phi). I wanted to know what the loop filter does that converts
this value to an appropriate value as an input to the VCO.
If we consider another discriminator such as arctan then we directly
can get a phase difference angle as the input to the VCO. However what
is the use of a loop filter in this case??
Are there any higher frequency terms that need to be filtered out?
Could you please reply to my questions?
I would greatly appreciate your response.
Thanking You,
Viswanath
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: costas loop error correction - bamse - 2004-05-05 15:49:00



Hello

I am also working on a phase tracker (PLL) in matlab. I have to make a
coherent OQPSK-demodulator. I have a hard time finding out how to create a
signal that can be used as an estimate for the phase-error. The quadrature
receiver gives me the coordinates of a rotated vector (x,y) where the
rotation angle is the phase-error, but
what do I then do?

Do you (or any other who reads this) have any suggestions?
---


______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: costas loop error correction - Tim Wescott - 2004-05-05 16:11:00

viswanath wrote:

> Hi,
> I have come across a lot of literature saying that costas loop is used
> for phase error correction. I had few questions regarding that. After
> multiplying and generating a difference signal either cos(phi) or
> sin(phi) where phi is the phase difference between the incoming and
> the locally generated signals, how is this translated to an angle
> which can be given as an input to the VCO??
> The output of the carrier discriminator which can be a multiplier is
> sin(2*phi). I wanted to know what the loop filter does that converts
> this value to an appropriate value as an input to the VCO.
> If we consider another discriminator such as arctan then we directly
> can get a phase difference angle as the input to the VCO. However what
> is the use of a loop filter in this case??
> Are there any higher frequency terms that need to be filtered out?
> Could you please reply to my questions?
> I would greatly appreciate your response.
> Thanking You,
> Viswanath

For small phase errors sin(phi) =~ phi, so that's what you use.  How the 
loop locks is a different matter, but that's beyond this post and it's 
often not a big worry assuming you start fairly close-on in frequency.

The loop filter is the same as for any PLL.  Generally you'll want to 
think about using a PI filter.  You can filter out higher frequencies if 
you want, or you can just use a filter that's sampled at the incoming 
data rate.

-- 

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: costas loop error correction - bamse - 2004-05-05 16:43:00

Hi

The OQPSK-signal that I have to demodulate uses a half-sine pulse shaping
function to modulate each basis-function in the signal. The received signal
therefore looks like this:

s(t) = mi(t) * cos(2*pi*f*t+p)+ mq(t) * sin(2*pi*f*t+p)

where mi(t) is the I-phase signal and mq(t) is the Q-phase signal. p is the
phase-error.

When the signal is received it is sent through two branches (I-branch and
Q-branch).

In the I-branch s(t) is multiplied by a local carrier wave cos(2*pi*f*t)
that comes from a VCO. After that the product is lowpass-filtered. The
result is:

I(t)=mi(t)*cos(p)+mq(t)*sin(p)

In the Q-branch s(t) is multiplied by a local carrier wave sin(2*pi*f*t)
(VCO-signal is phaseshifted 90 degrees). After that the product is
lowpass-filtered. The result is:

Q(t)=mq(t)*cos(p)-mi(t)*sin(p)

This is a rotation of the vector [mi(t),mq(t)]

Now, my problem is :

How do I manipulate with I(t) and Q(t) to produce a phase-error correcting
signal that can be fed to the VCO?

Thanks.

Jakob
Denmark


______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: costas loop error correction - Tim Wescott - 2004-05-05 17:18:00

bamse wrote:
> Hi
> 
> The OQPSK-signal that I have to demodulate uses a half-sine pulse shaping
> function to modulate each basis-function in the signal. The received signal
> therefore looks like this:
> 
> s(t) = mi(t) * cos(2*pi*f*t+p)+ mq(t) * sin(2*pi*f*t+p)
> 
> where mi(t) is the I-phase signal and mq(t) is the Q-phase signal. p is the
> phase-error.
> 
> When the signal is received it is sent through two branches (I-branch and
> Q-branch).
> 
> In the I-branch s(t) is multiplied by a local carrier wave cos(2*pi*f*t)
> that comes from a VCO. After that the product is lowpass-filtered. The
> result is:
> 
> I(t)=mi(t)*cos(p)+mq(t)*sin(p)
> 
> In the Q-branch s(t) is multiplied by a local carrier wave sin(2*pi*f*t)
> (VCO-signal is phaseshifted 90 degrees). After that the product is
> lowpass-filtered. The result is:
> 
> Q(t)=mq(t)*cos(p)-mi(t)*sin(p)
> 
> This is a rotation of the vector [mi(t),mq(t)]
> 
> Now, my problem is :
> 
> How do I manipulate with I(t) and Q(t) to produce a phase-error correcting
> signal that can be fed to the VCO?
> 
> Thanks.
> 
> Jakob
> Denmark
> 
> 

This was on the group recently, and now I can't find it.

In any case, OQPSK with half-sine shaping just happens, through the 
magic of trigonometry, to be FSK with the shift exactly equal to 1/2 the 
data rate.  It's known as MSK.  It's treatment is documented in these 
two articles, which I found very helpful in doing my Master's thesis:

R De Buda "Coherent Demodulation of Frequency-Shift Keying with Low 
Deviation Ratio" -- IEEE Transactions, 1972, COM-20 pp 429-435.

S Pasupathy, "Minimum Shift Keying: A Spectrally Efficient Modulation" 
-- IEEE Communications Society Magazine, July 1979, Vol 17, pp 14-22.

One of these IIRC had a detailed block diagram and explanation of a 
Costas loop.  I think it was the De Buda article.  I practically coded 
off of the block diagram.

-- 

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: costas loop error correction - viswanath - 2004-05-05 22:35:00

Hi Tim,
Thanks for the reply.
Could you please direct me to any book or source which deals with how
the phases are locked?
What would happen if the assumption you took sin(x) = x is not
satisfied??
If I am performing a carrier tracking loop at baseband frequencies and
I just have the error signals then what is the need for a loop filter
after the discriminator and before the VCO? What is its purpose?
The VCO should be a function of the input control signal (which in
this case is the error signal). Then what is the functionality of the
loop filter in a costas loop?
Could you please reply to this?
I would greatly appreciate your reply.
Thanks
Viswa





Tim Wescott <t...@wescottnospamdesign.com> wrote in message news:<1...@corp.supernews.com>...
> viswanath wrote:
> 
> > Hi,
> > I have come across a lot of literature saying that costas loop is used
> > for phase error correction. I had few questions regarding that. After
> > multiplying and generating a difference signal either cos(phi) or
> > sin(phi) where phi is the phase difference between the incoming and
> > the locally generated signals, how is this translated to an angle
> > which can be given as an input to the VCO??
> > The output of the carrier discriminator which can be a multiplier is
> > sin(2*phi). I wanted to know what the loop filter does that converts
> > this value to an appropriate value as an input to the VCO.
> > If we consider another discriminator such as arctan then we directly
> > can get a phase difference angle as the input to the VCO. However what
> > is the use of a loop filter in this case??
> > Are there any higher frequency terms that need to be filtered out?
> > Could you please reply to my questions?
> > I would greatly appreciate your response.
> > Thanking You,
> > Viswanath
> 
> For small phase errors sin(phi) =~ phi, so that's what you use.  How the 
> loop locks is a different matter, but that's beyond this post and it's 
> often not a big worry assuming you start fairly close-on in frequency.
> 
> The loop filter is the same as for any PLL.  Generally you'll want to 
> think about using a PI filter.  You can filter out higher frequencies if 
> you want, or you can just use a filter that's sampled at the incoming 
> data rate.
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.

Re: costas loop error correction - Tim Wescott - 2004-05-05 23:36:00

viswanath wrote:

> Hi Tim,
> Thanks for the reply.
> Could you please direct me to any book or source which deals with how
> the phases are locked?

Dan H. Wolaver, "Phase-Locked Loop Circuit Design", Prentice-Hall 1991, 
ISBN 0-13-662743-9.  Any PLL book would do, but this is the devil I know.

> What would happen if the assumption you took sin(x) = x is not
> satisfied??

Then your loop isn't locked.  Your loop is locked if x =~ 0, and if x =~ 
0 then sin(x) =~ x.  How the loop comes into lock is an issue to learn 
out of a PLL book.

> If I am performing a carrier tracking loop at baseband frequencies and
> I just have the error signals then what is the need for a loop filter
> after the discriminator and before the VCO? What is its purpose?
> The VCO should be a function of the input control signal (which in
> this case is the error signal). Then what is the functionality of the
> loop filter in a costas loop?

The loop filter usually includes an integrator, to bring the phase error 
to zero when there is a frequency offset.

> Could you please reply to this?
> I would greatly appreciate your reply.
> Thanks
> Viswa
-- snip --


-- 

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
______________________________
New DSP Code Snippets Section now Live.   Learn more about the reward program for contributors here.