DSPRelated.com
Forums

Designing a loop filter for software PLL with following known information

Started by johnlovestohate October 3, 2011
>On Mon, 03 Oct 2011 16:36:51 -0500, johnlovestohate wrote: > >> Hi, >> I want to design a software PLL to correct a frequency offset in a >> baseband BPSK signal and after referring to the book Phase Locked Loops >> by Ronald Best I understand most of it. I still have questions
regarding
>> designing of the loop filter. >> >> L(s) = tau2*s + 1 >> ___________ >> tau1*s >> >> The laplace transform of the loop filter is as shown above and I can
use
>> bilinear transform to convert this into a time-domain equation. The >> question is how do I design the values of tau2 and tau1 when I have the >> following information available to me. >> >> Center frequency = 0Hz (Baseband signal) Frequency offset can be in the >> range of +/- 5000Hz. Sampling frequency = 1MHz. >> >> tau2 and tau1 are dependent upon the noise-bandwidth. How do I set the >> noise bandwidth with the information that I have? > >Since you don't have enough information to do a good job, just pick >numbers that look right and run with them. > >You would like for your loop bandwidth to be greater than 5000Hz, to >assist in locking to your frequency offset. But if your SNR is too low >for that then a wide-open loop bandwidth will result in too much carrier >jitter. What you really need is to know your SNR and the expected >dynamics of the difference between your local reference oscillator and >the carrier frequency of your signal. If you don't know these absolutely
>(which you often don't in a mobile system), then you least need to decide
>on design values outside of which you won't guarantee the system to work. >
I am just doing this as a learning experiment using USRPs and GNU Radio so the SNR for my system will be very high (> 30dB). I tested the USRPs that I have and found out that the offset lies between +/-5000Hz. So as you suggested I will choose a loop bandwidth of greater than 5000Hz to lock to the offset.
>-- >www.wescottdesign.com >
On Tue, 04 Oct 2011 14:06:43 -0500, "johnlovestohate"
<aliatolemiss@n_o_s_p_a_m.gmail.com> wrote:

>>On Mon, 03 Oct 2011 16:36:51 -0500, johnlovestohate wrote: >> >>> Hi, >>> I want to design a software PLL to correct a frequency offset in a >>> baseband BPSK signal and after referring to the book Phase Locked Loops >>> by Ronald Best I understand most of it. I still have questions >regarding >>> designing of the loop filter. >>> >>> L(s) = tau2*s + 1 >>> ___________ >>> tau1*s >>> >>> The laplace transform of the loop filter is as shown above and I can >use >>> bilinear transform to convert this into a time-domain equation. The >>> question is how do I design the values of tau2 and tau1 when I have the >>> following information available to me. >>> >>> Center frequency = 0Hz (Baseband signal) Frequency offset can be in the >>> range of +/- 5000Hz. Sampling frequency = 1MHz. >>> >>> tau2 and tau1 are dependent upon the noise-bandwidth. How do I set the >>> noise bandwidth with the information that I have? >> >>Since you don't have enough information to do a good job, just pick >>numbers that look right and run with them. >> >>You would like for your loop bandwidth to be greater than 5000Hz, to >>assist in locking to your frequency offset. But if your SNR is too low >>for that then a wide-open loop bandwidth will result in too much carrier >>jitter. What you really need is to know your SNR and the expected >>dynamics of the difference between your local reference oscillator and >>the carrier frequency of your signal. If you don't know these absolutely > >>(which you often don't in a mobile system), then you least need to decide > >>on design values outside of which you won't guarantee the system to work. >> > >I am just doing this as a learning experiment using USRPs and GNU Radio so >the SNR for my system will be very high (> 30dB). I tested the USRPs that I >have and found out that the offset lies between +/-5000Hz. So as you >suggested I will choose a loop bandwidth of greater than 5000Hz to lock to >the offset.
The loop bandwidth should really be chosen as a function of the symbol rate, and you haven't indicated what symbol rate you're planning on using. e.g., if you want to handle QPSK with a symbol rate that allows a couple samples per symbol or more with your 1MHz sample rate, then a 5000 Hz loop bandwidth for carrier recovery will be too wide for good performance. Eric Jacobsen Anchor Hill Communications www.anchorhill.com
>On Tue, 04 Oct 2011 14:06:43 -0500, "johnlovestohate" ><aliatolemiss@n_o_s_p_a_m.gmail.com> wrote: > >>>On Mon, 03 Oct 2011 16:36:51 -0500, johnlovestohate wrote: >>> >>>> Hi, >>>> I want to design a software PLL to correct a frequency offset in a >>>> baseband BPSK signal and after referring to the book Phase Locked
Loops
>>>> by Ronald Best I understand most of it. I still have questions >>regarding >>>> designing of the loop filter. >>>> >>>> L(s) = tau2*s + 1 >>>> ___________ >>>> tau1*s >>>> >>>> The laplace transform of the loop filter is as shown above and I can >>use >>>> bilinear transform to convert this into a time-domain equation. The >>>> question is how do I design the values of tau2 and tau1 when I have
the
>>>> following information available to me. >>>> >>>> Center frequency = 0Hz (Baseband signal) Frequency offset can be in
the
>>>> range of +/- 5000Hz. Sampling frequency = 1MHz. >>>> >>>> tau2 and tau1 are dependent upon the noise-bandwidth. How do I set
the
>>>> noise bandwidth with the information that I have? >>> >>>Since you don't have enough information to do a good job, just pick >>>numbers that look right and run with them. >>> >>>You would like for your loop bandwidth to be greater than 5000Hz, to >>>assist in locking to your frequency offset. But if your SNR is too low
>>>for that then a wide-open loop bandwidth will result in too much carrier
>>>jitter. What you really need is to know your SNR and the expected >>>dynamics of the difference between your local reference oscillator and >>>the carrier frequency of your signal. If you don't know these
absolutely
>> >>>(which you often don't in a mobile system), then you least need to
decide
>> >>>on design values outside of which you won't guarantee the system to
work.
>>> >> >>I am just doing this as a learning experiment using USRPs and GNU Radio
so
>>the SNR for my system will be very high (> 30dB). I tested the USRPs that
I
>>have and found out that the offset lies between +/-5000Hz. So as you >>suggested I will choose a loop bandwidth of greater than 5000Hz to lock
to
>>the offset. > >The loop bandwidth should really be chosen as a function of the symbol >rate, and you haven't indicated what symbol rate you're planning on >using.
samples per symbol = 2 sampling rate = 1MHz With the above parameters how do we choose the loop bandwidth. Is there a hard and fast rule or do I have to experiment and depending upon the way it performs fine tune it? I am not a communications engineer. All I know is programming and computer science. I am doing this as a hobby as my ultimate goal is to contribute to GNU Radio project. Thanks
> >e.g., if you want to handle QPSK with a symbol rate that allows a >couple samples per symbol or more with your 1MHz sample rate, then a >5000 Hz loop bandwidth for carrier recovery will be too wide for good >performance. > > >Eric Jacobsen >Anchor Hill Communications >www.anchorhill.com >
On Tue, 04 Oct 2011 20:38:15 -0500, "johnlovestohate"
<aliatolemiss@n_o_s_p_a_m.gmail.com> wrote:

>>On Tue, 04 Oct 2011 14:06:43 -0500, "johnlovestohate" >><aliatolemiss@n_o_s_p_a_m.gmail.com> wrote: >> >>>>On Mon, 03 Oct 2011 16:36:51 -0500, johnlovestohate wrote: >>>> >>>>> Hi, >>>>> I want to design a software PLL to correct a frequency offset in a >>>>> baseband BPSK signal and after referring to the book Phase Locked >Loops >>>>> by Ronald Best I understand most of it. I still have questions >>>regarding >>>>> designing of the loop filter. >>>>> >>>>> L(s) = tau2*s + 1 >>>>> ___________ >>>>> tau1*s >>>>> >>>>> The laplace transform of the loop filter is as shown above and I can >>>use >>>>> bilinear transform to convert this into a time-domain equation. The >>>>> question is how do I design the values of tau2 and tau1 when I have >the >>>>> following information available to me. >>>>> >>>>> Center frequency = 0Hz (Baseband signal) Frequency offset can be in >the >>>>> range of +/- 5000Hz. Sampling frequency = 1MHz. >>>>> >>>>> tau2 and tau1 are dependent upon the noise-bandwidth. How do I set >the >>>>> noise bandwidth with the information that I have? >>>> >>>>Since you don't have enough information to do a good job, just pick >>>>numbers that look right and run with them. >>>> >>>>You would like for your loop bandwidth to be greater than 5000Hz, to >>>>assist in locking to your frequency offset. But if your SNR is too low > >>>>for that then a wide-open loop bandwidth will result in too much carrier > >>>>jitter. What you really need is to know your SNR and the expected >>>>dynamics of the difference between your local reference oscillator and >>>>the carrier frequency of your signal. If you don't know these >absolutely >>> >>>>(which you often don't in a mobile system), then you least need to >decide >>> >>>>on design values outside of which you won't guarantee the system to >work. >>>> >>> >>>I am just doing this as a learning experiment using USRPs and GNU Radio >so >>>the SNR for my system will be very high (> 30dB). I tested the USRPs that >I >>>have and found out that the offset lies between +/-5000Hz. So as you >>>suggested I will choose a loop bandwidth of greater than 5000Hz to lock >to >>>the offset. >> >>The loop bandwidth should really be chosen as a function of the symbol >>rate, and you haven't indicated what symbol rate you're planning on >>using. > >samples per symbol = 2 >sampling rate = 1MHz > >With the above parameters how do we choose the loop bandwidth. Is there a >hard and fast rule or do I have to experiment and depending upon the way it >performs fine tune it? > >I am not a communications engineer. All I know is programming and computer >science. I am doing this as a hobby as my ultimate goal is to contribute to >GNU Radio project.
Setting tracking loop bandwidths may depend on the application, so you're the only one that can really decide where they should be. The general tradeoff is that the wider the loop the better it will track out perturbations but the more noise it will let through. If the loop bandwidth approaches the modulation bandwidth it will track out phase modulation, which removes the data, which is generally not considered good. If the loop bandwidth is too small, then any little perturbation, including phase noise, can cause a cycle slip, which is also bad if the signal is coherently modulated. In my experience many places keep their design practices for setting loop bandwidths proprietary, and, as mentioned, they're generally application-dependent, too, so it may take a bit of research to find what will work best for whatever it is you're trying to do. Eric Jacobsen Anchor Hill Communications www.anchorhill.com