Welcome
Username or Email:

Password:


Missing Code




[ ]
[ ]
Online
  • Guests: 16
  • Members: 0
  • Newest Member: omjtest
  • Most ever online: 396
    Guests: 396, Members: 0 on 12 Jan : 12:51
Members Birthdays:
All today's birthdays', congrats!
ramses (16)
Arcstarter (31)
Zak (15)


Next birthdays
05/11 ramses (16)
05/11 Arcstarter (31)
05/11 Zak (15)
Contact
If you need assistance, please send an email to forum at 4hv dot org. To ensure your email is not marked as spam, please include the phrase "4hv help" in the subject line. You can also find assistance via IRC, at irc.shadowworld.net, room #hvcomm.
Support 4hv.org!
Donate:
4hv.org is hosted on a dedicated server. Unfortunately, this server costs and we rely on the help of site members to keep 4hv.org running. Please consider donating. We will place your name on the thanks list and you'll be helping to keep 4hv.org alive and free for everyone. Members whose names appear in red bold have donated recently. Green bold denotes those who have recently donated to keep the server carbon neutral.


Special Thanks To:
  • Aaron Holmes
  • Aaron Wheeler
  • Adam Horden
  • Alan Scrimgeour
  • Andre
  • Andrew Haynes
  • Anonymous000
  • asabase
  • Austin Weil
  • barney
  • Barry
  • Bert Hickman
  • Bill Kukowski
  • Blitzorn
  • Brandon Paradelas
  • Bruce Bowling
  • BubeeMike
  • Byong Park
  • Cesiumsponge
  • Chris F.
  • Chris Hooper
  • Corey Worthington
  • Derek Woodroffe
  • Dalus
  • Dan Strother
  • Daniel Davis
  • Daniel Uhrenholt
  • datasheetarchive
  • Dave Billington
  • Dave Marshall
  • David F.
  • Dennis Rogers
  • drelectrix
  • Dr. John Gudenas
  • Dr. Spark
  • E.TexasTesla
  • eastvoltresearch
  • Eirik Taylor
  • Erik Dyakov
  • Erlend^SE
  • Finn Hammer
  • Firebug24k
  • GalliumMan
  • Gary Peterson
  • George Slade
  • GhostNull
  • Gordon Mcknight
  • Graham Armitage
  • Grant
  • GreySoul
  • Henry H
  • IamSmooth
  • In memory of Leo Powning
  • Jacob Cash
  • James Howells
  • James Pawson
  • Jeff Greenfield
  • Jeff Thomas
  • Jesse Frost
  • Jim Mitchell
  • jlr134
  • Joe Mastroianni
  • John Forcina
  • John Oberg
  • John Willcutt
  • Jon Newcomb
  • klugesmith
  • Leslie Wright
  • Lutz Hoffman
  • Mads Barnkob
  • Martin King
  • Mats Karlsson
  • Matt Gibson
  • Matthew Guidry
  • mbd
  • Michael D'Angelo
  • Mikkel
  • mileswaldron
  • mister_rf
  • Neil Foster
  • Nick de Smith
  • Nick Soroka
  • nicklenorp
  • Nik
  • Norman Stanley
  • Patrick Coleman
  • Paul Brodie
  • Paul Jordan
  • Paul Montgomery
  • Ped
  • Peter Krogen
  • Peter Terren
  • PhilGood
  • Richard Feldman
  • Robert Bush
  • Royce Bailey
  • Scott Fusare
  • Scott Newman
  • smiffy
  • Stella
  • Steven Busic
  • Steve Conner
  • Steve Jones
  • Steve Ward
  • Sulaiman
  • Thomas Coyle
  • Thomas A. Wallace
  • Thomas W
  • Timo
  • Torch
  • Ulf Jonsson
  • vasil
  • Vaxian
  • vladi mazzilli
  • wastehl
  • Weston
  • William Kim
  • William N.
  • William Stehl
  • Wesley Venis
The aforementioned have contributed financially to the continuing triumph of 4hv.org. They are deserving of my most heartfelt thanks.
Forums
4hv.org :: Forums :: Computer Science
« Previous topic | Next topic »   

Question regarding DSP Theory

