MUFF WIGGLER Forum Index
 FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 
WIGGLING 'LITE' IN GUEST MODE

reducing distortion in OTAs (LM13700, etc)
MUFF WIGGLER Forum Index -> Music Tech DIY  
Author reducing distortion in OTAs (LM13700, etc)
guest
i just finished a writeup of some work i have been posting here in various places over the past 6 months. here is the link to the paper:

http://www.openmusiclabs.com/files/otadist.pdf

it goes into the fundamental causes of distortion and temperature drift in OTAs, and gives a number of different circuit solutions to the problems. These are all tested and compared, with some comments at the end. my apologies in advance for it being pretty math heavy and long, but if youre interested in the topic, dont let that scare you off. you can look at the schematics and use the circuits without having to read any of it.

and, as always, comments are welcome.
PWM
Thanks for sharing! I'll definitely read this on my (short) holiday.
kvitekp
Great reading, thank you for researching, writing and sharing.

/Peter
nvining
Reading this now, but it looks like a very nice analysis so far!
spacedog
Thanks cool
Scott Willingham
Great! Some old school analog circuit analysis and very well done.
mbartkow
Fantastic job, thank you!
JozeyWhales
Wow, this is great! Such an awesome insight into a really great IC.
neil.johnson
Interesting discussion. Have you read through Don Sauer's pages at http://www.idea2ic.com/
I've had occassional discussions with him over the years so it might be worth sending him a copy of your paper for his thoughts.

Neil
The Real MC
Nice research. There's some pretty interesting schemes in patents too.
guest
neil.johnson wrote:
Interesting discussion. Have you read through Don Sauer's pages at http://www.idea2ic.com/
I've had occassional discussions with him over the years so it might be worth sending him a copy of your paper for his thoughts.


that site is great, and i have learned a lot from it. is the contact info on it still relevant?
neil.johnson
guest wrote:
neil.johnson wrote:
Interesting discussion. Have you read through Don Sauer's pages at http://www.idea2ic.com/
I've had occassional discussions with him over the years so it might be worth sending him a copy of your paper for his thoughts.


that site is great, and i have learned a lot from it. is the contact info on it still relevant?

I believe so - it was back in 2013 when I last discussed something with Don.

Neil
neil.johnson
Another paper worth reading for those interested is Achim's analysis of the OTA:

http://synth.stromeko.net/diy/OTA.pdf

Neil
slow_riot
In a recent thread I was bemoaning the lack of linear 2 quadrant multipliers.

I went back to the Mike Sims VCA updated in this paper with an opamp buffer. I was using a triangle as the input waveform which made distortion more complicated, but I couldn't see any change in the fourier series between the input and output waveforms.

The logging circuit needs a lot of compensation (1nF with 100kohm input impedance placing a 6bB/octave filter pole at 10kHZ), this worried me a bit in the context of designs with multiple interaction paths and feedback (oscillators) but I think this is a pretty manageable level. It might be possible to tweak this to get the pole a bit higher.
neil.johnson
Assuming you mean the EDN paper, cached here:
http://www.teaser.fr/~amajorel/sims/
the performance quoted by Sims is a respectable 0.015% THD and -70dBu noise. It may be possible to improve on that with a better op-amp for IC2B, and you want to minimise noise on the control port as well.

For comparison, the THAT 2180B is typically 0.01% distortion (the 'A' version is half that) at 0dB gain, although it is about 25dB better noise performance than the Sims/13600 circuit.

Now that I've got the big audio analyser up and running it might be fun to try this circuit out.

Neil
guest
i think slow_riot was referring to the updated version in my paper (linked at the top of the thread). a second opamp is employed to eliminate the input errors of the first OTA stage, greatly reducing distortion.

slow_riot: as for the 1nF, i dont think i optimized this at all, although i suspect it cant go much lower than the 330pF originally used.
slow_riot
1nF along with 100k input impedance were the only values I had that quelled the endless oscillations. Also fiddled with bypass capacitance on the LM13700 power pins to no avail.

I also suspect I could go a bit lower 50k and 1nF no good,but maybe 80k/1nF or 100k/700pF

Great circuit though, thanks!
neil.johnson
Oh, right. I did skim through your paper quickly but didn't see a references section at the end with any link to the Sims paper.
guest
i like to reference as i go, rather than put them at the end. so the Sims reference is in the dual ota section.
guest
slow_riot wrote:
1nF along with 100k input impedance were the only values I had that quelled the endless oscillations.


is the 100k here the input to the inverting pin on the opamp, or the Iabc setting resistor on the OTA? i used a 24k as my input to the inverting pin of the opamp, and 100k for the OTA.

