Convert Audio Signal to Four Phase

I would like to build a circuit whereby a line level, mono audio signal is fed in and the output is four signals of equal amplitude having a fixed 90 degree phase difference between them, eg. 0, 90, 180 and 270 degrees.

What would be the best design approach for this purpose; "best" being a balance of effectiveness and simplicity. Perhaps something with a quad op amp. Or is there a dedicated IC that will do this?

A 12VDC supply would be preferred, and the load per channel would be

8/16 Ohms.

Thank you for any expert guidance along these lines.

Ken Sutton

Reply to
Ken Sutton
Loading thread data ...

0 and 180 are easy. Multi-frequency, like full audio band, 90/270 requires a fairly complex all-pass filter, or equivalent digital processing.

Why do you want to do this?

--

John Larkin                  Highland Technology Inc
www.highlandtechnology.com   jlarkin at highlandtechnology dot com   

Precision electronic instrumentation
Picosecond-resolution Digital Delay and Pulse generators
Custom timing and laser controllers
Photonics and fiberoptic TTL data links
VME  analog, thermocouple, LVDT, synchro, tachometer
Multichannel arbitrary waveform generators
Reply to
John Larkin

What is the nature of the audio signal? Is it a sine wave, or a complex waveform? If it's a complex waveform, what frequency components do you want shifted? If you want all components shifted and the signal is repetitive (i.e. the spectrum does not vary in time), then all you need is a time delay. If the spectrum does vary in time (speech, music) then the notion of a fixed phase difference between the signals is not so clearly defined.

Reply to
bitrex

If you're trying to realize it in analog it's probably easier to do a pair of all-pass filters whose outputs are 90 degrees apart, rather than trying to make one filter with a 90 degree phase shift across a wide band.

If you have delusions of keeping the audio quality high then that won't work: you'd need to do something hifalutin' -- I'd suggest doing it digitally, with a FIR phase shifter and a matching delay in the "un- shifted" channel. (Which, in a way, is the same "pair-o-filters" idea, but one of them is a fairly trivial delay of half the length of your pseudo "Hilbert transform" phase shift filter).

In digital, the phase shift filter needs to be longer than a cycle of your lowest frequency of interest, and the sampling rate needs to be well over Nyquist. The filter isn't trivial, which means you'll need lots of memory and a fast processor if you want to do the math on-line.

--
My liberal friends think I'm a conservative kook.
My conservative friends think I'm a liberal kook.
Why am I not happy that they have found common ground?

Tim Wescott, Communications, Control, Circuits & Software
http://www.wescottdesign.com
Reply to
Tim Wescott

Are you trying to recover some old quadrophenic e.g. SQ

formatting link
which required accurate 90 degree phase shifts ?

Direct conversion (SSB) I/Q radio receivers may also need accurate 90 degree audio phase shifts, search for KK7B.

These days 90 degree phase shift is typically done digitally using the Hilbert transform.

Reply to
upsidedown

That's usually the way it's done. But he wants the 90/270 to remain aligned with the 0/180, I think. That's harder.

An ideal 90 degree shifter, like an ideal lowpass, is non-causal so impossible to make. As you approximate it, you must add time delay. So the 0 and 180 paths need delay, too, I assume.

I wonder why he wants this.

Reply to
John Larkin

These are to be test signals. The actual structure is normally an audio sinewave with LF sinusoidal AM. Hence, they are repetitive.

However, we also do some work with mixed singular sinewave frequencies, in which case the waveform is "less" repetitive, but not varying like music or voice.

Of course 180 degrees is easy. It's the 90 and 270 that require a dedicated approach.

In terms of circuitry, what is the nature of the "time delay" you have mentioned? Doesnt' this imply the values would need to be separately adjusted in each instance?

There are manually adjustable phase shifters using a single transistor, or op amp. However, I am looking for an _ automatic_ shift, preferably in analog, if such a thing is at all possible.

Ken Sutton

Reply to
Ken Sutton

Your best bet would be to generate the test signal as a quadrature pair

