Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.soft-sys.math.mathematica > #16656

Help with a function for plotting zeros and poles

From "Eduardo M. A. M. Mendes" <emammendes@gmail.com>
Newsgroups comp.soft-sys.math.mathematica
Subject Help with a function for plotting zeros and poles
Date 2014-03-15 07:52 +0000
Message-ID <lg10sa$519$1@smc.vnet.net> (permalink)
Organization Time-Warner Telecom

Show all headers | View raw


Hello

Sometime ago I found a couple of functions that are used for plotting the poles and zeros of a transfer function.  Here they are:

xyPoints[values_]:=Module[{xy},xy=Flatten[Replace[values,{Complex[x_,y_]:>{x,y},x_?NumericQ:>{x,0}},{3}],1];Cases[xy,{_?NumericQ,_?NumericQ},{2}]
];

zeroPole[tf_]:=Module[{zp,zp0},zp0=Through@{TransferFunctionZeros,TransferFunctionPoles}@tf;
zp=FixedPoint[ReplaceAll[#,{}->{-100}]&,zp0];
xyPoints/@zp];

zeroPole is a modification of the actual plot function (I have only removed the plot command).

Here are two examples of using the functions

tf1=TransferFunctionModel[(3 (13/8+s))/(2 (3/2 (13/8+s)+s (1+s) (2+s) (5+s))),s]
tf2=TransferFunctionModel[(199+344 s)/(16 (s (1+s) (2+s) (5+s)+1/16 (199+344 s))),s]

N@zeroPole[tf1]
{{{-1.625,0.}},{{-0.5,0.},{-0.5,0.},{-5.08114,0.},{-1.91886,0.}}}

N@zeroPole[tf2]
{{{-0.578488,0.}},{{-0.5,0.},{-5.97986,0.},{-0.760068-1.89264 I,0.},{-0.760068+1.89264 I,0.}}}

The functions does what I expected for the first example, but not for the second example (the real and imaginary parts of the complex poles are not dealt with).

Can someone tell me what is wrong?   And how to modify xyPoints (Although I understand what the functions does I am not sure what to do)?

Many many thanks

Ed

Back to comp.soft-sys.math.mathematica | Previous | Next | Find similar


Thread

Help with a function for plotting zeros and poles "Eduardo M. A. M. Mendes" <emammendes@gmail.com> - 2014-03-15 07:52 +0000

csiph-web