im now wondering where the limitations are for speed on this. the opamp and OTA both go into the MHz range. i cant seem to find a phase margin plot for the OTA, but it should vary with Iabc (i think). the feedback path has a hidden lowpass filter in it, which could be causing problems. the voltage divider that feeds the 2 OTA inputs has capacitance at those inputs. but, this should be well in the MHz range as well.

which opamp were you using?
slow_riot
I need unity gain so I was using 100k to the opamp and 100k from a 10V ref to IABC. I'm now doing the maths properly as IABC input is not at 0V and ohms law means I need to get out a pencil and paper and think about temperature dependence of diode drops.

I think the current gain of the feedback network that includes the OTA is significant, higher gain increases the propensity towards oscillation.

I cut out the resistor divider which is probably exacerbating the problems:



I think it's the phase compensation cap that needs to work against the active and inductive feedback path that is affecting speed.
slow_riot
I have protoboard phobia right now, but some simulations have revealed that removing the voltage divider had exacerbated the oscillation problems.

I hadn't realised that negative feedback kept the output of the logging stage at unity even with the voltage divider. All hail the mighty op-amp!
guest
i still had the circuit on my breadboard, so i powered it back up and ran some tests. i found that it was primarily slew rate limited, so i put in a faster opamp (originally had an op297:0.15v/us, then went lt1364:1000v/us, then tl072:15v/us). the tl072 was fast enough, and didnt have the horrendous bias current of the lt1364.

i removed the feedback caps, and didnt notice much difference in performance. well, there was more high frequency noise, and the rolloff moved up to 200kHz or so, but that was to be expected.

some things to note: i used a 3.9k/36ohm combo for the attenuation in the feedback loop. this helps keep the gain down. using a 10k at the output stage instead of a 100k helped with the slew rate issues.

ultimately, it did not oscillate without the stabilization caps, but it did have a lot more "instability". there was a lot of noise in the 50kHz to 300kHz range that would come through. a simple filter at the end got rid of it.
guest
i just ended up coming back to this, as i had some new ideas for compensating the dual ota scheme after looking at how the CEM3340 and SSM2164 do their compensation. it seems to work much better:



the issue with the old version, was that it used a second capacitor to feed forward some of the distorted signal, to cancel out the rolloff due to the feedback capacitor. this worked fine for distortion, but added a bunch of noise, that just got worse and worse as you went up in frequency. this method doesnt need any of that business. increasing the 1.8k resistor helps, but limits the full amplitude you can reach. this was done with a TL082, so faster or slower opamps might need different values. i didnt see too much difference in either distortion or noise floor by altering the 1k/100pF combination to 560ohm/1nF, so probably anything in that range is fine. the circuit needed less than 2k to eliminate oscillation, and more than 50pF to get the cutoff frequency below the oscillation.
slow_riot
Nice, I didn't like the feedforward method. I really want to use this circuit as I am sitting on a bunch of LM13700s but the board real estate is huge.
guest
i did a bit more work on this topic recently, and thought id share my findings.

1. the original dual OTA scheme (not the one shown directly above) had a lot of issues with PSRR and noise pickup (basically the same issue). this is because the impedance is not matched at both inputs of the OTA. good layout and shielding will help with this, but there isnt any way to fix the underlying problem. if you increase the impedance at the non-inverting pins such that its much greater than the inverting pin, then pickup is canceled via the second stage, but the noise floor gets really high due to the high input impedance. i havent gone back and retested the above dual OTA scheme for this pickup issue, but i suspect its better, as the input impedance is matched at the OTA inputs.

2. so, if you have a spare OTA, how do you best use it? depending upon the circuit requirements, the above dual scheme could be good. otherwise, you can just use it as a current source for the linearizing diodes:



the linearizing diodes on the first stage are used to bias the OTA into saturation. two different methods are shown for producing a positive current out, one pulls the non-inverting pin above ground, and the other pulls the inverting pin below ground. the advantage of these methods, is that the transistor on the input stage that is "off" has exactly 0V Vbe, so there will be no leakage associated with it. and, this 0V Vbe is temperature compenstated. this is ensurd by having the diode current be equal to the bias current into the amplifier. and speaking of the bias current into the amplifier, i used a 10uF capacitor here to improve PSRR and reduce noise. its important that the capacitor be referenced to the negative supply rail.

3. what is the optimal value of "R" (input impedance) in the above circuit to minimize distortion? well, that depends. as you increase R, odd harmonics decrease, but even harmonics increase. im not entirely sure about the mechanism behind it, but this is my guess: as R increase, the voltage drop across R increases. if this voltage drop is small compared to Vbe, then any offset voltage it creates due to resistance imbalances will also be small. this offset voltage mainly causes even harmonic distortion. but, as R increases, the input more closely resembles a current source, which is the ideal input for minimal distortion (the diodes want a differential current as an input, not a differential voltage), so all distortion goes down with increasing R.

