How can I pass a transfer function tf() into fvtool() ?
8 views (last 30 days)
Show older comments
Hi, I am try to pass different values of transfer faction into fvtool. But, I have a error said "FVTool does not accept cell arrays as inputs". I would like to plot the pole and zeros of a transfer function in (real vs. im plane). If I did it manually and create array, it will works just fine but I am looking to find a way to get these value directly from the transfer function.
alpha_sweep = linspace(0.1,1,5);
wn = 100;
for x = 1:(length(alpha_sweep))
alpha = alpha_sweep(x);
H(x) = tf((142.857+(10000*alpha)),[alpha*1,140*alpha,alpha*wn^2]);
fvtool((H(x).Denominator),(H(x).Numerator),'polezero')
[b,a] = eqtflength(H(x).Denominator,H(x).Numerator);
[z1,p1,k1] = tf2zp(H(x).Denominator,H(x).Numerator)
text(real(z1)+.1,imag(z1),'Zero')
text(real(p1)+.1,imag(p1),'Pole');
end
Thanks,
Mohammed
0 Comments
Accepted Answer
Davis
on 2 Dec 2022
I just found this question when I was searching for the same answer, You can convert the cell arrays to a matrix using cell2mat, i.e.:
fvtool(cell2mat(H(x).Numerator),cell2mat(H(x).Denominator),'polezero')
BTW, you reveresed the order of the numerator and denominator terms in fvtool.
0 Comments
More Answers (0)
See Also
Categories
Find more on Digital Filter Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!