Analogue Reciprocals.

Anything not specifically related to NBTV, but at least of some technical nature that might be of interest to NBTV members. Items for sale and links to retailers do not belong here.

Moderators: Steve Anderson, Dave Moll

Analogue Reciprocals.

Postby Steve Anderson » Thu May 09, 2013 3:50 pm

OK, here I'm stumped. Reciprocals. Analogue. What'm trying to do is measure a frequency and produce a voltage that is a linear representation of said frequency.

Now something like a frequency counter will measure how many cycles in one second (say) and display the result. Fine. But I wish to measure the frequency within a single cycle of input waveform. To do this you gate a much higher frequency with the input.

So a 1MHz clock gated at 1kHz will produce a count of 1000. At 2kHz a count of 500 and so on...this is the equivalent of 1/f, to get the true figure you need a division, a reciprocal. Now one could use a micro to do this either by calculation or a look-up table. But that I do not want to do.

Many years ago (about 20) I did produce an analogue circuit that did this. But I'll be jiggered if I can remember how.

Any suggestions?


Banging head against wall, Bangkok.

I should add that there are analogue division/multiplication circuits around, National Semiconductor produced a number of application notes for these. But they were moderately complex and often required awkward thermistors for temperature compensation.

Whatever I devised decades ago was either a stroke of genius or fundamentally flawed. Probably the latter...
User avatar
Steve Anderson
"Fester! Don't do that to 'Thing'"
Posts: 3965
Joined: Fri Mar 30, 2007 10:54 pm
Location: Bangkok, Thailand

Postby AncientBrit » Thu May 09, 2013 6:48 pm

Hi Steve,

Not sure if this is correct but here goes.
Maybe egg on face!

Trigger a fixed period mono from input signal and measure the mean level of output.

Say we set mono to 0.5uS and it has peak amp of 1volt

Trigger at 1MHz, mean level is 0.5 / (0.5 + 0.5) = 0.5 volt
Trigger at 500kHz, mean level is 0.5 / (0.5 + 1.5) = 0.25 volt
Trigger at 200kHz, mean level is 0.5 / (0.5 + 4.5) = 0.1 volt
Trigger at 100kHz, mean level is 0.5 / (0.5 + 9.5) =0.05 volt

ie output is proportional frequency.

Principle was used in rev counters for cars.
Built one myself
Don't go beyond a 50% duty cycle, monos need a recovery time.

Having re-read Steve's requirement I realise that the above proposal will only work with a continuous waveform, not a single pulse.
Oh well, I'll leave it here anyway.


Last edited by AncientBrit on Thu May 09, 2013 9:30 pm, edited 1 time in total.
Green padded cells are quite homely.
Posts: 858
Joined: Mon Mar 26, 2007 10:15 pm
Location: Billericay, UK

Postby gary » Thu May 09, 2013 7:19 pm

Steve do you actually mean analogue reciprocal?* As in you have a counter but you have converted the result into, say, a voltage, and now you want the reciprocal of that voltage?

I am not familiar with "an easy" way of doing that so you may well have invented something unique. The method often used in analogue computing is to make use of an op-amp configured to take the logarithm and another to take the anti-log.

log (x/y) = log(x) - log (y)

as log(1) = 0

log(1/y) = -log(y)

taking the anti-log of -log(y) gives 1/y - or in your case 1/f

log and anti-log units can be created with just a diode and an op amp.

Not sure how accurate they are though... but maybe that's what you actually created - an accurate version of that.

By the way watch that banging - it's one thing to hurt your head but.... ;-)

Edit: *Of course if the division could be done with digital circuitry that is another matter, with a different approach.
Perfecting an NBTV system is like trying to slam a revolving door...
User avatar
"Fester! Don't do that to 'Thing'"
Posts: 2303
Joined: Sat Jan 27, 2007 11:29 am
Location: Bundanoon, Australia

Postby AncientBrit » Thu May 09, 2013 10:01 pm

Try 2.

Assume a timebase of 1uS

The Acquire phase
Reset counter 1 fed from gate 1
Input pulse of 100uS (equivalent to 10kHz), will gate out 100 pulses
Input pulse of 50uS (equivalent to 20kHz), will gate out 50 pulses
Input pulse of 25uS (equivalent to 40kHz), will gate out 25 pulses

The Measure phase
Feed stored counter 1 via a DAC to a constant current generator

Discharge a cap
Open gate 2 fed with 1uS pulses and feed to counter 2
Charge cap from the constant current gen
When trigger threshold reached close gate 2
Counter 2 will now hold a value that is proportional to inverse of constant current
Large current, short time, small count

Question, is this the required reciprocal or am I fooling myself?


Green padded cells are quite homely.
Posts: 858
Joined: Mon Mar 26, 2007 10:15 pm
Location: Billericay, UK

Postby Steve Anderson » Fri May 10, 2013 2:08 pm

Gary, Graham, thanks for the rapid response. You're both on the right track and showing there's more than one way to do this.

I should have clarified things better, it is a continuous input signal of low-ish frequency, say the audio range so logic speed and even software execution is of no issue. It's basically FM but the modulation frequency can be very close to half the carrier frequency, this might have worried Mr. Nyquist. But it does work with available hardware so no rules are being broken, i.e. the resulting sidebands are preserved.

The National Semiconductor app. notes do use logs to do this, the Vbe/Ic relationship of a bipolar transistor, hence the mention of temperature compensation.

The monostable idea is the same as what the RSGB used to call a pulse-counting demodulator. But in this application filtering the output becomes a heavy burden.

Graham, your '2nd try' is very similar to how a Delta-Sigma circuit works, often used in digital multimeters.

I think my 'inspiration' of two decades ago must have been erroneous, it was too simple...but Excel agreed with my maths...and that's as far as it went. Files from that time...lost.

Don't spend any more time or neuron activity on this, it's something that's been bugging me for a while. So I guess I'll take the easy cop-out and use a micro.

Actually it doesn't need to be a micro, a counter as before, the count represents an address within an EEPROM where the correct voltage value is stored, D-A and you're done. Basically a look-up table.

Steve A.
User avatar
Steve Anderson
"Fester! Don't do that to 'Thing'"
Posts: 3965
Joined: Fri Mar 30, 2007 10:54 pm
Location: Bangkok, Thailand

Postby Klaas Robers » Wed May 29, 2013 2:51 am

Steve, this triggered me to think back to the time that I did on SSTV. This is too an FM signal with a rather low carrier frequency compared to the modulating frequency bandwidth.

I used the counting demodulator, but on both carrier transients. So the up going and down going transients generated a "spike', which started a monoflop. The output signal had the double frequency of the incoming carrier.

Then the mean value was got by a low pass filter. This could be a somewhat better low pass filter, e.g. a butterworth of 5th or 7th order. However the sidebands of the FM signal should not come close to DC.

We did comparable things in the VLP optical video disc and in VCR. Also an FM carrier with rather wide band modulation. There in the demodulator frequency doubling was always applied. Nyquist prescribes that.
User avatar
Klaas Robers
"Gomez!", "Oh Morticia."
Posts: 1502
Joined: Wed Jan 24, 2007 8:42 pm
Location: Valkenswaard, the Netherlands

Return to Off Topic

Who is online

Users browsing this forum: No registered users and 2 guests