MATLAB Answers

DSP questeion (filter design from estimated transfer function)

1 view (last 30 days)
Is there any way how to design filter (a,b coeffs) from transfer function estimated by "tfestimate"?


Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 29 Mar 2017
Not easily, if at all.
Use the Signal Processing Toolbox invfreqz function if you want filter coefficients.


Michal Kvasnicka
Michal Kvasnicka on 29 Mar 2017
Thanks ... invfreqz doing (at least theoretically) exactly what I need.
But my input transfer function is a bit oscillatory at high-frequency domain. So, result of invfreqz is sometimes unstable.
How to smooth complex transfer function?
Star Strider
Star Strider on 29 Mar 2017
My pleasure.
I am not certain what you mean by the transfer function being ‘a bit oscillatory at high-frequency domain.’ If it has high-frequency oscillations in either the time domain or frequency domain, the easiest solution would be to cascade it (in series) with a lowpass filter. That would be my first approach. Unless you create dfilt objects for both, and then use dfilt.cascade to create the cascaded filter, you would have to do this every time you used the filter. This is not necessarily a problem if you are only using your filter occasionally.
There control systems methods of stabilizing it in state-space. I have not done this in a while, and then only with continuous-time systems. (Discrete-time systems are much more difficult to work with.) This involves pole-placement techniques to move high-frequency poles further to the left of the complex frequency plane for a continuous system, or further inside the unit circle for a discrete system.

Sign in to comment.

More Answers (0)


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by