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)
Show older comments
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ò
1 Comment
Mathieu NOE
on 9 Dec 2021
hello
try with invfreqs or invfreqz to get a FIR or IIR model from the measured complex FRF
Answers (1)
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:
- https://www.mathworks.com/help/signal/ref/invfreqs.html?s_tid=doc_ta
- https://www.mathworks.com/help/signal/ref/invfreqz.html
I hope this helps!
0 Comments
See Also
Categories
Find more on Analog Filters 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!