0, 90 and derive the others by unity gain buffering or inverting them.

Once you do that you are stuck with cunningly designed filters that introduce the right phase delay as a function of frequency (approximately).

One reason why it would be better to start with 0 and 90 at the outset.

A time delay is only right for one spot frequency at a time.

It will be slightly wrong for any modulated CW signal depending on the depth and frequency of the modulation. Does it matter? Only you can say.

All pass filter 90 degrees phase shift audio and "Hilbert" ought to get you something close to what you have asked for. You may find it hard to get it to work though based on the questions you have asked so far.

--
Regards,
Martin Brown
Reply to
Martin Brown

en

How accurate does the phase shift need to be (10 degrees? 1 degree?

0.1 degree?) and over how many octaves/decades of bandwidth (e.g. 300 Hz to 3000Hz? 3Hz to 3MHz?)

Multipole all pass networks built using analog parts to produce such phase shifts, are feasible over a very small part of this specification range.

A *VERY* traditional way of analyzing linear circuit response in the phase domain is to run a square wave through it. The square wave is a well defined sum of sine waves with well known phase and amplitude relations. For more complex linear circuits today, it would be very common to characterize them with sweep generators and compare with a SPICE simulation. If your circuits are not fundamentally linear... then using linear tests and modeling tools would cause some head scratching :-). I think at that point your into specsmanship and probably not working in the real world.

Tim.

Reply to
Tim Shoppa

What sort of frequency range? Do you have AofE? You might look at the phase sequence filter (pg 295 2nd ed.) It wraps the phase around several times, so you loose any 'easy' relation between the quadrature outputs and the input phase. But I've made this work over 3 decades with ~1 degree phase error. (eight sections IIRC) The first prototype was a beautiful wire ball of R's and C's. You don't need to stick with the C/2 ratios.. I used 2.2, 1, 0.47,

0.22...etc.

George H.

Reply to
George Herold

A/D converter > microprocessor > 4 DDS & software to generate four outputs at 90° intervals.

--
You can't have a sense of humor, if you have no sense.
Reply to
Michael A. Terrell

Wes Hayward's "Experimental Methods in RF Design" has a beautiful chapter on audio phase shifting, with lots of pre-calculated filters for 300-3000 Hz. Application is of course, SSB.

Steve

Reply to
Owen Roberts

If you know the waveforms in advance, why not just generate them the way you want them? A quadraphonic sound card, or a 4-channel ARB?

I modestly suggest...

formatting link

An integrator is a simple 90 degree phase shifter, but the gain goes as 1/f.

--

John Larkin                  Highland Technology Inc
www.highlandtechnology.com   jlarkin at highlandtechnology dot com   

Precision electronic instrumentation
Picosecond-resolution Digital Delay and Pulse generators
Custom timing and laser controllers
Photonics and fiberoptic TTL data links
VME  analog, thermocouple, LVDT, synchro, tachometer
Multichannel arbitrary waveform generators
Reply to
John Larkin

There's something called, iirc, a phase-sequence filter. It's basically a multi-stage RC arranged like a 4-thread screw, and gives you 4 phases spaced 0, 90, 180, 270, plus or minus.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal Consultant
ElectroOptical Innovations LLC
Optics, Electro-optics, Photonics, Analog Electronics

160 North State Road #203
Briarcliff Manor NY 10510
845-480-2058

hobbs at electrooptical dot net
http://electrooptical.net
Reply to
Phil Hobbs

Thank you Phil. You are a wonderful human being.

Ken

Reply to
Ken Sutton

Yes, I would do it with commercial software and a surround sound card.

Now I know there is no other viable way, given my present requirements.

Ken

Reply to
Ken Sutton

Bucket brigade chip?

formatting link

Or, A coil spring magnetically coupled at both ends :))

Yes, I was once a hippy!...

Jamie

Reply to
Jamie

"Ken Sutton" "Phil Allison" <

** Fuck off - you asinine, trolling pig.
Reply to
Phil Allison

Just begun searching; haven't even read the article, but the hardware is beautiful:

