Login / Register  0 items | $0.00 New
User avatar
aciddose
KVRAF
 
11529 posts since 7 Dec, 2004

Postby aciddose; Mon Dec 02, 2013 12:13 pm

mystran wrote:
aciddose wrote:Positive signal current flows along one path and negative signal current the other. That is why you need two capacitors, because unlike in the transistor-ladder design the positive and negative components of the signal path are at different points in the ladder.


Oh ok, that makes sense. Thanks.

edit: seems I just missed the connection from LP down on the right-hand side.. but IMHO the frequency control design is still rather weird. :)


Not at all weird.

To someone with electronic experience layout matters less, but layout is still extremely important. I'm able to see this variation of the layout just by glancing at it of course but that is because I understand every element of the circuit in depth.

Seeing it this way first-hand may help you:

First we have the input buffer for the signal. Simple enough. It also provides a voltage source for the mirror to operate upon.

Input buffer: (image removed, ask if you need this for some reason)

Next is the current mirror used to generate current to control the resistance of the diodes. Higher current through a diode produces lower resistance in-line with the current. That is, obviously you won't be lowering the resistance backward through the diode by forcing current forward.

We want to remove 1-n from the positive side of the diode ladder and n from the negative side so that we can control the current flowing through the diodes.

Conveniently, such a current mirror in such a configuration also has a logarithmic response to it's control current :)

Current mirror / differential amplifier: (image removed, ask if you need this for some reason)

Output buffer: (image removed, ask if you need this for some reason)

The feedback section: (image removed, ask if you need this for some reason)

So far these are all standard elements although you might not immediately understand how a current mirror works or how it's controlling the current through the diodes.

The next part is what I've re-arranged to help you see how this filter works more easily.

The diode 'ladder': (image removed, ask if you need this for some reason)

These little schematics are laid out the same way I lay out the circuit on actual PCB. Fits quite efficiently this way :)
Last edited by aciddose on Wed Mar 05, 2014 11:54 pm, edited 1 time in total.
Xhip Synthesizer v8 (WinXP, Linux and MacOS alpha versions are available.)
Xhip Effects bundle v6.7 New: Resizable/skinnable/configurable GUI. (Linux and MacOS alpha versions are available.)
mystran
KVRAF
 
4597 posts since 11 Feb, 2006, from Helsinki, Finland

Postby mystran; Mon Dec 02, 2013 12:40 pm

aciddose wrote:
mystran wrote:
aciddose wrote:Positive signal current flows along one path and negative signal current the other. That is why you need two capacitors, because unlike in the transistor-ladder design the positive and negative components of the signal path are at different points in the ladder.


Oh ok, that makes sense. Thanks.

edit: seems I just missed the connection from LP down on the right-hand side.. but IMHO the frequency control design is still rather weird. :)


Not at all weird.


So can you explain the weird part: WHY did they do this. :)

I mean that's the part that doesn't make any sense: why would start with the weird hack that is the diode ladder, and then turn it into another structure? Maybe I'm missing something obvious, but just seems totally arbitrary and improbably choice.
Image <- plugins | forum
User avatar
aciddose
KVRAF
 
11529 posts since 7 Dec, 2004

Postby aciddose; Mon Dec 02, 2013 1:14 pm

The differential amplifier structure requires far less parts and eliminates the need for matching the components so much. Doesn't require a differential output which is a huge bonus and auto-magically gets exponential frequency response.

It's the application of the standard diode-ladder to a Sallen-Key structure which isn't otherwise possible.

The KORG35 structure is the same only they used transistors as the transconductive elements. The drawback of that method is that signal level must be very low, otherwise since the signal path is unified (positive and negative current through transistors forward and backward) the positive signal current and negative signal current will become large enough to affect the over-all current through the transistors.

In this diode ladder structure the same thing happens, only the positive and negative currents will cancel each other out!

So:

- lower component count
- less critical component selection
- improved noise performance
- improved performance (no frequency modulation by input signal, lower distortion)

Sallen-Key is a useful structure because:

- not so critical of component values
- provides inputs for lowpass, bandpass, highpass and a single output
- requires only a single amplifier in the feedback path (or even none at all)
Xhip Synthesizer v8 (WinXP, Linux and MacOS alpha versions are available.)
Xhip Effects bundle v6.7 New: Resizable/skinnable/configurable GUI. (Linux and MacOS alpha versions are available.)
User avatar
aciddose
KVRAF
 
11529 posts since 7 Dec, 2004

Postby aciddose; Mon Dec 02, 2013 1:47 pm

You might want to investigate the earlier implementations like the keio 201012:

http://www.colinfraser.com/m700/

This and other related filters and amplifiers based upon diode rings existed long before the other implementations which were termed "ladders" due to the change in layout in the schematics.

They're all inter-related and very much slight variations on the same idea once you get to know them.
Xhip Synthesizer v8 (WinXP, Linux and MacOS alpha versions are available.)
Xhip Effects bundle v6.7 New: Resizable/skinnable/configurable GUI. (Linux and MacOS alpha versions are available.)
mystran
KVRAF
 
