Re: Spectral Shaping using a PLL Loop Filter



On Mon, 04 Feb 2008 02:33:42 +1100, Allan Herriman
<allanherriman@xxxxxxxxxxx> wrote:

On Sun, 03 Feb 2008 09:22:21 -0500, Jon Mcleod
<jonmcleod2003@xxxxxxxxx> wrote:

Sorry to revisit this..

I'm trying (again) to directly generate an 930MHz FSK signal. My
"baseband" is a NRZ square wave switching the profile pin on a DDS. I'm
then multiplying the DSS output with a PLL/VCO to generate a 930MHz carrier.

For simplicity, I want to use the PLL loop filter for spectral shaping,
to buff out the instantaneous frequency changes and get the final output
within the FCC mask.

If this is possible, to make it work, I would need a loop filter that
spectrally shaped the output to be the equivalent of what you'd get from
a 10th order bessel baseband filter w/3.9kHz 3db bandwidth.

Strictly speaking, you want to give the closed loop transfer function
of the PLL a particular shape. The loop filter itself will not be a
10th order Bessel.

What I'm looking for is information on how to "translate" between a
baseband filter with <x> performance specs to the equivalent loop filter
with <y> performance specs. Or -- is this possible, or am I just way
out in left field?

Close to possible, but not quite. You can draw the feedback loop
yourself, and solve it for the transfer function (see below). The
problem is that you won't be able to get your required 10th order
lowpass shape in a practical PLL.

What you *can* do is get some amount of lowpass filtering, which is
good for removing the out of band spurious signals from your DDS. This
will probably be needed to meet certain regulatory requirements.

[I got some other great suggestions here a few months ago about doing it
digitally in the baseband, but that's beyond the scope of this project
for now..]

For me, 10th order anything screams digital, not analog.


Note:

Basic PLL block diagram (ignoring R (input) and N (feedback) dividers,
because they don't change the argument) and also ignoring sampling
effects (which is a reasonable assumption if the closed loop bw is
much less than one tenth of the reference frequency):

TH_in(s) +------+ +------+ +------+
--------->| PFD | | Loop | | VCO | TH_out(s)
| |-->| Filt |---| |---+------->
+-->| | | | | | |
| +------+ +------+ +------+ |
| |
+------------------------------------+


TH_in(s) and TH_out(s) represent the angles (i.e. phases) at the input
and output. (Units: radian)

PFD is the phase / frequency detector (although when it's locked, the
frequency detector part doesn't come into play). It has the transfer
function Kd. (Units: usually amp/radian for a current output phase
detector (the most common type). Sometimes volt / radian.)

Loop Filt is the loop filter that you design. It has the transfer
function G(s). We will usually go for 0 frequency error, which means
that we need a type II loop, and G(s) must contain a factor of 1/s.
(Units: volt / amp if the phase detector has a current output)

The VCO is the voltage controlled oscillator. It will have the
transfer function Kv/s. (Units: (radian/second)/volt )

Add a minute of high school algebra, and you get the following PLL
transfer function:

TH_out Kd G(s) Kv/s
------(s) = -----------------------
TH_in (1 + Kd G(s) Kv/s)

You want this to be an approximation of the transfer function of a
10th order low pass Bessel.

Then solve for G(s), remembering that G(s) must contain the factor
1/s.

If we assume that G(s) is a rational polynomial in s (i.e. we have a
hope of making it from actual physical components), then it can have
the form:
N(s)
G(s) = ---------
s D(s)

Where N and D are polynomials in s. (N, D stand for Numerator and
Denominator, btw.)

The PLL transfer function then simplifies to:

TH_out Kd Kv N(s)
------(s) = -----------------------
TH_in s^2 D(s) + Kd Kv N(s)


I haven't convinced myself that it is possible to find a solution
here. I'm tempted to say it isn't possible, but I can't prove it (at
half past two in the morning). Perhaps someone who knows what they
are talking about might like to comment.
I think the basic problem is that we can't position the roots of D(s)
without having N a function of s. This means that the transfer
function will have zeros spread across the s plane, and can never have
an exact Bessel shape (which would have all ten zeros at the origin).


Even it we can't get the desired Bessel shape, we still might be able
to get some reasonable filtering.

Regards,
Allan

It just (3am now) occured to me that the OP might be having problems
with the concept of the transfer function of a PLL, and how that
relates to the bandpass filtering effect of that PLL.

The transfer function (from above) is equivalent to the baseband
filter you would apply to your baseband modulating signal before
upconversion.
(I made some assumptions regarding linearity, but I think they hold in
the OP's case.)


Also, what I said earlier about the dependence of N(s) on D(s) only
applies for passive loop filters. You can have much better control of
the positions of the roots of D(s) with an active filter (or even
passive filter stages with active buffers between them).


Regards,
Allan
.



Relevant Pages

  • Re: Spectral Shaping using a PLL Loop Filter
    ... "baseband" is a NRZ square wave switching the profile pin on a DDS. ... For simplicity, I want to use the PLL loop filter for spectral shaping, ... you want to give the closed loop transfer function ...
    (comp.dsp)
  • Re: Spectral Shaping using a PLL Loop Filter
    ... For simplicity, I want to use the PLL loop filter for spectral shaping, to buff out the instantaneous frequency changes and get the final output within the FCC mask. ... If this is possible, to make it work, I would need a loop filter that spectrally shaped the output to be the equivalent of what you'd get from a 10th order bessel baseband filter w/3.9kHz 3db bandwidth. ...
    (comp.dsp)
  • Re: Basic understanding problem of continuous-time to discrete-time conversion
    ... Assuming I have a time-continuous first-order lowpass filter given by ... where W is the (continuous-time) frequency in rad/s and Wc is the ... create a time-discrete system with the same transfer function. ... they *do* overlap and add, ...
    (comp.dsp)
  • Re: removing phase shift - reversing the signal
    ... exponentials, then reverse the process (exponentials in impulse ... transfer function that is rational and higher order than Gand H ... Can you come up with a rational transfer function filter that has ... Now use TIIR technique to generate a filter with impulse response ...
    (comp.dsp)
  • Re: V.34 demodulation
    ... I am just starting a C++ project about V.34 fax demodulation and ... my processing ever took place at baseband. ... symbol rate for V.34 is in the range 2400..3429 Hz. ... A Farrow filter or polyphase interpolator can be used to synchronize ...
    (comp.dsp)