# Variable phase shifter?

Discussion in 'Electronic Design' started by Tom Bruhns, Aug 15, 2008.

1. ### Tom BruhnsGuest

Anyone have any favorite circuits for accomplishing a variable phase
shift which is relatively independent of frequency? What I'd like:
o Logic level input; logic level output
o Input is square wave between about 2MHz and 120MHz
o Output is two channels, same frequency as input, whose
relative phase may be adjusted over 360 degrees minimum
(-180 to +180 OK too; just need 360 span)
o Output same logic levels as input, nominally.
o Ideally, the phase will be controlled through an analog
voltage input, say 0-5V, but could be different.

It's obviously relatively easy to generate variable delays which are
essentially independent of frequency, but the resulting phase shifts
then depend linearly on frequency. I'd like the phase shift to be
nearly independent of frequency. You can also pretty easily make
phase shift networks that provide a constant frequency-independent
relative phase shift between two channels, but I need the phase shift
to be controllable. I have some ideas about how to do this, but
figured there may be some standard easy way that I'm missing.

Cheers,
Tom

2. ### Scott SeidmanGuest

I think it really does seem to be a phase shifter-- if you dial in 90
degrees, you'd require a 90 degree shift for any frequency square wave.

I think adding a variable offset to a phase detector in a phase-locked loop
might be one approach to run down-- if you're limiting the input to square
waves.

3. ### Tom BruhnsGuest

Yep, like I said, a constant phase shift over even a decade or more
isn't difficult--done all the time for phasing-type single sideband
generation; it's the variable that's more fun.

Yes, it's probably a bit misleading to describe phase shifting of a
square wave, but if I'd said "delay," that's misleading too since it
would be "a time delay that is proportional to the inverse of the
fundamental frequency, and also proportional to a control voltage."
And I suspect that a "product" isn't what I need--I'm looking for a
relatively simple circuit that will fit in maybe a couple square
inches of board space.

I should add that milliseconds of settling time between changes in
frequency or control voltage is OK.

Cheers,
Tom

4. ### Scott SeidmanGuest

Do you really need to take an input square wave and generate a phase-
changed output, or can you generate both waves? You can use two DDSs
(direct digital synthesizers) with a variable offset between them for
phase, and both using the same step size. You change the freq by changing
the step size, but the phase between the output waves would be the same,
and modifiable through a separate control.

5. ### Scott SeidmanGuest

Check out the AD9953, for example.

6. ### Tom BruhnsGuest

Thanks Scott. Yes, that's one approach I've been thinking would work,
though I'm expecting to have an input that's very low phase noise, and
a 60:1 range VCO in a PLL isn't going to be particularly low phase
noise, I'm afraid. I'll give that some more thought, though.

I've been wanting to do this "analog" to avoid having to deal with
digital control signals and the implied human interface, but if I were
to go digital, then a DDS chip would do everything very nicely. That
is, I don't need to limit the solution to using a square wave input
from an external source; the circuit could be the source. It's just
easier for me to use one of our existing good signal generators as a
source and add a circuit to give me the two outputs whose relative
phase is adjustable. But if the analog circuit to do it is too
complex, it's not worth the effort to go that way.

Cheers,
Tom

7. ### Scott SeidmanGuest

I haven't been deep into the data sheet of the DDS I posted before, but
just deep enough to know that there are synchro inputs. You might be able
to run the whole thing off of the nice signal generator you have. Probably

8. ### Tom BruhnsGuest

