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.
0 个评论
采纳的回答
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 个评论
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
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.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Classical Control Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!