Skip to main content
1-Visitor
October 7, 2019
Solved

Foster to Cauer Conversion

  • October 7, 2019
  • 3 replies
  • 22076 views

I am trying to write a program that implements the Foster - Cauer conversion algorithm described in summarily in page 19 of System-Level Thermal Simulation - nxp.com and thoroughly in appendix 2 of Aliyu, Attahir Murtala PhD thesis (that also includes an implementation in MATLAB) , but I cannot find how to program the manipulations they describe using MathCAD, especially the "polynomial long division" to obtain "quotient + remainder".

 

Anyone willing to help?

 

Note that I am using MathCAD 15

 

Thanks

 

 

 

 

Best answer by LouP

I don't have v15, but I have a reasonable guess. If you look at the beginning of the Z2RCladder area, I define a function Stack, which accepts NaN (not a number). This acts as a NULL number. V11 allows for it; I don't know if v15 does or not. In any case, the object of Stack is to allow use of cases such as Stack(NaN, vec), which simply returns vec, the non-NaN argument. The built-in function stack in v11 gives an error in this case; it requires both arguments to be arrays of appropriate dimensions. I don't know if this hold true in v15.

 

This behavior is useful when iterating calculations through a number of values, and want to append the result of the most recent cal to the existing array. By setting the initial value to NaN, the the initial calc (with no preceding calc values to append to) does not need to be treated/programmed as a special case.

 

If you can find an alternate way to implement Stack, then simply replace my original definition. The revised file attached goes another route.I implemented a second version of the Z2RCladder function, in which I initialize the RC array to (0 0) instead of NaN. This results in an extraneous first row in the output array, which is removed  before returning the RC values.

 

Lou

 

 

3 replies

21-Topaz II
October 7, 2019

Hi,
the following two photos illustrate the algorithm of the synthetic division and an example (you have only to change z with s):

divsin.jpgdivsin2.jpg

Anselme1-VisitorAuthor
1-Visitor
October 8, 2019

Hi Topaz,

Thanks for your reply but this is not exactly what I am looking for. It is not as simple as replacing z with s.

To find the Cauer parameters the quotient of each iteration gives the value of one component and the remainder is used for the next iteration.

I attached a MathCAD file that implements the example A2.3 of Aliyu, Attahir Murtala PhD thesis .

This example is for a second order Cauer network with two capacitors and two resistors. It can easily be expanded to higher order but the problem is that I need to do this calculation for several thousands of networks then I need to convert this into a MathCAD program that I can call each time I need to find the Cauer parameters of a network.

 

23-Emerald IV
October 8, 2019

Are all your filters the same size (Same number of R's and C's, same topology)?

 

Luc

Anselme1-VisitorAuthor
1-Visitor
October 8, 2019

Yes they will be 5th order Cauer networks like this:

 

clipboard_image_0.png

ttokoro
21-Topaz I
21-Topaz I
October 9, 2019

Z11 is saturated soon when using same C and R.

image.png

t.t.
21-Topaz II
April 29, 2020

Hi,

Reviewing the algorithms related to the networks of Foster and Cauer, I came across this worksheet that I made symbolic, see attachment.