Hello, I am looking to do some frequency response synthesis. I already have the bode plot and would like to get the transfer function of the plot. I know that a single pole zero give +/- 20dB/dec slopes and that a double pole can give 40dB change. Where I'm stumped is how can I obtain a change of +/- 30 db/dec? Of course I could do an approximation of the bode plot and draw it such that i get to around 2x dB/dec and then use the a single pole/zero approximation, but I'd like to be as accurate as possible with my design. I did a quick google search, and there seems to be no obvious answer to this question. tia
to add onto this, does any have any good quality resources regarding frequency response synthesis? i.e. given a bode plot, find the transfer function by knowing the location of the zeroes and poles. It seems that I was not able to find very many good resources on this topic and i am struggling to get a good fit for my bode curves. thx
Hi t_n_k, yes i saw your previous post in the matlab fitting post i made earlier. didnt get a chance to say 'thanks'. However, i wasnt able to get a very good fit for my bode plot, which is why i want to try by hand now. actually in the actual "Figure" window under Tools, there is a "basic fitting" option that i tried as well. Although these fits were more accurate, the associated equations were not really in terms of poles and zeroes, which is what i actually want in this case.
Perhaps you could post one of your frequency response files of interest and I could try to deduce the transfer function &/or pole / zero representation using the Scilab functions one has available. I can successfully extract an estimated transfer function from typical frequency response data. Once one has the estimated transfer function it's then a small step to the pole / zero layout.
hi, thanks for the offer, but i think i have already found a reasonable approximation using just "regular" poles and zeroes. I was making a mistake using just "f" instead of 2*pi*f in my calculation which caused the confusion. actually t_n_k, i was wondering if you knew more about the "bode()" call in matlab. I am trying to plot my array data on top of my bode plot, but unlike subplot, im not sure if you can individually call the magnitude and phase plots. e.g. in subplot you can call differentiate between two plots by calling subplot(112) and subplot(111). Is there a similar function for bode()? thanks again
If you have the Control System Toolbox, the Matlab call [mag,phase] = bode(sys,w) allows one to separate the magnitude & phase components for a system 'sys' over frequency interval vector 'w'. One can then presumably use the 'mag' component to plot just the magnitude part using say a loglog() call. To overlay two bode responses for systems H1 & H2 one can use the command ... bode(H1,H2) Check out ... http://www.mathworks.com.au/help/toolbox/control/ref/bode-plot.html