Is there a design methodology to create a circuit that implements a specified transfer function?

I know that there are automatic top-down design flows in logic design where you describe a function at RTL level and technology does the rest, but what about other domains? Transfer functions were taught to us in University. I am sure that they can be implemented with linear elements: resistors, inductors and capacitors. But I have never seen how to do that in general, nor seen a tool that would do that. Why?

update IEEE says:

The rational transfer function is realized as a linear causal time-invariant system using well-established techniques

Which techniques to they have in mind?

  • \$\begingroup\$ What is your transfer function you wish to realize? You can have a look at this question for a little info. \$\endgroup\$ – abdullah kahraman May 27 '13 at 16:32
  • \$\begingroup\$ I do not ask about particular function because I ask about method of conversion between circuits and transfer functions. How that link is ought to open my eyes? \$\endgroup\$ – Val May 27 '13 at 16:34
  • \$\begingroup\$ For the active filter, in example, we have seen 3 decomposition methods, in the active filter synthesis lecture; direct, serial and parallel. Direct decomposition is what you want among these, I guess. I am going to write an answer on this whenever I am available. \$\endgroup\$ – abdullah kahraman May 27 '13 at 21:28
  • \$\begingroup\$ You cannot just say, I want this method that converts a transfer function to a circuit. There may be methods that can achieve this, but I would doubt their value as an engineer. In instance, produced circuit may have 4 Op Amps and realize your transfer function, but then again, it could be built with only 1 or 2 Op Amps by an experienced engineer. \$\endgroup\$ – abdullah kahraman May 27 '13 at 21:32
  • \$\begingroup\$ An experienced engineer can implement any algorithm in ASM much more efficiently than C compiler. In instance, C-compiler produced code may be 2 times larger and slower. I therefore doubt that C compilers have their value. How do we classify such kind of argument? \$\endgroup\$ – Val May 28 '13 at 7:05

I am sure that they can be implemented with linear elements: resistors, inductors and capacitors.

I wouldn't be so sure about that. A trivial counter-example is \$H(s) = K, K > 1\$.

A less trivial counter-example is any \$H(s)\$ with RHP poles or any with a finite impulse response. RLC circuits cannot implement an arbitrary transfer function.

Transfer functions can be written as the product of 2nd order transfer functions (for even order) and as the product of 2nd order and 1st order transfer functions (for odd order).

Thus, as Andy aka answers, realizable transfer functions can be implemented as a cascade of well known 1st and 2nd order active filter circuits.

Now, if one wants to implement a realizable transfer function entirely with passive components, you cannot use the above method. In the case of active filters, there is no (or actually very little) interaction between the active filter sections due to very low output impedance of the op amp. However, with passive filter sections, there is interaction (loading effects) the make the choice of topology and components exceedingly complex.

The synthesis techniques of passive ladder filter networks for the canonical filter alignments is well known (see, for example) but, for arbitrary, realizable transfer functions, I don't know.

  • \$\begingroup\$ Ok, I do not insist that you must be limited with passive elements. How do you define the class of "realizable functions"? \$\endgroup\$ – Val May 28 '13 at 15:48
  • \$\begingroup\$ Nice answer. Your link throws a 404 error. \$\endgroup\$ – abdullah kahraman May 28 '13 at 16:55
  • \$\begingroup\$ @abdullahkahraman, thanks for pointing out the link problem and I've fixed it. \$\endgroup\$ – Alfred Centauri May 28 '13 at 17:42
  • \$\begingroup\$ @Val, for example, the filter must be causal (it can't depend on future inputs, only past and present inputs) and stable (bounded input, bounded output). There are other requirements but I would need to refresh my memory to quote them here. \$\endgroup\$ – Alfred Centauri May 28 '13 at 18:36

Is there s design methodology to create a circuit that implements a specified function?

There are plenty of "standard circuits" that can have their component values altered to suit different transfer functions. For instance, a Sallen-Key filter has a standard formats for low-pass filters, band-pass filters and high pass filters. The formulas of the transfer function for each directly relate to the component values and, in this way you can design all manner of filters (LP, BP and HP). Here is a sallen key HP filter: -

enter image description here

It has various transfer function formula that very precisely predict its behaviour: -

enter image description here enter image description here

You can find websites that provide near-automated results such as: -

enter image description here

You can also cascade these circuits to make steeper cut-offs in the frequency domain. The above pictures were from a previous answer on implementing a 4th order high-pass filter.

Once upon a time folk used analogue computers. These consisted of a series of op-amp (maybe valve if you go back far enough) integrators and summation nodes. These could implement many linear transfer functions but are mainly out of use today.

Many suppliers of chips these days also have bespoke programmes that can be run from their website that allow you to design the "circuit" by feeding in your input/output requirements. The website outputs a circuit diagram and in many cases will provide graphs of performance and details of where you can buy the components.

Here is an example from Texas Instruments: -

enter image description here

Why haven't you seen these? Only you can answer that and there are plenty more examples.

  • \$\begingroup\$ Do you understand the difference between "parametrizable model" and universal method, that can convert any transfer function into a circuit? Do you understand that I want to submit arbitrary H-function and get a circuit diagram in response (this is called a synthesis) instead of tuning parameters of your amplifier? What this power supply picture has to do with my question? \$\endgroup\$ – Val May 27 '13 at 16:43
  • 1
    \$\begingroup\$ @Val maybe you need to be clearer in your question. You said this in a comment on your own question "I ask about method of conversion between circuits and transfer functions" and I have provided examples of a method. You ask if i "understand the difference between "parametrizable model" and universal method" - do you have an example of a universal method that you can explain? \$\endgroup\$ – Andy aka May 27 '13 at 16:55
  • \$\begingroup\$ I have given you example in the logic design. In addition, there are compilers. You give then arbitrary C program and get executable binary. You do not have a special compiler for a couple of predefined models. Compiler accepts any valid program. Why cannot you understand that there could be a synthesis tool for all valid H(s) functions? \$\endgroup\$ – Val May 27 '13 at 17:08
  • 1
    \$\begingroup\$ That is what I wanted to clarify. I guess that the problem is that you cannot decompose H(s) functions, like you do with C functions and in logic synthesis. There you traverse the hierarchy and map every piece, every source model construct into a corresponding target element, using templates. You do not have such maps nor can decompose H(s) function. This makes mapping as complex as integration vs. differentiation. Might be somebody can be more specific. But, I want to hear if it is possible in principle and why if not. \$\endgroup\$ – Val May 27 '13 at 17:26
  • 1
    \$\begingroup\$ Q-factor accurate to 0.001 PPB. Cool! :) \$\endgroup\$ – Johan.A Aug 5 '13 at 13:39

Not the answer you're looking for? Browse other questions tagged or ask your own question.