Yep, DDS is definitely an option, but a bit more complicated to hack
than I was hoping for. ;-) It does give me nice low phase noise, and
can obviously be programmed to whatever phase offset I want. Well--
actually as I think about it, the phase offset comes in pretty big
increments if the output frequency is high. If the DDS clock is
400MHz, for example, at 120MHz output the phase would adjust in 108
degree steps. Maybe DDS isn`t the right answer.

Cheers,
Tom

9. ### Tom BruhnsGuest

Duh...OK, I know what I was THINKING when I wrote that, but it is
obviously not correct. The DDS has a phase accumulator. In the
example, the phase accumulator increments by 108 degrees per 400MHz
clock, but it may be initialized to anything you want, down to the
same very fine increment independent of frequency. Sorry about that
brain fart.

Cheers,
Tom

10. ### Scott SeidmanGuest

You could take the clock to a Gig on some of the newer chips.

just brainstorming). Take one channel of a summer, and put a sine in, in
the second channel, modulate the cosine with your phase signal. You pass
the input sine and the output results through comparators, and wallah!.
This would be OK for 0- near 90degrees (the range is the bit not worked
out yet).

So now, you're on the hook to generate quadrature, and can vary the phase
from there.

11. ### Spehro PefhanyGuest

Phase offset is (POW/2^14) * 360° ~=> 0.022° resolution.
Best regards,
Spehro Pefhany

12. ### Guest

Maybe the following would work, use 2 the same oscillators,
but one controlled in phase by some means,
then from both generate a pulse each zero crossing.
From the first oscillator's pulses generate a ramp,
first pulse up (0-180 degrees), then down (180 - 360 degrees).
Use the second oscillator's pulse output as sample pulse in this ramp,
it will be at half ramp voltage at 90 degrees shift in lock.
It will always tend to 90 degrees, but if you add some DC offset in
the ramp,
then you should be able to shift phase.
Not sure this reasoning is correct, I have done something similar at a
few MHz,
never at 120 MHz though.

13. ### Tom BruhnsGuest

Yes, that sort of thing is another one I have thought about.
Actually, you can use trig identities to do even better: sin(wt
+phase) = sin(wt)*cos(phase)+cos(wt)*sin(phase). So if you generate
the sine and cosine of the phase control signal and use those as
inputs to multipliers fed with quadrature RF signals and sum the
outputs of the multipliers, you get a phase-adjustable signal. That
works over 360 degrees of phase, and in fact if you make two branches,
one controlled to +phase and one to -phase, the difference can be
swept through 720 degrees. Analog Devices has a nice little analog
multiplier that works up to GHz frequencies, and for that matter, it
can be done with just a double-balanced mixer, too, though you have to
watch out for what is happening with the harmonics that will be
present in such a mixer...

Well, as I said in the base note, I have some ideas about how it can
be done, I just keep hoping it can somehow be super simple. I really
do appreciate your ideas--they have gotten me re-thinking some things.

Cheers,
Tom

14. ### AnimalMagicGuest

We use 10GHz capable devices at work. They are "Phase Shifter /
Attenuators" which allow control over those two elements of a signal.

They ain't cheap though. Made by General Microwave, a Herley company.

15. ### JosephKKGuest

True, but a DDS with that coarse of step will not have low phase
noise. Or a good waveform, huge THD and amplitude errors. You really
need to keep maximum step size down around 30 degrees for really good
results.

16. ### Scott SeidmanGuest

And you'd need pretty well-matched reconstruction filters for what you're
trying to do.

17. ### MarkGuest

I think the OP needs to tell us what the actual application for this
is......

I don't think you can do what he described except maybe in DSP with a
Hilbert xform

Mark

18. ### Tom BruhnsGuest

Well, as Jim T. pointed out in the first response, it's not really
phase shift, it's relative time-shift of a (digital) square wave,
where I want the time shift to be proportional to the "phase" control
signal and also to the period of the input frequency, so for example,
if you set the phase control to get two square waves in quadrature,
they remain in quadrature to a reasonable degree of accuracy as you
vary the frequency. However, the input will be a stable frequency
during operation, so the circuit doesn't have to respond
instantaneously. A millisecond settling time would be fine. You can
think of the application as having two square waves which control
sampling of an input waveform at two different points in time, or two
different "phases" of a frequency which is synchronous with the
digital square wave. Actually, for what I'm doing, I don't really
need square wave outputs; it's sufficient to just have pulse outputs
with reasonably accurately controlled leading edges, which will act as
clocks for following divide-by-two stages (whose outputs will then, of
course, be square waves).

I may have given an inaccurate description, but one way to do it that
meets my needs (except perhaps for keeping phase noise low) is to
generate a ramp that resets at the rising edge of the square wave
input. AGC is used to keep the amplitude of the ramp constant as the
input frequency is changed. In that way, a pair of comparators that
sample the ramp can generate the outputs; the setpoints of the
comparators are set by the "phase-control" input. It's a little bit
of fun to make a clean, fairly high amplitude ramp at 120MHz input
rate, but not too bad with 5GHz ft transistors. Comparators like the
easily and provide low jitter.

A Hilbert transform (or a pair of all-pass filters with phase offsets)
doesn't really do what I want; if you phase shift each frequency
component of a square wave by the same angle, you don't end up with a
square wave. (I think that was all covered earlier in the thread...)

An alternate way to accomplish the goal that isn't too bad is to turn
the input square wave into quadrature sine waves of nominally equal
amplitude, and sum the right amount of each to get the desired phase
shift; then turn the output sine back into square with a low-jitter
comparator.

The reconstruction filters on DAC outputs will take care of harmonics;
it doesn't matter if they aren't perfectly matched since I don't care
that the phase shift remain absolutely constant over frequency. If I
were going to the trouble to use DDS, I'd have at least a
microcontroller running them, and into which could be programmed
calibration to remove phase errors versus frequency in any event.
Heck, if I cared about it, it would be pretty simple to provide an
autocal path (phase comparator fed by the two outputs, back to the
micro) that could cal the phase on command. I think it's safe to
trust that re-programming just the phase of a DDS won't change the
phase-response of the reconstruction filter. ;-) I may be wrong, but
I don't think the phase noise, per se, of a DDS is degraded
significantly as you ask it to output in large phase steps. Amplitude
errors, which can again be corrected (sin(x)/x correction), don't
matter since the output is going to be turned back into square wave
anwyay. I think DDS would be a fine way to go, but it's just way more
complicated (from a system point of view) than I want for this
particular hack. It very well may see its way into a future version
of what I'm working on, though.

Cheers,
Tom

19. ### Scott SeidmanGuest

Try this approach-- a high-bit counter circuit to measure period. Pop
the period output of the counter into a simple DAC, and scale it however
you need to. Use this as one input to an analog multiplier, and the other
input would be your phase. Turn that voltage into a delay somehow-- a
simple 555 timer charging via some constant current, for example (I haven't
checked speed specs on a 555). The constant current charging means a ramp
to the control voltage.

No ucontroller, no DDS, one counter, a DAC, a multiplier, and a 555 with a
transistor.

20. ### Scott SeidmanGuest

LMC555 can generate 3 MHz.