Remove small numbers from transfer function
26 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Ameer Hamza
2020-4-10
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 .
2 个评论
Ameer Hamza
2020-4-10
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.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!