Create a transfer function that looks like a polynomial

4 次查看(过去 30 天)
Hello everyone I have a function called C
C=inv(Psi'*Psi)*Psi'*E1;
The challege I am having is creating a transfer function from C called filterC that looks like the picture that is attached.
Note the picture attached is an example. My values will be different.
whenever I do prefilter=tf(C) I get values like in row form
Prefilter=tf(C)
Prefilter =
From input to output...
1: -0.8673
2: 0.3917
3: 0.2832
4: -0.6459
5: -0.08966
Static gain.
How can I get my transfer function to look similar to this?
Am I doing something wrong?
Any help is greatly appreciated.

采纳的回答

Ameer Hamza
Ameer Hamza 2020-11-5
编辑:Ameer Hamza 2020-11-5
If you have filter cofficient, then you need to pass following options to tf()
C = [1 -1.047 0.558 0.2608 -0.7408 0.09526];
sys = tf(C, 1, .01, 'variable', 'z^-1')
Result
>> sys
sys =
1 - 1.047 z^-1 + 0.558 z^-2 + 0.2608 z^-3 - 0.7408 z^-4 + 0.09526 z^-5
Sample time: 0.01 seconds
Discrete-time transfer function.
Note that, in this case, C must be a row vector.
In your question, you are using C as a column vector; therefore, you are getting five transfer functions with static gains.
  3 个评论
Heraldo Tello
Heraldo Tello 2020-11-5
编辑:Heraldo Tello 2020-11-5
I believe it should look like this
filterC = 1 - 0.8673 z^-1 + 0.3917 z^-2 + 0.2832 z^-3 + 0.6459 z^-4 + 0.08966 z^-5
Ameer Hamza
Ameer Hamza 2020-11-5
编辑:Ameer Hamza 2020-11-5
You can make it like this by adding a 1 at the beginning of cofficients vector
filterC=tf([1 C'], 1, .01, 'variable', 'z^-1')

请先登录,再进行评论。

更多回答(1 个)

Star Strider
Star Strider 2020-11-5
Since it is a ‘static gain’ object, it acts just like a simple amplifier. It has no frequency-dependent characteristics, so it has no variable associated with it.

类别

Help CenterFile Exchange 中查找有关 Classical Control Design 的更多信息

产品


版本

R2015b

Community Treasure Hunt

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

Start Hunting!

Translated by