4597 posts since 11 Feb, 2006, from Helsinki, Finland

Postby mystran; Mon Dec 02, 2013 1:56 pm

aciddose wrote:So:

- lower component count
- less critical component selection
- improved noise performance
- improved performance (no frequency modulation by input signal, lower distortion)


I see, thanks for the insights. It still seems a bit non-obvious (I mean, how you actually end up choosing such a with the combination), but at least it makes some sense.
Image <- plugins | forum
User avatar
andy-cytomic
KVRAF
 
2024 posts since 3 Dec, 2008

Postby andy-cytomic; Mon Dec 02, 2013 6:15 pm

AdmiralQuality wrote:
andy-cytomic wrote:
mystran wrote:
andy-cytomic wrote:Note that I set the "gc" values to 1, but you could use real capacitor values (2 C / samplerate) here if you want to have real currents


There's a mistake. It should read (2 * C * samplerate).

Seems counter intuitive, but higher samplerate means that the normalize cutoff needs to go down (to compensate) and so we need a larger capacitor. From one pole RC, we can see that this results in cutoff at 1/(R*2*C*samplerate) which should make perfect sense.

Also just a remainder that if you use real capacitor and resistor values, then you also need to adjust your tuning parameter to cancel that 1/(R*2*C*samplarate) if you still want to keep normalized tuning.


Yes, sorry, I just wrote that off the top of me head, I meant to write 2 C / h, where h = 1/samplerate, I'll correct that now. This is why I post links to pdf files instead, it's right in all the pdfs!


This is why I don't pay too much attention to you guys. Last time I tried to follow mystran's posts on this topic I gave up after pages of revisions kept coming in. I'm sure mystran is a very bright guy who knows all kinds of math stuff, but I don't get the impression he's very results oriented. He likes having a problem. I like having a solution.


I posted all the pdfs for you which contain all this information correctly, but from your comments it looks like you can't be bothered to spend any time reading them (there is no advanced math in there at all so that can't be the problem). Then I posted one transcription mistake in one post on KVR because you insisted you don't want to read the pdf (the term is correctly shown in the pdf if you bothered to look at them for reference), and you now write off everything else I posted? Class.

On top of all that, if you actually read the KVR post you would see that this part isn't even needed in the solution! For completeness I wanted to show that you don't have to set gc = 1 if you don't want to, you can use real "C" farad values for your capacitor.

All I can really guess from this is that although Admiral Quality says he wants help he actually doesn't want it at all. As everyone knows it is impossible to help someone that doesn't want help, so I'll stop. Admiral Quality, please don't ask for help if you don't want it, you just waste everyones time!
The Glue, The Drop - www.cytomic.com
AdmiralQuality
Banned

Postby AdmiralQuality; Mon Dec 02, 2013 6:22 pm

andy-cytomic wrote:
AdmiralQuality wrote:
andy-cytomic wrote:
mystran wrote:
andy-cytomic wrote:Note that I set the "gc" values to 1, but you could use real capacitor values (2 C / samplerate) here if you want to have real currents


There's a mistake. It should read (2 * C * samplerate).

Seems counter intuitive, but higher samplerate means that the normalize cutoff needs to go down (to compensate) and so we need a larger capacitor. From one pole RC, we can see that this results in cutoff at 1/(R*2*C*samplerate) which should make perfect sense.

Also just a remainder that if you use real capacitor and resistor values, then you also need to adjust your tuning parameter to cancel that 1/(R*2*C*samplarate) if you still want to keep normalized tuning.


Yes, sorry, I just wrote that off the top of me head, I meant to write 2 C / h, where h = 1/samplerate, I'll correct that now. This is why I post links to pdf files instead, it's right in all the pdfs!


This is why I don't pay too much attention to you guys. Last time I tried to follow mystran's posts on this topic I gave up after pages of revisions kept coming in. I'm sure mystran is a very bright guy who knows all kinds of math stuff, but I don't get the impression he's very results oriented. He likes having a problem. I like having a solution.


I posted all the pdfs for you which contain all this information correctly, but from your comments it looks like you can't be bothered to spend any time reading them (there is no advanced math in there at all so that can't be the problem). Then I posted one transcription mistake in one post on KVR because you insisted you don't want to read the pdf (the term is correctly shown in the pdf if you bothered to look at them for reference), and you now write off everything else I posted? Class.

On top of all that, if you actually read the KVR post you would see that this part isn't even needed in the solution! For completeness I wanted to show that you don't have to set gc = 1 if you don't want to, you can use real "C" farad values for your capacitor.

All I can really guess from this is that although Admiral Quality says he wants help he actually doesn't want it at all. As everyone knows it is impossible to help someone that doesn't want help, so I'll stop. Admiral Quality, please don't ask for help if you don't want it, you just waste everyones time!


I was clearly talking about mystran's post and identified him by name. I'll get around to looking at your .pdf when I have some more time. I'm tied up with something entirely different right now.

But as many here have pointed out already, yeah, you are kind of a jerk.
User avatar
andy-cytomic
KVRAF
 
2024 posts since 3 Dec, 2008

Postby andy-cytomic; Mon Dec 02, 2013 6:46 pm