4. i ran some tests with varying R, and measured the distortion at 1/4 full scale output, and 1/2 full scale output. i also measure the increase in bleedthrough for a 1k increase in the 100k input resistor (worst case unknown source impedance). for larger R, a mismatched input impedance has a larger effect. here are the results in dB:

R || bleedthrough || 2nd | 3rd @1/2 || 2nd | 3rd @1/4 ||
-----------------------------------
1.00k || 00 || 70 | 42 || 76 | 54 ||
2.22k || 00 || 74 | 46 || 75 | 58 ||
5.63k || 00 || 71 | 53 || 77 | 66 ||
10.0k || 06 || 68 | 57 || 75 | 70 ||
22.2k || 10 || 66 | 64 || 72 | 75 ||
56.3k || ?? || 70 | 57 || 76 | 65 ||
100k. || 20 || 59 | 75 || 67 | 90 ||

sorry for the poor table, if someone knows how to do fixed width fonts on here, please let me know. also, there was something wonky with the 56k readings. i ran them twice and they still made no sense. im wondering if my resistor values were mismatched in some peculiar way to create a null in the second harmonic. at any rate, all of these tests were done with feedthrough nulled. you can see that the input impedance mismatch starts to become an issue at 10k, where R is no longer much, much smaller than 100k. the minimal distortion point is at 22k, which is where 2nd and 3rd harmonics are almost equal. coincidentally enough, 22k was the value i had used for the data collected in the paper (which was entirely accidental, but im very grateful for). also, 10k is around the point where the voltage drop across the resistors are equal to Vbe (i ran the tests with 100uA diode current, so 50uA per R = 500mV). so below this point, Vbe mismatches dominate, and above this point R mismatches dominate. but, if this hypothesis is correct, than an "R" trim could improve performance beyond what is shown here.

TLDR: use 10k or 22k resistors if building an OTA with a fixed current source for the diodes (for 100uA diode current, R would most likely decrease for larger currents).
J3RK
I usually do a "code" box for fixed width.

Code:

Blah 12345
Blah 67890
plushterry
Thanks for sharing your work guest
thumbs up
guest
J3RK wrote:
I usually do a "code" box for fixed width.


Code:

thanks, this helps a lot.
Dr. Sketch-n-Etch
Here's how I reduce distortion in OTAs:



(By not using them.)
guest
i havent tested the distortion of the ssm2164, does it perform better than the datasheet says (.02% = -74dB)?
neil.johnson
guest wrote:
i havent tested the distortion of the ssm2164, does it perform better than the datasheet says (.02% = -74dB)?

I believe it can, based on some bench tests.

Neil
Haralds:Werk
You can reach the 0,02% THD with the LM13700 as well. It is possible with the method that Mike Sims introduced in the EDN Magazine January 1995.
You have to carefully select the LM13700 though because they are quite different from chip to chip and manufacturer.

Here is my take on the Sims VCA: http://www.haraldswerk.de/NGF/NGF_VCA_Sims/NGF_VCA_Sims.html
guest
i have an improvement for the sims VCA, which is shown earlier in this thread, and in the paper listed at the beginning. those both go well below the .02% level, and the simple method i show above gets almost to that level. the SNR isnt as good for the sims version as for other LM13700 implementations, and both of those are worse than the SSM2164. but, the LM13700 using the linearizing diodes is temperature compensated, which the SSM2164 is not (but can be made to be so). the SSM2164 has a lower bound on the distortion it can achieve due to its voltage to current converter at the input stage, which has an offset voltage that is signal amplitude dependent. this can be eliminated with an external voltage to current converter, but thats horribly complicated. both good chips, each with their own strengths.
Haralds:Werk
guest wrote:
i have an improvement for the sims VCA, which is shown earlier in this thread, and in the paper listed at the beginning. those both go well below the .02% level, and the simple method i show above gets almost to that level.


Thank you for the reminder. I have read your paper some time ago but totally forgot about it. Sorry. I will apply your improvement to my Sims Version asap.
neil.johnson
So far, on a sample of one original ADI SSM2164, I've got down to 0.006% THD+N at 0dBu sine wave. It does vary quite a bit with amplitude, supply voltages and mode current so for best performance you need to keep it in its sweet-spot.

Neil
guest
awesome, thanks for that information. datasheets tend to be a bit conservative.
Dr. Sketch-n-Etch
guest wrote:
the LM13700 using the linearizing diodes is temperature compensated, which the SSM2164 is not (but can be made to be so).


