From: miso on
On May 10, 12:26 pm, Jan Panteltje <pNaonStpealm...(a)yahoo.com> wrote:
> On a sunny day (Mon, 10 May 2010 09:19:56 -0700) it happened Joerg
> <inva...(a)invalid.invalid> wrote in <84qq1hFob...(a)mid.individual.net>:
>
>
>
> >Bill Murphy wrote:
> >> I am using a commercial stereo amp to output continuous wave test
> >> signals in the low audio range, up to about 2KHz. However, I need a
> >> third channel with a 120 degree phase shift. Is there a circuit that
> >> will do this evenly across this entire frequency range?
>
> >> Is it possible to do same using an off-the-shelf transformer and
> >> current subtraction?
>
> >> Any advice would be appreciated.
>
> >Paul's suggestion with multi-channel sound cards is a good one. But keep
> >in mind that phase shifts in the very low range (tens of Hertzes) can be
> >iffy on some cards, output cap tolerances and all that. Unless you want
> >to go in there with a solder iron.
>
> It is too much, all you need is 3 EPROMS, a 4040 counter, and a 4046 PLL as VCO,
> add a pot to set the frequency.
> Add 3 R2R networks, or  3 cheap DACS.
> I have made one variable sine wave generator like that in the long ago past.
> Milliwats, and in a small box.
> Mine had auto sweep too, so I could test filters.
> Just an integrator and a FF, and 2 comparators added.
> 256 point 8 bits sinewaves.
> After al this is s.e.d. not 'alt.pc.sales' or whatever.
>
> >A Hilbert shifter works well, depends on the precision and how many
> >octaves you want. Also, you'd need to get hold of 0.5% or better film
> >capacitors which is not easy anymore these days. That was different in
> >the 80's.
>
> >--
> >Regards, Joerg
>
> >http://www.analogconsultants.com/
>
> >"gmail" domain blocked because of excessive spam.
> >Use another domain or send PM.

If you are going to a digital approach, programming a cordic would be
my advice. In the pre-internet days, the cordic was a great secret bit
of code stolen from the early scientific calculators, and who knows
where they got it. Nowadays it is all over the internet. The cordic
was the heart of many a modem. We did one where the cordic was used in
DTMF dialer. Needless to say it set a new standard in DTMF due to the
quality of generating twin tones via DSP. Of course, it was a quality
level that wasn't needed, but once you have a cordic programmed, you
might as well use it. We even used the cordic in the FSK fallback,
both in generating the FSK and in demod. For demod, the incoming
signal was sampled and phrase unwrapped via the cordic, then the ramp
(unwrapped phase versus time) was fitted via least mean squares to get
the slope, which in turn yielded the incoming frequency.

Sitting over in Terman is a really great Phd dissertation on the
cordic, better than any book I every read regarding the algorithm. My
recollection is the author's name is Ahmed. Searching Stanford's
Socrates doesn't seem to dig it up though.

From: MooseFET on
On May 9, 2:33 pm, billmur...(a)protech.com (Bill Murphy) wrote:
> I am using a commercial stereo amp to output continuous wave test
> signals in the low audio range, up to about 2KHz. However, I need a
> third channel with a 120 degree phase shift. Is there a circuit that
> will do this evenly across this entire frequency range?
>
> Is it possible to do same using an off-the-shelf transformer and
> current subtraction?
>
> Any advice would be appreciated.

What are the two other channels making?

If you have two signals at 90 degrees, you can get any other phase
and the same amplitude.

> Bill Murphy

From: whit3rd on
On May 9, 2:33 pm, billmur...(a)protech.com (Bill Murphy) wrote:
> I am using a commercial stereo amp to output continuous wave test
> signals in the low audio range, up to about 2KHz. However, I need a
> third channel with a 120 degree phase shift. Is there a circuit that
> will do this evenly across this entire frequency range?

There is a circuit that will do it, but it isn't electronic. It's a
motor driving two AC generators (permanent magnet stepping
motors are suitable) with angle adjustment for the stators to get
to exactly the 120 degree shift you want.

