How can I identify the coefficients of the numerator and the denominator (or alternatively the poles and the zeros) of a frequency response function?

8 views (last 30 days)
Hi everybody,
I have performed a modal analysis to reconstruct a Frequency Response Function. Now I need to define the same FRF in Simulink. To do so I need the coefficients of the numerator and the denominator or alternatively the poles and the zeros. However, my FRF is a vector containing a complex number for each frequency value, so I do not have the expression in polynomial form or in zero-pole form.
If I start from the analytical expression of the FRF (sum of the current mode plus the quasi-static contribution of the upper and the seismographic contribution of the lower, summed for all the considered modes) is not easy to rewrite it in polynomial form or in zero-pole form.
Does anybody know a way to obtain the coefficients or the zeros and poles directly from the FRF vector? Or is there a quicker way to define my FRF in Simulink?
Thank you in advance,
Nicolò

Answers (1)

Saurav
Saurav on 15 Feb 2024
I understand that you want to define your frequency response function in Simulink, for which you want the coefficients of the numerator and denominator, as you do not have the zero-pole polynomial expression.
In order to rectify this issue, you need to use the “invfreqs” function, which identifies the continuous-time filter parameters from frequency response data.
If you are working with discrete-time filters, the analogous function is "invfreqz”.
Here is an example to illustrate the usage of “invfreqs”:
a = [1 2 3 2 1 4];
b = [1 2 3 2 3];
% compute the frequency response
[h,w] = freqs(b,a,64);
% estimate the transfer function coefficients from the frequency response,
% using 4th-order numerator and 5th-order denominator
[bb,aa] = invfreqs(h,w,4,5);
Also, Simulink does not have a built-in block that allows you to directly input a frequency response function (FRF) in terms of frequency and complex response data.
You can refer to the following documentation for more information on functions “invfreqs” and "invfreqz,” respectively:
  1. https://www.mathworks.com/help/signal/ref/invfreqs.html?s_tid=doc_ta
  2. https://www.mathworks.com/help/signal/ref/invfreqz.html
I hope this helps!

Products

Community Treasure Hunt

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

Start Hunting!