How to implement a transfer function with variable coefficients?

4 ビュー (過去 30 日間)
Moon Diver
Moon Diver 2023 年 1 月 4 日
編集済み: Bora Eryilmaz 2023 年 1 月 4 日
I want to implement two filters using transfer functions with variable coefficients and passing a gaussian noise. The two filters are:
F1: F(s) = ((5d)^(1/2))/(b+s);
F2: F1(s) = (((5d)^(1/2))*((b/sqrt(3))+s)) / (b+s)^2;
Where d and b vary every time step.
The implementations for the two filters in simulink are as follow:
For the first filter:
For the second one:
The obtained results have values of 10^-12, while the expected results should be between 10^-3 - 10.
Since it's the first time when I try t implement a tf with variable coefficients I am not sure the implementations are correct.

回答 (1 件)

Bora Eryilmaz
Bora Eryilmaz 2023 年 1 月 4 日
編集済み: Bora Eryilmaz 2023 年 1 月 4 日
The top part of your first diagram does not implement 1/(b+s).
To confirm this, label the output of the top sum block as e. Then you have
e = noise - b/s
Also, label the output that gets multiplied by sqrt(5d) as y. Then you have
y = e/s
Solving from noise to y gives
y = (noise - b/s) / s
which is obviously not
y = noise / (b+s)

カテゴリ

Help Center および File ExchangeDigital Filter Analysis についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by