When the 2164 is used in linearized mode, as per Mike Irwin's circuit (and virtually every VCA in Euroland), it is temperature compensated. The linearized 2164 VCA has no temperature coefficient.
555x555
I've been going over this paper while trying to design a VCA. First off, thanks for all of this; this is a lot of serious, quantified hard work. I'm a little confused about something. I see you measure harmonic distortion, hence linearity, but can't harmonic distortion be made vanishingly small simply by limiting the swing of the input signal? Like if you increase both the resistor on the output op-amp and on the input network, this makes the harmonic distortion better, at the expense of increased noise. So then, isn't the issue the relative ways to use the OTA that give you the best distortion, given a particular SNR? I'm particularly thinking about your 47k resistor on the bias diodes in the non-opamp version you tested. In some quick simulations, 47k/250u gives nearly as good a current source as an LM317 fixed current source, so this seems like a pretty good value. But then you're also using higher values for the source resistors. Can't you just keep those same higher values for the source resistors, hence getting the same SNR, but with less distortion bc the input swing gets smaller? Like, if we drive the LM13700 right to the point of clipping, there are some configurations that give up linearity more gradually than others. But if some configurations also give us lower SNR, then we have to drive the LM13700 less hard to get the same SNR, and hence don't we gain in linearity?

Thanks in advance for the clarification.
guest
you are correct that the issue is THD/SNR, not just THD. the output noise is linear with bias current, and doesnt change a whole lot with diode current or input resistors (up to a point, of course. the noise contribution of the diodes and input resistors is typically small compared to the current noise in the output stage). so, the real metric, is what THD you get for a particular percentage of full scale drive. for example, if you have 100uA of bias current, the ouptut can swing +/-100uA at full scale. so if i give an input that drives it at +/-50uA at the output, im at 50% full scale. the graphs of distortion in the paper are almost these graphs, but not quite. some of the input/output relations are not very linear at high drives, so they get worse at the upper levels. but, for most of the range, the graphs can pretty much be taken as THD/SNR graphs as well.

if you go to small input swings, you get worse SNR (i have some of this quantiifed in my 2164 posts from a few months back). but, you also get worse offset voltage variation. this hurts in a couple of ways. first off, your second harmonic distortion is a function of offset voltage, so that can easily drift into problematic areas, and the feedthrough is offset voltage dependent as well. so if your input signal is 5mV, and offset might drift 1mV, that is a much higher percentage of total range than if you were inputting a 50mV signal.

ive gone through and optimized the design for the case where a current source (of any sort) is used for the diode bias. there is a tradeoff between source resistance and diode current. i think i settled on 100uA diode current, with 10k source resistors. 22k gave better results, but also started to give larger variation in bleedtrhough if an extra 1k was tacked on to the source (as might be the case as some manufacturers put 1k protection resistors at their outputs). so it sort of depends upon your application.
555x555
OK, thank you, that is clarifying. So, theoretically anyway, the tradeoff between SNR and THD is external to the parts of the circuit you're considering. Basically, there is a source resistor/diode current combination that will give the lowest THD at a specific % of the output swing; the relationship between the voltage swing from the previous stage and the resistor on the I-to-V opamp is what's going to determine the SNR to THD ratio.

Of course, if you assume the voltage swing of the previous stage *isn't* adjustable, and we're not adding extra opamps to set levels, then using higher valued source resistors *are* the way to lower the output swing and hence give you better THD at the expense of lower SNR. So there's an extra design consideration, although probably the best thing to do if you're very concerned about THD is to just use an op amp to set the level, or better, to use one of the other configurations you laid out. Anyway, I think I understand how to think about your results now.

Quote:
ive gone through and optimized the design for the case where a current source (of any sort) is used for the diode bias. there is a tradeoff between source resistance and diode current. i think i settled on 100uA diode current, with 10k source resistors. 22k gave better results, but also started to give larger variation in bleedtrhough if an extra 1k was tacked on to the source (as might be the case as some manufacturers put 1k protection resistors at their outputs). so it sort of depends upon your application.


Is this new work you're referring to? I think you said 250uA of diode current in the paper.
guest
yeah, i started using 100uA and it was slightly better. the variation in distortion is pretty small for currents ranging from 50uA to 250uA, so it doesnt matter too much (although the source resistors will have to change to match the diode current).

