Access transfer function data


[num,den] = tfdata(sys)
[num,den,Ts] = tfdata(sys)


[num,den] = tfdata(sys) returns the numerator(s) and denominator(s) of the transfer function for the TF, SS or ZPK model (or LTI array of TF, SS or ZPK models) sys. For single LTI models, the outputs num and den of tfdata are cell arrays with the following characteristics:

  • num and den have as many rows as outputs and as many columns as inputs.

  • The (i,j) entries num{i,j} and den{i,j} are row vectors specifying the numerator and denominator coefficients of the transfer function from input j to output i. These coefficients are ordered in descending powers of s or z.

For arrays sys of LTI models, num and den are multidimensional cell arrays with the same sizes as sys.

If sys is a state-space or zero-pole-gain model, it is first converted to transfer function form using tf. For more information on the format of transfer function model data, see the tf reference page.

For SISO transfer functions, the syntax

[num,den] = tfdata(sys,'v')

forces tfdata to return the numerator and denominator directly as row vectors rather than as cell arrays (see example below).

[num,den,Ts] = tfdata(sys) also returns the sample time Ts.

[num,den,Ts,sdnum,sdden]=tfdata(sys) also returns the uncertainties in the numerator and denominator coefficients of identified system sys. sdnum{i,j}(k) is the 1 standard uncertainty in the value num{i,j}(k) and sdden{i,j}(k) is the 1 standard uncertainty in the value den{i,j}(k). If sys does not contain uncertainty information, sdnum and sdden are empty ([]).

[num,den,Ts,...]=tfdata(sys,J1,...,Jn) extracts the data for the (J1,...,JN)entry in the model array sys.

You can access the remaining LTI properties of sys with get or by direct referencing, for example,



Example 1

Given the SISO transfer function

h = tf([1 1],[1 2 5])

you can extract the numerator and denominator coefficients by typing

[num,den] = tfdata(h,'v')
num =
     0     1     1
den =
     1     2     5

This syntax returns two row vectors.

If you turn h into a MIMO transfer function by typing

H = [h ; tf(1,[1 1])]

the command

[num,den] = tfdata(H)

now returns two cell arrays with the numerator/denominator data for each SISO entry. Use celldisp to visualize this data. Type


This command returns the numerator vectors of the entries of H.

num{1} =
     0     1     1
num{2} =
     0     1

Similarly, for the denominators, type

den{1} =
     1     2     5
den{2} =
     1     1

Example 2

Extract the numerator, denominator and their standard deviations for a 2-input, 1 output identified transfer function.

load iddata7

transfer function model

sys1 = tfest(z7, 2, 1, 'InputDelay',[1 0]);

an equivalent process model

sys2 = procest(z7, {'P2UZ', 'P2UZ'}, 'InputDelay',[1 0]);

[num1, den1, ~, dnum1, dden1] = tfdata(sys1);
[num2, den2, ~, dnum2, dden2] = tfdata(sys2);

See Also

| | |

Introduced before R2006a