![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/283306/image.png)
Remove small numbers from transfer function
18 views (last 30 days)
Show older comments
Jason Gauthier
on 9 Apr 2020
Commented: Ameer Hamza
on 10 Apr 2020
Greetings,
Is there a simple way to remove small numbes from a transfer function?
-0.8921
-------------------------
s^2 + 1.035 s - 1.533e-14
The last term is so incredible small, it's pointless. I have a very set of TFs (12 outputs and 4 inputs.) I'd just like to sweep through and easily clean them up.
0 Comments
Accepted Answer
Ameer Hamza
on 10 Apr 2020
try this
sys(1) = tf(1, [1 2 1.2e-12]);
sys(2) = tf(1, [2 3 1.5e-11]);
sys(3) = tf(1, [3 4 5.5e-13]);
sys(4) = tf(1, [4 5 2.7e-12]);
[n,d] = tfdata(sys);
n = cellfun(@(x) {x.*(x>1e-7)}, n);
d = cellfun(@(x) {x.*(x>1e-7)}, d);
sys = tf(n, d);
It filters all coefficient with magnitude less than
.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/283306/image.png)
2 Comments
Ameer Hamza
on 10 Apr 2020
Glad to be of help. On a side note, negative coefficients in a transfer function indicate instability. But if these values are just noise, then it should be fine to ignore it.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!