one thing that does help, is a large input signal voltage swing (before it gets knocked down by the input resistors). the reason for this, is that the ideal OTA is driven with a current source (with the diodes its basically half of a gilbert cell). so, larger input voltage swings mean larger resistors are required to get it knocked down to the same level, and it therefore looks more like a current source (current sources are high impedance, voltage sources low impedance). the resistor in the I/V converter doesnt matter too much, as the signal is already generated by the time it gets to that resistor (both the noise and distortion are in that current), so that resistor just makes everything bigger or smaller, and the ratio stays the same of THD/SNR.
555x555
So I've been simulating a bit--I don't have the equipment to test this properly in a real circuit. Anyway it seems like even with a resistor, Id has pretty low variance. By far the worse issue seems to be nonlinearities in the V-to-I conversion in the input. So I went back to your equations in section 3, and solved for I4-I3, given a constant Id (and constant Vd in the single resistor case), and a given Rs and V3/V4. As you say, there isn't a closed form solution, but you can get a good idea of what's going on for e^x ~ 1 + x + x^2/2. Here's the results:



Observations:

First there's the completely linear element, which is inversely proportional to Rs. Second, there's an element proportional to Vt/IsRs^2-so we know right off the bat that distortion will get worse in direct proportion to temperature increases. That seems bad for people who take a thermal oven approach with the LM13700. Last, while the signal is proportional to 1/Rs, the distortion is proportional to Rs and to 1/Rs^2. Since we have Vs = Va R2/(R1 + R2) and Rs = (R1 + R2)/(R1 R2), maximizing the linear portion means maximizing Vs/Rs, i.e. maximizing Va R1 R2^2/(R1+R2)^2. Minimizing the distortion means, on the one hand, minimizing Rs Vs, i.e. minimizing Va/R1, i.e. maximizing R1, and on the other hand, maximizing Rs^2, i.e. maximizing (R1+R2)^2/(R1 R2)^2. The (R1+R2)^2/R2^2 term is proportional at the same rate to both the distortion and the linear portion. This leaves us with maximizing R1 to maximize the input, minimize the 1/R1 part of the distortion, and minimize the 1/R1^2 portion of the distortion. Of course there are other terms to the e^x expansion that I'm not looking at, but it seems like in terms of linearity there are no tradeoffs to maximizing R1 as much as possible. R2 can then be raised to set the level of the V-to-I conversion, with R1 remaining as the limit, obviously. Raising R2 involves huge tradeoffs with Id, however, if you're actually using the single-resistor scheme.

Anyway, this is consistent with your results, and perhaps might be reduced to "The objective with all of these is to maximize the values of Rd and Rs so that the input signals more closely mimic current sources (current sources are high impedance, whereas voltage sources are low impedance)," but seeing the math makes it clearer to me.
guest
im not sure you can assume a constant Vd, as the amplifier works based on the principal of Vd varying with input current. but, you end up at a very similar place to equation 62 in the paper.

i, too, find equations a useful way of looking at problems. i think of them as unbiased arbiters, who allow me to look past my assumptions (which is not entirely true, as many assumptions are made when assembling the equations in the first place - but i think they are more honest about what those assumptions will lead to). and its been really frustrating with a lot of this analysis ive been doing, that there is no closed form solution. ive resorted to simulation on a number of occasions.

i find it interesting that a differentially driven, resistor diode bias setup, preforms as well as a single sided current source diode drive.

the downside of too large of resistors, is that offset drifts like crazy, and its impossible to trim the 2nd harmonic (for single sided drive). i would reccomend 1k Rs in those cases.

i have a new drive method i intend to test out soon, basically it turns the front end of the OTA into a single sided AD633. im think it might perform a bit better than the 2 opamp setup i had, but not as good as the dual OTA schemes.
guest
heres the, yet to be tested circuit:

555x555
Sorry for the scattershot response; there’s just so many interesting points...

guest wrote:
im not sure you can assume a constant Vd, as the amplifier works based on the principal of Vd varying with input current. but, you end up at a very similar place to equation 62 in the paper.


The equations themselves aren’t really assuming any constants, they’re just focusing on the distortion based on the input voltage to current conversion, assuming some Id/Vd, etc. That is, they won’t tell you much about Id. (And there’s those assumptions sneaking into the math :-).) But if we’re assuming a relatively constant Id through a fixed resistance from the + rail, then Vd must equal Vcc - Id Rd; and so Vd is as constant as Id in the resistor-bias case. Maybe you’re thinking of the voltage below the diodes, rather than above? I might just not get your point...

Quote:

i, too, find equations a useful way of looking at problems. i think of them as unbiased arbiters, who allow me to look past my assumptions (which is not entirely true, as many assumptions are made when assembling the equations in the first place - but i think they are more honest about what those assumptions will lead to). and its been really frustrating with a lot of this analysis ive been doing, that there is no closed form solution. ive resorted to simulation on a number of occasions.


Well that’s why they invented the Taylor series, and Newton’s method, and nonlinear optimization algorithms, etc., a lot of which I assume is inside of Spice. But it’s good to do this stuff by hand sometimes, too, because unlike computers humans can see what the math means. The continued fraction version of e^x is supposed to converge faster; it’d be interesting to see if it gives essentially the same results. Using a term after x^2 for the Taylor series just gets too tedious, so I won’t try that.

