Simulink^{®} models can process both discrete-time and continuous-time
signals. Models built with DSP System Toolbox™ software
are often intended to process discrete-time signals only. A discrete-time
signal is a sequence of values that correspond to particular instants
in time. The time instants at which the signal is defined are the
signal's *sample times*, and the associated signal
values are the signal's *samples*. Traditionally,
a discrete-time signal is considered to be undefined at points in
time between the sample times. For a periodically sampled signal,
the equal interval between any pair of consecutive sample times is
the signal's *sample period*, *T _{s}*.
The

The 7.5-second triangle wave segment below has a sample period of 0.5 second, and sample times of 0.0, 0.5, 1.0, 1.5, ...,7.5. The sample rate of the sequence is therefore 1/0.5, or 2 Hz.

A number of different terms are used to describe the characteristics of discrete-time signals found in Simulink models. These terms, which are listed in the following table, are frequently used to describe the way that various blocks operate on sample-based and frame-based signals.

Term | Symbol | Units | Notes |
---|---|---|---|

Sample period |
T_{si }T_{so} | Seconds | The time interval between consecutive samples in a sequence,
as the input to a block (T |

Frame period |
T_{fi }T_{fo} | Seconds | The time interval between consecutive frames in a sequence,
as the input to a block (T |

Signal period |
| Seconds | The time elapsed during a single repetition of a periodic signal. |

Sample frequency |
| Hz (samples per second) | The number of samples per unit time, F |

Frequency |
| Hz (cycles per second) | The number of repetitions per unit time of a periodic
signal or signal component, |

Nyquist rate |
| Hz (cycles per second) | The minimum sample rate that avoids aliasing, usually twice the highest frequency in the signal being sampled. |

Nyquist frequency |
| Hz (cycles per second) | Half the Nyquist rate. |

Normalized frequency |
| Two cycles per sample | Frequency (linear) of a periodic signal normalized to
half the sample rate, |

Angular frequency | Ω | Radians per second | Frequency of a periodic signal in angular units, Ω = 2π |

Digital (normalized angular) frequency | ω | Radians per sample | Frequency (angular) of a periodic signal normalized to
the sample rate, ω = Ω/ f._{n} |

Sample time parameter
in the Signal From Workspace block specifies the imported signal's
sample period. |

Simulink allows you to select from several different simulation solver algorithms. You can access these solver algorithms from a Simulink model:

In the Simulink model window, from the

**Simulation**menu, select**Model Configuration Parameters**. The**Configuration Parameters**dialog box opens.In the

**Select**pane, click**Solver**.The selections that you make here determine how discrete-time signals are processed in Simulink. The recommended

**Solver options**settings for signal processing simulations are**Type**:`Fixed-step`

**Solver**:`Discrete (no continuous states)`

**Fixed step size (fundamental sample time)**:`auto`

**Tasking mode for periodic sample times**:`SingleTasking`

You can automatically set the above solver options for all new models by using DSP Simulink model templates. For more information, see Configure the Simulink Environment for Signal Processing Models in the DSP System Toolbox documentation.

In `Fixed-step SingleTasking`

mode,
discrete-time signals differ from the prototype described in Time and Frequency Terminology by remaining defined between
sample times. For example, the representation of the discrete-time
triangle wave looks like this.

The above signal's value at *t*=3.112 seconds
is the same as the signal's value at *t*=3 seconds.
In `Fixed-step SingleTasking`

mode, a signal's
sample times are the instants where the signal is allowed to change
values, rather than where the signal is defined. Between the sample
times, the signal takes on the value at the previous sample time.

As a result, in `Fixed-step SingleTasking`

mode, Simulink permits
cross-rate operations such as the addition of two signals of different
rates. This is explained further in Cross-Rate Operations.

It is useful to know how the other solver options available in Simulink affect discrete-time signals. In particular, you should be aware of the properties of discrete-time signals under the following settings:

**Type:**`Fixed-step`

,**Mode:**`Auto`

When the `Fixed-step MultiTasking`

solver
is selected, discrete signals in Simulink are undefined between
sample times. Simulink generates an error when operations attempt
to reference the undefined region of a signal, as, for example, when
signals with different sample rates are added.

When the `Variable-step`

solver is
selected, discrete time signals remain defined between sample times,
just as in the `Fixed-step SingleTasking`

case
described in Recommended Settings for Discrete-Time Simulations. When
the `Variable-step`

solver is selected, cross-rate
operations are allowed by Simulink.

In the `Fixed-step Auto`

setting, Simulink automatically
selects a tasking mode, single-tasking or multitasking, that is best
suited to the model. SeeSimulink Tasking Mode for
a description of the criteria that Simulink uses to make this
decision. For the typical model containing multiple rates, Simulink selects
the multitasking mode.

When the `Fixed-step MultiTasking`

solver
is selected, discrete signals in Simulink are undefined between
sample times. Therefore, to perform cross-rate operations like the
addition of two signals with different sample rates, you must convert
the two signals to a common sample rate. Several blocks in the Signal
Operations and Multirate Filters libraries can accomplish this task.
See Convert Sample and Frame Rates in Simulink for
more information. Rate change can happen implicitly, depending on
diagnostic settings. See Multitask rate transition, Single task rate transition.
However, this is not recommended. By requiring explicit rate conversions
for cross-rate operations in discrete mode, Simulink helps you
to identify sample rate conversion issues early in the design process.

When the `Variable-step`

solver or ```
Fixed-step
SingleTasking
```

solver is selected, discrete time signals
remain defined between sample times. Therefore, if you sample the
signal with a rate or phase that is different from the signal's own
rate and phase, you will still measure meaningful values:

At the MATLAB

^{®}command line, type`ex_sum_tut1ex_sum_tut1`

.The Cross-Rate Sum Example model opens. This model sums two signals with different sample periods.

Double-click the upper Signal From Workspace block. The

**Block Parameters: Signal From Workspace**dialog box opens.Set the

**Sample time**parameter to`1`

.This creates a fast signal, (

*T*=1), with sample times 1, 2, 3, ..._{s}Double-click the lower Signal From Workspace block

Set the

**Sample time**parameter to`2`

.This creates a slow signal, (

*T*=2), with sample times 1, 3, 5, ..._{s}From the

**Display**menu choose**Sample Time**>**Colors**.Checking the

**Colors**option allows you to see the different sampling rates in action. For more information about the color coding of the sample times see View Sample Time Information in the Simulink documentation.Run the model.

**Note**Using the DSP Simulink model templates with cross-rate operations generates errors even though the`Fixed-step SingleTasking`

solver is selected. This is due to the fact that**Single task rate transition**is set to`error`

in the**Sample Time**pane of the**Diagnostics**section of the**Configuration Parameters**dialog box.At the MATLAB command line, type

`dsp_examples_yout`

.The following output is displayed:

dsp_examples_yout = 1 1 2 2 1 3 3 2 5 4 2 6 5 3 8 6 3 9 7 4 11 8 4 12 9 5 14 10 5 15 0 6 6

The first column of the matrix is the fast signal, (

*T*=1). The second column of the matrix is the slow signal (_{s}*T*=2). The third column is the sum of the two signals. As expected, the slow signal changes once every 2 seconds, half as often as the fast signal. Nevertheless, the slow signal is defined at every moment because Simulink holds the previous value of the slower signal during time instances that the block doesn't run._{s}

In general, for `Variable-step`

and ```
Fixed-step
SingleTasking
```

modes, when you measure the value of a
discrete signal between sample times, you are observing the value
of the signal at the previous sample time.

Was this topic helpful?