フィルターのクリア

How to calculate the norm of the transfer function in frequency domain?

11 ビュー (過去 30 日間)
Cola
Cola 2022 年 3 月 13 日
コメント済み: William Rose 2022 年 3 月 14 日
To calculate the norm of the transfer function by substituting s=jω is troublesome, especially for some complicated transfer functions. Is there a way to calculate the norm directly? Thanks!
For example, transfer funciton:
Substituting s=jω,
then,
Thus we can plot the figure in frequency domain,
Matlab code:
omega=0:0.01:10;
G1_N=0.25e-2 .* omega .^ 2 + 0.1e1;
G1_D=((2 .* omega) - 0.15e0 .* (omega .^ 3)) .^ 2 + (0.1e1 + 0.5e-2 .* (omega .^ 4) - (omega .^ 2)) .^ 2;
G1=sqrt(G1_N ./ G1_D);
plot(omega,G1)

採用された回答

William Rose
William Rose 2022 年 3 月 13 日
You don't need to multiply the function by its complex conjugate to get a purely real denominator. Just divide complex numerator by the complex denominator, to get a new complex number, and take the abs() of it.
  3 件のコメント
Cola
Cola 2022 年 3 月 14 日
編集済み: Cola 2022 年 3 月 14 日
@William Rose Thank you so much.
William Rose
William Rose 2022 年 3 月 14 日
@Cola, you're welcome, and good luck with your work.

サインインしてコメントする。

その他の回答 (1 件)

Paul
Paul 2022 年 3 月 13 日
Check out
doc tf
to learn how to create a transfer function (tf) object. Once you have G(s) defined as a tf object use bode() to compute its magnitude (and phase if desired)
doc bode
  3 件のコメント
Paul
Paul 2022 年 3 月 13 日
Actually, I was thinking of the Control System Toolbox. I'm not famiiar with the System ID toolbox.
If just wanting to use base Matlab, I'd probably use polyval().
Cola
Cola 2022 年 3 月 14 日
編集済み: Cola 2022 年 3 月 14 日
@Paul @William Rose Thanks to you. And we also can use the order 'freqs' to calculate the norm.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by