formatting link
Also a lot of other impressive equipment there. I don't know why you'd build your own spectrum analyzer; I guess, because you could.

Here's an[other?] example of the all-pass:

formatting link

Also an all-pass filter designer:

formatting link
Woww, Windows 95 screenshot! Old old...

Tim

--
Deep Friar: a very philosophical monk.
Website: http://webpages.charter.net/dawill/tmoranwms
Reply to
Tim Williams

signal

a

=20

band.

Not all that hard. See below.

well=20

=20

Below:

Version 4 SHEET 1 1056 1048 WIRE 496 -448 368 -448 WIRE 368 -416 368 -448 WIRE 496 -416 496 -448 WIRE 208 -336 176 -336 WIRE 624 -336 560 -336 WIRE 800 -336 704 -336 WIRE 176 -272 -224 -272 WIRE 368 -272 368 -336 WIRE 368 -272 176 -272 WIRE 416 -272 368 -272 WIRE 688 -272 416 -272 WIRE 784 -272 688 -272 WIRE 560 -160 560 -336 WIRE -16 -144 -96 -144 WIRE 96 -144 96 -336 WIRE 96 -144 64 -144 WIRE 688 -128 688 -272 WIRE 176 -112 176 -272 WIRE 560 -112 560 -160 WIRE 656 -112 560 -112 WIRE 96 -96 96 -144 WIRE 144 -96 96 -96 WIRE 800 -96 800 -336 WIRE 800 -96 720 -96 WIRE 896 -96 800 -96 WIRE 976 -96 976 -144 WIRE 288 -80 288 -336 WIRE 288 -80 208 -80 WIRE 352 -80 352 -96 WIRE 352 -80 288 -80 WIRE 480 -80 480 -160 WIRE 480 -80 352 -80 WIRE 608 -80 560 -80 WIRE 656 -80 608 -80 WIRE 128 -64 64 -64 WIRE 144 -64 128 -64 WIRE 480 -64 480 -80 WIRE 560 -64 560 -80 WIRE -96 -32 -96 -144 WIRE -16 -32 -96 -32 WIRE 64 -32 64 -64 WIRE 976 -32 976 -96 WIRE 128 -16 128 -64 WIRE 176 -16 176 -48 WIRE 368 -16 176 -16 WIRE 480 16 480 -64 WIRE 496 16 480 16 WIRE 560 16 560 -64 WIRE 688 16 688 -64 WIRE 864 16 688 16 WIRE 608 48 608 -80 WIRE 608 48 560 48 WIRE -96 64 -96 -32 WIRE -16 64 -96 64 WIRE 64 64 64 -32 WIRE 64 64 48 64 WIRE 128 80 128 48 WIRE 976 96 976 48 WIRE 416 112 416 -272 WIRE 416 112 224 112 WIRE 560 144 560 112 WIRE 128 160 80 160 WIRE -352 176 -448 176 WIRE -96 176 -96 64 WIRE -96 176 -272 176 WIRE 80 256 80 240 WIRE 560 256 560 224 WIRE 832 256 768 256 WIRE -224 272 -224 -272 WIRE -224 272 -304 272 WIRE -304 288 -304 272 WIRE 256 288 176 288 WIRE -448 304 -448 176 WIRE -336 304 -448 304 WIRE 416 304 416 272 WIRE 416 304 400 304 WIRE -96 320 -96 176 WIRE -96 320 -272 320 WIRE 400 320 400 304 WIRE 512 320 400 320 WIRE 688 320 688 256 WIRE 688 320 592 320 WIRE 784 320 784 -272 WIRE 784 320 752 320 WIRE -336 336 -368 336 WIRE -96 336 -96 320 WIRE -32 336 -96 336 WIRE 96 336 96 288 WIRE 96 336 48 336 WIRE -448 352 -448 304 WIRE 224 352 224 112 WIRE 752 352 752 320 WIRE 96 368 96 336 WIRE 192 368 96 368 WIRE 688 368 688 320 WIRE 720 368 688 368 WIRE 336 384 336 288 WIRE 336 384 256 384 WIRE 400 384 400 320 WIRE 400 384 336 384 WIRE 832 384 832 256 WIRE 832 384 784 384 WIRE 896 384 832 384 WIRE 976 384 976 304 WIRE 192 400 176 400 WIRE 720 400 704 400 WIRE -304 416 -304 352 WIRE -176 416 -304 416 WIRE -96 416 -96 336 WIRE 0 416 -96 416 WIRE 400 416 400 384 WIRE 512 416 480 416 WIRE 624 416 592 416 WIRE 688 416 624 416 WIRE 704 416 704 400 WIRE 704 416 688 416 WIRE -448 464 -448 432 WIRE 688 464 688 416 WIRE 80 480 80 416 WIRE 144 480 80 480 WIRE 176 480 176 400 WIRE 176 480 144 480 WIRE 752 480 752 416 WIRE 864 480 864 16 WIRE 864 480 752 480 WIRE 976 480 976 384 WIRE 224 496 224 416 WIRE 288 496 224 496 WIRE -96 512 -96 416 WIRE 16 512 -96 512 WIRE 80 512 80 480 WIRE 144 512 144 480 WIRE 400 544 400 416 WIRE 624 544 624 416 WIRE 624 544 464 544 WIRE 688 560 688 528 WIRE -448 592 -448 544 WIRE -368 592 -368 336 WIRE -368 592 -448 592 WIRE 976 592 976 560 WIRE -448 624 -448 592 WIRE 32 640 16 640 WIRE 144 640 144 576 WIRE 144 640 112 640 WIRE 16 672 16 640 WIRE 688 672 688 640 WIRE 16 800 16 752 WIRE 688 800 688 752 WIRE -176 848 -176 416 WIRE 288 848 288 496 WIRE 288 848 -176 848 WIRE 368 848 368 -16 WIRE 368 848 288 848 WIRE 864 848 864 480 WIRE 864 848 368 848 WIRE 896 848 864 848 WIRE 896 880 896 848 WIRE 896 1008 896 960 =46LAG -448 624 0 =46LAG 80 256 0 =46LAG 16 800 0 =46LAG 560 256 0 =46LAG 688 800 0 =46LAG 976 96 0 =46LAG 976 592 0 =46LAG 896 1008 0 =46LAG 496 -416 0 =46LAG 976 -144 +45deg =46LAG 976 304 -45deg =46LAG 352 -96 +deg1 =46LAG 416 272 -deg1 SYMBOL Opamps\\LT1028 -304 256 R0 SYMATTR InstName U1 SYMBOL Opamps\\LT1028 176 -144 R0 SYMATTR InstName U2 SYMBOL Opamps\\LT1028 688 -160 R0 SYMATTR InstName U3 SYMBOL Opamps\\LT1028 224 320 R0 SYMATTR InstName U4 SYMBOL Opamps\\LT1028 752 320 R0 SYMATTR InstName U5 SYMBOL voltage -448 448 R0 WINDOW 123 24 132 Left 0 WINDOW 39 24 160 Left 0 SYMATTR Value2 AC 1 0 SYMATTR SpiceLine Rser=3D100 Cpar=3D20p SYMATTR InstName V1 SYMATTR Value SINE(0 1 20) SYMBOL res -256 160 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R1 SYMATTR Value 10k SYMBOL res 192 -352 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R2 SYMATTR Value 100k SYMBOL res 304 -352 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R3 SYMATTR Value 5.6k SYMBOL res 80 -160 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R4 SYMATTR Value 22k SYMBOL res 80 -48 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R5 SYMATTR Value 56k SYMBOL res 64 320 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R6 SYMATTR Value 22k SYMBOL res 96 400 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R7 SYMATTR Value 39k SYMBOL res 192 272 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R8 SYMATTR Value 100k SYMBOL res 352 272 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R9 SYMATTR Value 5.6k SYMBOL res 576 -176 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R10 SYMATTR Value 12k SYMBOL res 576 -80 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R11 SYMATTR Value 47k SYMBOL res 608 304 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R12 SYMATTR Value 12k SYMBOL res 608 400 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R13 SYMATTR Value 3.9k SYMBOL res 720 -352 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R14 SYMATTR Value 47k SYMBOL res 784 240 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R15 SYMATTR Value 47k SYMBOL res 112 64 R0 SYMATTR InstName R16 SYMATTR Value 47k SYMBOL res 64 144 R0 SYMATTR InstName R17 SYMATTR Value 4.7k SYMBOL res 0 656 R0 SYMATTR InstName R18 SYMATTR Value 2.0k SYMBOL res 128 624 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R19 SYMATTR Value 33k SYMBOL res 672 656 R0 SYMATTR InstName R20 SYMATTR Value 1.5k SYMBOL res 672 544 R0 SYMATTR InstName R21 SYMATTR Value 22k SYMBOL res 544 128 R0 SYMATTR InstName R22 SYMATTR Value 22k SYMBOL cap 112 -16 R0 SYMATTR InstName C1 SYMATTR Value 1n SYMBOL cap 544 48 R0 SYMATTR InstName C2 SYMATTR Value 100n SYMBOL cap 128 512 R0 SYMATTR InstName C3 SYMATTR Value 27n SYMBOL cap 672 464 R0 SYMATTR InstName C4 SYMATTR Value 470p SYMBOL cap 560 0 R90 WINDOW 0 0 32 VBottom 0 WINDOW 3 32 32 VTop 0 SYMATTR InstName C5 SYMATTR Value 100n SYMBOL cap 48 48 R90 WINDOW 0 0 32 VBottom 0 WINDOW 3 32 32 VTop 0 SYMATTR InstName C6 SYMATTR Value 1n SYMBOL cap 80 496 R90 WINDOW 0 0 32 VBottom 0 WINDOW 3 32 32 VTop 0 SYMATTR InstName C7 SYMATTR Value 27n SYMBOL res 496 400 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R23 SYMATTR Value 47k SYMBOL cap 464 528 R90 WINDOW 0 0 32 VBottom 0 WINDOW 3 32 32 VTop 0 SYMATTR InstName C8 SYMATTR Value 470p SYMBOL res 992 -112 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R24 SYMATTR Value 2k SYMBOL res 992 368 R90 WINDOW 0 0 56 VBottom 0 WINDOW 3 32 56 VTop 0 SYMATTR InstName R25 SYMATTR Value 2k SYMBOL res 960 -48 R0 SYMATTR InstName R26 SYMATTR Value 100k SYMBOL res 960 464 R0 SYMATTR InstName R27 SYMATTR Value 100k SYMBOL voltage 368 -320 R180 WINDOW 0 24 104 Left 0 WINDOW 3 24 16 Left 0 WINDOW 123 0 0 Left 0 WINDOW 39 24 76 Left 0 SYMATTR InstName V3 SYMATTR Value 15 SYMATTR SpiceLine Rser=3D0.1 SYMBOL voltage 896 976 R180 WINDOW 0 24 104 Left 0 WINDOW 3 24 16 Left 0 WINDOW 123 0 0 Left 0 WINDOW 39 24 -12 Left 0 SYMATTR InstName V2 SYMATTR Value 15 SYMATTR SpiceLine Rser=3D0.1 SYMBOL res -464 336 R0 SYMATTR InstName R28 SYMATTR Value 10k TEXT -480 1032 Left 0 !.ac oct 4 20 20000 TEXT -480 928 Left 0 ;* Tuning parts (nominal) R3 (5.6k), R9 (5.6k), = R13 (3.9k), R17 (3.3k), R18 (2.0k), R20 (1.8K) TEXT 272 -360 Left 0 ;* TEXT 152 184 Left 0 ;* TEXT 320 264 Left 0 ;* TEXT 88 696 Left 0 ;* TEXT 584 384 Left 0 ;* TEXT 760 696 Left 0 ;*

Reply to
josephkk

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.