# timeresp

Time response for rational object and `rationalfit` function object

## Syntax

```[y,t] = timeresp(h,u,ts) ```

## Description

`[y,t] = timeresp(h,u,ts)` computes the output signal, `y`, that the rational function object, `h`, produces in response to the given input signal, `u`.

The input `h` is the handle of a rational function object returned by `rationalfit`. `ts` is a positive scalar value that specifies the sample time of the input signal.

The output `y` is the output signal. RF Toolbox™ software computes the value of the signal at the time samples in the vector `t` using the following equation.

`$Y\left(n\right)=sum\left(C.*X\left(n-Delay/ts\right)\right)+D*U\left(n-Delay/ts\right)$`

where

`$\begin{array}{l}X\left(n+1\right)=F*X\left(n\right)+G*U\left(n\right)\\ X\left(1\right)=0\\ F=\mathrm{exp}\left(A*ts\right)\\ G=\left(F-1\right)./A\end{array}$`

and `A`, `C`, `D`, and `Delay` are properties of the rational function object, `h`.

## Examples

collapse all

Define the input signal.

```SampleTime = 2e-11; OverSamplingFactor = 25; TotalSampleNumber = 2^12; InputTime = double((1:TotalSampleNumber)')*SampleTime; InputSignal = sign(randn(1, ... ceil(TotalSampleNumber/OverSamplingFactor))); InputSignal = repmat(InputSignal, [OverSamplingFactor, 1]); InputSignal = InputSignal(:);```

Create a rational function object.

```orig_data=read(rfdata.data,'default.s2p'); freq=orig_data.Freq; data=orig_data.S_Parameters(2,1,:); fit_data=rationalfit(freq,data);```

Compute the time response.

`[y,t]=timeresp(fit_data,InputSignal,SampleTime);`