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!