And I think of equations as usefully filled with my own bias/purpose ^_^.

Quote:

i find it interesting that a differentially driven, resistor diode bias setup, preforms as well as a single sided current source diode drive.


Me too. This is why I suspect the V-to-I conversion of the input is the worse problem.

Quote:
i have a new drive method i intend to test out soon, basically it turns the front end of the OTA into a single sided AD633. im think it might perform a bit better than the 2 opamp setup i had, but not as good as the dual OTA schemes.


Definitely interesting. Why do you still need the diodes, in this case? (I haven’t looked at the 633 much.)

I had a similar thought, and worked out that as long as the external transistors were matched, a current mirror between the internal transistors and two external transistors would just add a constant scale factor to I4-I3. But I couldn’t figure out a circuit with enough voltage compliance to not cause worse problems.
guest
i was assuming Vd was the voltage on the bottom of the diodes (or across the diodes), thus the confusion.

with the sceme above, the internal diodes are still used to do I to V conversion; the external transistors are just there to move current between them such that the difference is proportional to the input signal, and the sum is kept constant.
guest
just tested out the above circuit. it works really well when differentially driven, just as good as the dual OTA schemes. but, when driven single sided, it has awful 2nd harmonic. worse than single resistor method. i think this is due to the LM3046 i was using, which has really bad transistors in it (beta of 50, and huge beta variation with Ic).
guest
i put cascode current mirrors on the bottom of the above circuit, and it fixed the single ended drive problems (mostly). the issue is the early effect in the transistors, which the cascode fixes by having the collector voltage stay the same. the second harmonic is still higher than i would expect (-65dB @ 50% drive level), and it can not be nulled. ill need to think about it some more but im guessing its the Vbe variations in the signal input transistors as the signal swings.
555x555
I'm definitely interested to see where this takes you. But at this point, how far away are you from using enough transistor pairs to just make your own OTA? Especially considering that Iabc is more often than not coming from an opamp/exponential V-to-I converter anyway.

I seem to get pretty good results from the following configuration, although I can't really replicate your measurements of the harmonics—in LTSpice the "sine" that's getting produced seems to give an FFT which already has ~ -90db on the 2nd harmonic but -30db on the 3rd harmonic. But I get only an additional, say, 30db with the 2nd harmonic (still at -60db) and only -3db additional on the 3rd (@1k 4Vpp input). The distortion is very, very slightly worse for changing the Rs in order to change the offset, rather than the potentiometer to the rails version you had, but I wanted to uncouple the circuit from the power supply as much as possible. This circuit should have high PSRR and shouldn't need adjusting for a ±12 or a ±15 PSU. I'll test this non-simulated next week or so, but like I said I don't have great test equipment. The single resistor bias scheme, btw, is not much worse @ 90ua, but then you lose the power-supply independence. The special sauce seems to be the 100k/3.6k input.

elektrouwe
555x555 wrote:
... in LTSpice the "sine" that's getting produced seems to give an FFT which already has ~ -90db on the 2nd harmonic but -30db on the 3rd harmonic.]

you can tune your settings to get a sine distortion as low as you want. As a compromise between computation time and THD I use the settings shown in the pic. below. 3rd harmonic is the highest with < -150dB.
You use the standard LM13700 model from NS. This one is better:
https://github.com/deanm1278/LM13700-spice-model
It converges, where the NS model melts my CPU ;-)

EDIT @ guest and gang:
I also think it's a bit an overkill to use so many additional discrete trans. around the OTA; smells like matching or even thermo control them.
I like Guest's idea of driving the OTA differential to get almost rid of the 2nd harmonic. It's just 1/4 quad opamp + 2Rs more and looks really convincing in simulation.

What about controlling I_bias and I_abc with 2 different VCCS to get a maximum dynamic range ?
When changing Ibias from 10uA - which gives a < -53dB 3rd with the values below - to 2mA the input level drops by 44dB - and distortion disappears almost of course. To get a high dynamic range Rs must be as high as possible (limited by Ibias max and CM-range of the OTA).

So the constraints would be:
max. gain : Ibias @ min. = 10uA (lowest value limited by max. allowd 3rd harm.) , I_abc @ max. = 500uA
min gain: Ibias @ max = 2mA , Iabc <=100nA (maybe from expo)

does this make sense ?
realisation would need 2 more opamps (and some discretes), so with a quad opamp differential drive, output amp, and 2 VCCS could probably be done