AdmiralQuality wrote:
AdmiralQuality wrote:This is why I don't pay too much attention to you guys.


I was clearly talking about mystran's post and identified him by name. I'll get around to looking at your .pdf when I have some more time. I'm tied up with something entirely different right now.

But as many here have pointed out already, yeah, you are kind of a jerk.

I have obviously hit close to the mark with my comment guessing you don't actually want help since your reply is very defensive and aggressive.

Now as for "clearly" - you clearly lumped me in there as well, by saying "you guys", so you can't suddenly go ahead and say you are only talking about him.

Also even if you were only talking about Mystran, he is a good guy that is helping people out here, sure there are some mistakes, no one is perfect, but I haven't seen anyone buy you complain about it, most people are grateful. So all up what does that say about you?
The Glue, The Drop - www.cytomic.com
AdmiralQuality
Banned

Postby AdmiralQuality; Mon Dec 02, 2013 6:50 pm

andy-cytomic wrote:
AdmiralQuality wrote:
AdmiralQuality wrote:This is why I don't pay too much attention to you guys.


I was clearly talking about mystran's post and identified him by name. I'll get around to looking at your .pdf when I have some more time. I'm tied up with something entirely different right now.

But as many here have pointed out already, yeah, you are kind of a jerk.

I have obviously hit close to the mark with my comment guessing you don't actually want help since your reply is very defensive and aggressive.


No. Yours was. I'm not being defensive. I'm being offensive. You're a jerk!

Now as for "clearly" - you clearly lumped me in there as well, by saying "you guys", so you can't suddenly go ahead and say you are only talking about him.

Also even if you were only talking about Mystran, he is a good guy that is helping people out here, sure there are some mistakes, no one is perfect, but I haven't seen anyone buy you complain about it, most people are grateful. So all up what does that say about you?


That I'm honest enough to admit when I don't understand something and nicely ask for help, as well as define the terms of what will qualify as help. (I'm not looking to model capacitors either. You guys are WAYYYY overboard what I'm looking for and can't seem to narrow your scope. Some others here are more practical minded, and have actually provided helpful answers. So thanks to them, and nuts to you!)
User avatar
aciddose
KVRAF
 
11529 posts since 7 Dec, 2004

Postby aciddose; Mon Dec 02, 2013 8:01 pm

AQ, you need to do some transfer function graphs and understand the transforms, working with complex numbers and stuff. Then the notation will become clear.

Try using the std::complex class to start because just working it all out from scratch is hard enough without having to create the class and get it to work correctly.

Then if you read these docs you can go from a transfer function that you can graph to show the spectrum and apply the transform you want to reach the equations for actually implementing the filter in the time-domain.

If you're not willing to go through that process and learn how it works you really can't expect someone to just zap you with a one-liner and suddenly have this amazing revelation and understanding wash over you.

Unfortunately real life isn't much like "I know kung-fu."

For example to graph a 12db lowpass:
v = 1.0 / (im(w)/Q + pow(im(w), 2) + 1.0)

You'll see "iw" when they actually mean a complex value with its imaginary component = w. Sometimes the notation is confusing as hell and you can't memorize all the nasty rules especially for more complex filters. Figuring out which values make up real/imaginary components of a complex can become tiring. All the reference material you'll find will concentrate on trying to jam identities into your brain and will be completely lacking any actual explanation of what is going on.
Xhip Synthesizer v8 (WinXP, Linux and MacOS alpha versions are available.)
Xhip Effects bundle v6.7 New: Resizable/skinnable/configurable GUI. (Linux and MacOS alpha versions are available.)
User avatar
Ichad.c
KVRian
 
1000 posts since 8 Feb, 2012, from South - Africa

Postby Ichad.c; Tue Dec 03, 2013 10:27 am

Thanks for the insight mystran, and a very big thanks for the explenation and pics(which helps a ton!) aciddose! The signal flow is still a tad confusing and I still don't get it exactly - but atleast I'm going on the right path now - was thinking 'modified diode ladder', now I'm thinking 'modified sallen-key'
:)
mystran
KVRAF
 
4597 posts since 11 Feb, 2006, from Helsinki, Finland

Postby mystran; Sun Dec 08, 2013 12:22 pm

And just so everyone knows: this thing doesn't care what is feedback!
Image <- plugins | forum
jackokring
KVRer
 
6 posts since 25 Mar, 2012

Postby jackokring; Fri Sep 01, 2017 2:02 am Re: You are probably already using Zero Delay Feedback filters, so let your customers know!

After a few days look see, this is it.

Code: Select all
dy@1 = f*(x@1 - y@0);//for your bad ... y is "delayed"
y += dy@1;

BUT (TRAPEZODIAL)
dy@1 = f*((x@1 - y@1 + x@0 - y@0) / 2);//requires an extra x@0 value, and y@1 is??
AS
y@1 = y@0 + dy@1;
dy@1 = (f/(f+2))*(x@1 + x@0 - 2 * y@0);//rearranged for implicit y@1


Simples....
Previous

Moderator: Moderators (Main)

Return to DSP and Plug-in Development