1 2 
Move Thread LAN_403
Linas
Tue Sept 17 2013, 08:07AM Print
Linas Registered Member #1143 Joined: Sun Nov 25 2007, 04:55PM
Location: Vilnius, Lithuania
Posts: 721
Hello, i have "simple" question about system response correction.
Setup:
I have , lets say oscillator with burst output with unstable phase (Burst phase is stable , but not stable between two bursts). I can measure phase of each burst, and i have feedback mechanism that can correct phase. Phase(Vdac)=Const*Vdac*f(?). In best case scenario, i have direct correlation between DAC voltage output, and phase. its around 0.2V/rad. Problem is, i have system with nonlinear response (aka f(?)!=1).

Question, can i do something to make oscillator act as linear system, by doing deconvolution or other DSP magic, so even if oscillator has nonlinear response, i can correct my feedback voltage by knowing all phase correction values in past so it will act as linear ?
And if i can, how can i get this function coefficients, to get new value for phase correction ? ( I imagine that it will be convolution with past phase correction voltages with some kind function, that would yield new phase correction value )
Back to top
Steve Conner
Tue Sept 17 2013, 09:12AM
Steve Conner Registered Member #30 Joined: Fri Feb 03 2006, 10:52AM
Location: Glasgow, Scotland
Posts: 6706
Convolution and deconvolution are linear operations, so they can't be used to undo a nonlinear transformation.

If the nonlinearity is static, you need a lookup table. You measure the nonlinearity in the lab and calculate the inverse of it so that f(?) *LUT(?) = 1. Then in your firmware you do LUT(Vdac) to undo the effect of f(?).

For more complicated dynamic non-linearities (that change with time in predictable ways) you can use a Volterra kernel, which is a nonlinear extension to convolution.

If the form of the non-linearity changes in an unpredictable way with time, you're screwed, unless you can transform the whole problem into another basis where it is predictable.
Back to top
Linas
Tue Sept 17 2013, 10:09AM
Linas Registered Member #1143 Joined: Sun Nov 25 2007, 04:55PM
Location: Vilnius, Lithuania
Posts: 721
It looks like non-linearity comes from oscillator inertia, That's why i need to know all phase correction values in past ( well, not all, since more it goes into the past, less impact it will have on system in current measurement)

Or better way to focus on my feedback algorithm, use not PI but PID, and try to do best job for finding constants for PID ?

And yes, it is possible that time will have impact for oscillator response dead

Since right now my system should work with higher frequency than oscillator phase noise(it should be >4 times faster), and since i have nonlinear system, even if i can double or tripple operating frequency , chance are slim that i succeed by locking oscillator phase just by simple PI loop.
Back to top
Steve Conner
Tue Sept 17 2013, 11:54AM
Steve Conner Registered Member #30 Joined: Fri Feb 03 2006, 10:52AM
Location: Glasgow, Scotland
Posts: 6706
"Inertia" is a linear process too, equivalent to a low-pass filter, so you should probably look elsewhere for the nonlinearity. Hint: phase detection can be nonlinear, some phase detectors give an output proportional to the sine of the phase difference.

If you had linear inertia going into a nonlinear phase detector, a Volterra kernel could undo that, but an inverse sine lookup table followed by an IIR filter (or properly tuned PID controller- a digital PID is just an IIR filter anyway) would do the same with less computation.

Have you read "The Scientist's and Engineer's Guide to Digital Signal Processing"? The whole book is available online at dspguide.com.
Back to top
Linas
Tue Sept 17 2013, 12:11PM
Linas Registered Member #1143 Joined: Sun Nov 25 2007, 04:55PM
Location: Vilnius, Lithuania
Posts: 721
Steve Conner wrote ...


Have you read "The Scientist's and Engineer's Guide to Digital Signal Processing"? The whole book is available online at dspguide.com.

I had curse in university, but only for basics. Thanks for reminding me of that book, i will read it again
Back to top
WaveRider
Wed Sept 18 2013, 10:16AM
WaveRider Registered Member #29 Joined: Fri Feb 03 2006, 09:00AM
Location: Hasselt, Belgium
Posts: 500
Hi Linas,
Can you clarify something for me? Are you confusing "nonlinearity" with "randomness"? Are you saying that you wish to lock a local oscillator to intermittent bursts of sinusoidal signals whose inter-burst phase is random?