guest
wow, lots of new info to process. ill have more in depth replies later. i just wanted to quickly mention that my 8 transistor addition is not meant as a good solution, i was trying it out for another application where i might end up building the whole OTA as well.
555x555
Ah, I figured there was some option. I use the Mac version of LTSpice, so I kinda gotta grab the parameters out of the ether; thanks for that. I’m using the LM13700 model from TI’s website with no conversion problems so far. Is that the one you mean?

Controlling both Id and Iabc makes sense in theory, but you’d have to produce 1/V to use these for the same purpose, which either means a VCA in an op amp feedback loop or just use the other 1/2 LM13700—you’d have the same signal go to Id of 1/2 LM13700 and Iabc of 2/2, and then feed a constant current into the input of 1/2 and attach the output of 1/2 to Id of 2/2. In theory you should gain dynamic range, but I’m not sure how useful this is. Also I highly suspect you’d have significant feedthrough problems since I think the required offset null will change with Id.

When I get to it I’ll post numbers.
guest
555x555 wrote:
I seem to get pretty good results from the following configuration, although I can't really replicate your measurements of the harmonics


ok, so a couple of things to note:

1. the LM317 requires 3.5mA of output current to ensure regulation, so it might not hold current that well. it also has 50-100uA of quiescent current on the adjust pin, which is both a huge variation, and an unregulated source of current (up to 10% variation over load and temp). finally, its only good to 0.7% to begin with over temperature. perhaps a micropower regulator would do a better job, or a voltage reference. if you did put another voltage reference on, you could also use it for your offset trim source.

2. the 493uA is a bit high from my tests. that puts 250uA per leg of the diffpair, which swings up to 375uA at 50% output. the emitter resistance starts to become a problem around 100uA or so, but is tolerable to 200uA. thats why i run at 250uA max on Ib and Id, and more typically down at 100uA or so.

3. the input impedance is important to match. the way offset voltage gets adjusted when you put a trimmer on the input, is that the base current creates a different voltage due to the different input resistance. but, that base current varies with the current in the transistor, so it falls out of balance as soon as the amplifier starts to swing. i go so far as to put matching resistors on both sides (so if the one side has a 10k to ground and a 100k to signal, the other side uses both a 10k and 100k, both to ground). this can be taken one step further, and if a trimmer is added, that same 1M (typically) trimmer resistor can also be added to ground on the non-trimmed side.

4. in theory, the 2nd harmonic can always be nulled out, but not for a null in the feedthrough at the same time. so all of my tests were done for nulled feedthrough, as that is the more likely use scenario.
guest
elektrouwe wrote:
What about controlling I_bias and I_abc with 2 different VCCS to get a maximum dynamic range ?


so, as best as i can tell, this was done in the AD8330, which is essentially a buffered, dual-OTA multiplier (which was the lowest distortion of all toplogies i tested). i think the trick here is in the decision making circuitry that decides how much Ib versus Id for a given input. the nice thing, is that the output stage could be kept proportional to the output signal, fixing the SNR level regardless of output (essentially what the SSM2164 does). i came across the AD8330 while reading this:

http://www.analog.com/en/analog-dialogue/articles/considering-multipli ers-part-1.html

which has useful information, but is written in a horrible fashion, making it a bit annoying to read.
guest
actually, i just realized that the AD8330 implementation solves the issues i was having with my dual-OTA schemes: imbalanced input impedances of the OTAs. they use a differential output amplifier to swing both outputs simultaneously. i could tack another opamp on to do that (unfortunately diff output amps are super expensive for some reason).
slow_riot
instead of lm371, need to select for IDSS

guest
just checked my AD633 notes, and the distortion im seeing on my latest OTA addition is right in line with the AD633 X input (which is the equivalent port on the AD633). the Y port is a current steering network between 2 diffamps, and has much lower distortion for mid-range input signals (crossover distortion is large for small signals - not sure what the large signal distortion mechanism is).
555x555
Thanks, that's helpful. With a better sine and 100uA output and a 90uA constant current Id (I'll have to figure out another constant current source—note to self: read the effin data sheets and don't trust magically compliant simulations d'oh!), I get about -60 and -70 for 2nd and 3rd harmonic, respectively. This is at ~20mVpp at the LM13700 input, and nulled feedthrough. Seems fairly comparable with your results.

As for the impedance imbalance, yeah I know this creates errors, but I think it's creating smaller errors than I'm already getting from other sources with this design, and doesn't make a lot of sense to optimize just yet. At any rate, if I end up tacking on a voltage source, I'll also add back in the voltage based rebalance mechanism.

I wrote:

Controlling both Id and Iabc makes sense in theory, but you’d have to produce 1/V to use these for the same purpose, which either means a VCA in an op amp feedback loop or just use the other 1/2 LM13700—you’d have the same signal go to Id of 1/2 LM13700 and Iabc of 2/2, and then feed a constant current into the input of 1/2 and attach the output of 1/2 to Id of 2/2.


