diff options
Diffstat (limited to 'macros/tf2zp.sci')
-rw-r--r-- | macros/tf2zp.sci | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/macros/tf2zp.sci b/macros/tf2zp.sci index ca10fd4..36d892f 100644 --- a/macros/tf2zp.sci +++ b/macros/tf2zp.sci @@ -1,34 +1,29 @@ // Copyright (C) 2018 - IIT Bombay - FOSSEE -// // This file must be used under the terms of the CeCILL. // This source file is licensed as described in the file COPYING, which // you should have received as part of this distribution. The terms // are also available at // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt -//Original contribution: FOSSEE, IIT Bombay +// Original Source : https://octave.sourceforge.io/signal/ +// Modifieded by: Abinash Singh Under FOSSEE Internship +// Date of Modification: 3 Feb 2024 +// Organization: FOSSEE, IIT Bombay // Email: toolbox@scilab.in - function [z,p,k]=tf2zp(num,den) - // Transfer function to zero pole conversion - //Calling Sequence //[z,p,k]= tf2zp(b,a); - //Parameters //z=zeros of the corrsponding tf //p=poles of the corresponding tf //k=gain of the tf //b=vector containing the numerator coefficients of the transfer function in descending powers of s/z //a=vector containing the denominator coefficients of the transfer function in descending powers of s/z - //For discrete-time transfer functions, it is highly recommended to //make the length of the numerator and denominator equal to ensure //correct results. You can do this using the function EQTFLENGTH in //the Signal Processing Toolbox. - //Author : Debdeep Dey - //Example : //b = [1 2 3]; //a = [4 5 6]; @@ -60,8 +55,9 @@ function [z,p,k]=tf2zp(num,den) if(rd>1) then error("Denominator must be row vector"); - elseif np>cod then - error("Improper transfer function"); + + // elseif np>cod then + // error("Improper transfer function"); it is a bug it should be removed end if (~isempty(den)) then coef=den(1); @@ -98,3 +94,9 @@ function [z,p,k]=tf2zp(num,den) end z=roots(num); endfunction +/* +Note : This function is tested with Octave's outputs as a reference. +[z p k] = tf2zp([9.6500e+02 -1.1773e+05 3.8648e+06 -4.5127e+071.5581e+08],[ 1 -3 2]) //pass +[z p k] = tf2zp([1 2 3 4],[ 1 -3 2]) //pass +[z p k] = tf2zp([4 5 6],[1]) // pass +*/
\ No newline at end of file |