Prev: Flow Sensors revistied
Next: Just plain fucked...
From: miso on 10 May 2010 18:10 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 10 May 2010 21:24 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 11 May 2010 00:53 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 11 May 2010 01:48 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 11 May 2010 03:09
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. |