Aaaaaand that'd produce an overall amplification factor equal to A^2 rather than A. Whoops.
elektrouwe
555x555 wrote:
.... I’m using the LM13700 model from TI’s website... Is that the one you mean?

yes, this is the Nat.Semi. original. My simulation convergence problems began. when I used the OTA Iabc input as EXPO by driving the -V power pin. http://www.idea2ic.com/LM13600/SpiceSubcircuit/LM13700_SpiceModel.html explains the updated model

555x555 wrote:
Controlling both Id and Iabc makes sense in theory,... Also I highly suspect you’d have significant feedthrough problems since I think the required offset null will change with Id.
When I get to it I’ll post numbers.


I don't care too much about CV/gain characteristic. One could linearize this with a 2nd circuit (1/2 OTA left) in a feedback loop (Tietze/Schenck, later Mike Irvin with SSM2164). But yes, feedthrough could be the killer. If I ever prototype this I'll add the darlington buffer heater, like in my OTAexpo, to thermostate the whole thing and offset trimmers of course

@guest: thanks for the AD8830 pointer, interesting concept !

EDIT :
replaced sim picture by current version :
VCA based on "OTA as EXPO converter" , see www.muffwiggler.com/forum/viewtopic.php?t=194710
it's not perfect "dB/Volt" du to the additional gain control with the input diodes. But for a Synth VCA the simulation looks good - in fact, too good to be true ;-)
only feedthrough does not look very nice. I've minimized it by input offset trimming, sacrificing some dB of 2nd harmonic supression.
are there some oscilloscope shots showing other (OTA) VCAs feedthrough ?




elektrouwe
note: I don't know about SNR of this circuit. I guess noise simulation will not help too much, because in real world things get more complicated. As guest already mentioned, there is always a trade of between THD and SNR with a LM13700 circuit. A prototype will tell us
555x555
A couple things:

First, I found a different power supply voltage independent adjustable current source: http://www.ti.com/product/LM334
It's rated from 1u up to sizzling chips. Look at the datasheet to remove the temperature dependency. Also, it crossed my mind that maybe this temperature dependency could be taken advantage of in a exp. converter, but I haven't thought about it all that much.

Second, I'm wondering if anyone's had a look at the two reissued CEM VCA chips here: http://www.alfarzpp.lv/eng/sc/application.php

And last, I'm wondering about the 4-quadrant feedforward-and-mix configuration of the LM13700. In theory it should be worse feedthrough @ zero CV, but pretty comparable distortion, since it's really just using the output opamp as a mixer. But idk if there's any other considerations. I'm thinking through how to make Iabc power supply independent in this configuration...only think I can really think of is an opamp current source with a zener/other voltage ref. instead of ground on the positive terminal.
guest
the LM334 is great, but im somewhat cautious about its usage for super accurate circuits, as it lists +/-3C accuracy. if this is just a fixed offset, then it can be trimmed out, but if it changes with temperature, thats more problematic.

i saw that the reissue chips, but havent had any experience with them or the originals. from first glance, it seems like a 2164 style core. might be interesting to use one of the log generators as an exponential converter, and the other as a Vt generator, and then the onboard multiplier to cancel Vt.

the feedforward version shouldnt be that bad at zero CV, as this is the full open condition. i think the main issue with it is the drifts in gm and offset voltage causing it to fall out of trim. the feedforward path is temperature independent, so youll see the differences faster than if you were using another LM13700 for the inverted signal, which tracks with the first.

[EDIT] i take back my initial statement about the 3360 being a 2164 style core. i initially said that because it was exponential control, but now looking at the datasheet, the distortion, bleedthrough, output compliance, and almost all specs seem more in line with an OTA. if anyone knows better whats inside of them, please let me know.
555x555
Yeah, we’ll have to see if the accuracy of the LM334 is temperature dependent even after the 1N457 temperature compensation.

Good point about the asymmetry of the op amp and LM13700 paths. One could use a similar LM13700 circuit for the other path instead of the op amp, though at that point you might be better using The dual OTA compensation scheme and leaving the forward path as is.
guest
just wanted to let people know that i updated the paper linked in the first post with the latest information ive gatherd on OTA distortion. it wont be anything new if youve been following this thread, but i thought it would be good to keep the documenation up to date. ive been working on writing up my work in pdf format, as a lot of it is just posts to muffs, which makes it a little hard to read through, and very susceptible to being lost if muffs goes down.
MUFF WIGGLER Forum Index -> Music Tech DIY  
Page 1 of 3
Powered by phpBB © phpBB Group