If you want the audio range, an AIFF file with sine on left
channel and cosine on the right channel is possible (but that
doesn't have a continuous frequency adjust knob). The
120 degree shift is a linear combination of sine and cosine
waves (look at the angle-sum formula). Your iPod or a
sound card can reproduce the (audio-range) waveforms from
the file, of course.

The so-called all-pass Hilbert filter is not generally a practical
project
to cobble together in an afternoon. What one CAN do, is to
make a square wave master clock, use flip-flops to generate
slave clocks locked to the master, and then phase-lock
sinewave generators to the slave clocks.
From: Phil Hobbs on
George Herold wrote:
> On May 9, 6:14 pm, Bill Sloman <bill.slo...(a)ieee.org> wrote:
>> On May 9, 11:33 pm, billmur...(a)protech.com (Bill Murphy) wrote:
>>
>>> I am using a commercial stereo amp to output continuous wave test
>>> signals in the low audio range, up to about 2KHz. However, I need a
>>> third channel with a 120 degree phase shift. Is there a circuit that
>>> will do this evenly across this entire frequency range?
>>> Is it possible to do same using an off-the-shelf transformer and
>>> current subtraction?
>>> Any advice would be appreciated.
>> Check out Horowitz and Hill's "The art of Electronics". Section 5.16
>> talks about phase-sequence filters, which give a constant 90 degree
>> shift over a range of frequencies. They consist of strings of equal
>> value resistors with cross-connected capacitors whose values decrease
>> in constant proportion per stage, halving in the example given, which
>> isn't all that practical to set up. The bottom line is that it isn't
>> trivial, and if you need to ask, you probably don't know enough to put
>> together a circuit that will work.
>>
>> --
>> Bill Sloman, Nijmegen
>
> Yeah, I've used this circuit. It gives you nice quadrature output
> sine/cosine waves that can be used to make any particular phase
> shift. But phase shift relative to the input signal changes with
> frequency... The phase tends to keep wrapping around. Mixing the two
> signals with a potentiometer also causes amplitude variations if that
> would be a problem.
> That said I used a 10 section filter that has less than 1 degree of
> pahse ripple from 3 Hz to 3kHz. Caps are standard 1, 2.2, 4.7, 10...
> values. The ratio between sections is not as important as keeping the
> same value in each section. You can also change the order of the
> sections with no change at the output.
>
> If the OP wants only a few known frequincies then he could make a few
> dedicated RC sections... or some dedicated All-pass opamp filters.
> and switch each in when testing at that frequency.
>
> George H.

Another approach is to heterodyne. Mix up to some lowish IF, filter,
mix back down. Apply phase shift at the IF to make the overall phase
delay approximately 90 degrees. This works pretty well if the input
frequency range (in octaves) isn't too wide, but it takes some care.

Cheers

Phil Hobbs

--
Dr Philip C D Hobbs
Principal
ElectroOptical Innovations
55 Orchard Rd
Briarcliff Manor NY 10510
845-480-2058
hobbs at electrooptical dot net
http://electrooptical.net
From: Paul Keinanen on
On Mon, 10 May 2010 21:17:03 GMT, billmurphy(a)protech.com (Bill Murphy)
wrote:

>On Mon, 10 May 2010 06:59:03 +0300, Paul Keinanen <keinanen(a)sci.fi>
>wrote:
>
>>Since the OP only needed frequencies up to 2 kHz and was using COTS
>>amplifiers, a cheap dedicated computer running a multiple (4-6)
>>channel sound card running at 8-48 kHz sampling frequency would do the
>>trick.
>>
>
>What about a single card with 4.1 or 5.1 outputs?

Perfectly OK, if the channels are truly discrete (no psychoacoustic
matrix surround generation) and transparent (no band limiting in the
..1 channel etc.).

>Either way, how would I generate the three 120 degree offset channels
>in software?

You can precalculate a few (thousand) future samples into memory
buffers (queue) and then let the sound card output the buffer at the
speed specified by the sample clock. The buffers need to be updated,
before the sound card has consumed all previous samples.

The actual sample generation is done in the same way as in DDS with a
numerically controlled oscillator (NCO).

You need a 32 bit integer variable "phase accumulator" which is
updated with a specific value at each iteration of a program loop,
which defines the frequency. Take the high bits from the phase
accumulator and use it to index a sine table. The value from the sine
table is inserted into the queue going into the sound card (or written
e.g. to a .WAV file).

To generate signals with a fixed phase relative to the master signal,
take the current phase accumulator value, add a constant (the phase
shift) and using the upper bits, access sine look up table and insert
result into the queue for a different audio channel.

If the sample values are written into a .WAV file, the data can be
replayed using any audio player.

The sine instruction is surprisingly fast on some x86 processors, so
it could replace the sine look-up table. However, the phase
accumulator must be an integer register, which overflows in a
predictable way. A floating point register can not be used as a phase
accumulator, since after long time, the least significant bits are
lost and the sine function returns a constant value.

First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Prev: Flow Sensors revistied
Next: Just plain fucked...