It sounds to me that you are describing the classic acquisition problem where in input signal phase follows a Markov random process (phase history correlation decays with time). Unless I am misunderstanding your setup, a digital PLL (PI loop) should be able to lock on bursts, since the local oscillator will "remember" the phase of the previous burst for a time in the absence of the input signal. (It will start to drift only slowly in the absence of the reference signal.PLL oscillator phase exhibits random-walk behavior in the presence of noisy reference signals. ) When the next burst arrives, the PLL will correct for the new phase, and so on..
Back to top
Linas
Wed Sept 18 2013, 12:03PM
Linas Registered Member #1143 Joined: Sun Nov 25 2007, 04:55PM
Location: Vilnius, Lithuania
Posts: 721
Oscillator is Laser. It has random noise ( all power of phase noise is below 50KHz while burst frequency could be as high as 1MHz. note that phase is stable in same impulse)
But that Oscillator has stabilization unit, and it can control oscillator phase via a bit nonlinear response. How much is nonlinear i don't know, but because my PID loop is running only 4 to 8 times faster then noise, i need to have linear response to get a fighting chance to lock phase.
Back to top
Steve Conner
Wed Sept 18 2013, 12:22PM
Steve Conner Registered Member #30 Joined: Fri Feb 03 2006, 10:52AM
Location: Glasgow, Scotland
Posts: 6706
Time to characterise the nonlinearity of the phase stabilisation unit, I guess. tongue
Back to top
Linas
Wed Sept 18 2013, 02:08PM
Linas Registered Member #1143 Joined: Sun Nov 25 2007, 04:55PM
Location: Vilnius, Lithuania
Posts: 721
Steve Conner wrote ...

Time to characterize the non-linearity of the phase stabilization unit, I guess. tongue
Hrr, i don't know how to explain

I have oscillator, it has random phase between two pulses ( random means that all power for noise is below 50KHz, most of that is very small variation in time, rest is high frequency noise )
Now, i have setup to measure phase. it use DSP and 16b adc to recover phase from each pulse. my loop maximum speed will be 240KHz, so i am only 4 to 8 faster than phase variation. In order to try to stabilize oscillator phase i must change oscillator phase to zero by adding voltage to feedback input. Problem is, oscillator will react to voltage difference in feedback in non linear mater . In order to get beast results, i would like to modify my feedback so interaction with nonlinear oscillator will produce linear phase difference, hence after any measurement i should be able to put oscillator phase to zero. If i don't use that, i will overshoot or undershoot , and that is unacceptable result.

If i have PID that works 100x or maybe 1000x speed ( i mean compared with phase noise , since all power is below 50KHz), so even if i undershoot or overshoot, with feedback voltage i will eventually get stable phase even if i have nonlinear response.
Back to top
Steve Conner
Wed Sept 18 2013, 03:44PM
Steve Conner Registered Member #30 Joined: Fri Feb 03 2006, 10:52AM
Location: Glasgow, Scotland
Posts: 6706
"Characterise" means make an experiment to measure the nonlinearity. You need to understand what it is like before you can even think about compensating for it.

On a related note, if your laser is pulsed with a rep rate of 1MHz, you have a sampled system with a Nyquist frequency of 500kHz. Therefore there is no point in running the digital side any faster than 500kHz. Ideally you would run the calculations once per burst to produce a phase correction for the next burst.
Back to top
1 2 

Moderator(s): Chris Russell, Noelle, Alex, Tesladownunder, Dave Marshall, Dave Billington, Bjørn, Steve Conner, Wolfram, Kizmo, Mads Barnkob

Go to:

Powered by e107 Forum System
 
Legal Information
This site is powered by e107, which is released under the GNU GPL License. All work on this site, except where otherwise noted, is licensed under a Creative Commons Attribution-ShareAlike 2.5 License. By submitting any information to this site, you agree that anything submitted will be so licensed. Please read our Disclaimer and Policies page for information on your rights and responsibilities regarding this site.