In the context of discussing signal processing, the most general
definition of a system is similar to that of a function. A system is adevice, formula, rule, or some process that assigns an output signal from
some given class to each possible input signal chosen from some allowedclass. From this definition one can pose three interesting and practical
problems.

Analysis :
If the input signal and the system are given,find the output signal.

Control :
If the system and the output signal are given,find the input signal.

Synthesis :
If the input signal and output signal are given,find the system.
The definition of input and output signal can be quite diverse. They
could be scalars, vectors, functions, functionals, or other objects.
All three of these problems are important, but analysis is probably the
most basic and its study usually precedes that of the other two. Analysisusually results in a unique solution. Control is often unique but there
are some problems where several inputs would give the same output.Synthesis is seldom unique. There are usually many possible systems that
will give the same output for a given input.
In order to develop tools for analysis, control, and design of
discretetime systems, specific definitions, restrictions, andclassifications must be made. It is the explicit statement of what a
system is, not what it isn't, that allows a descriptive theory and designmethods to be developed.
Classifications
The basic classifications of signal processing systems are defined and
listed here. We will restrict ourselves to discretetime systems thathave ordered sequences of real or complex numbers as inputs and outputs
and will denote the input sequence by
$x\left(n\right)$ and the output sequence by
$y\left(n\right)$ and show the process of the system by
$x\left(n\right)\to y\left(n\right)$ .
Although the independent variable
$n$ could represent any physical
variable, our most common usages causes us to generically call it time butthe results obtained certainly are not restricted to this interpretation.

Linear, A system is classified as linear if two conditions are
true.
 If
$x\left(n\right)\to y\left(n\right)$ then
$a\phantom{\rule{0.166667em}{0ex}}x\left(n\right)\to a\phantom{\rule{0.166667em}{0ex}}y\left(n\right)$ for all
$a$ . This property is called homogeneity or scaling.
 If
${x}_{1}\left(n\right)\to {y}_{1}\left(n\right)$ and
${x}_{2}\left(n\right)\to {y}_{2}\left(n\right)$ ,
then
$({x}_{1}\left(n\right)+{x}_{2}\left(n\right))\to ({y}_{1}\left(n\right)+{y}_{2}\left(n\right))$ for all
${x}_{1}$ and
${x}_{2}$ . This property is called superposition or
additivity.
If a system does not satisfy both of these conditions for all inputs, it
is classified as nonlinear. For most practical systems, one of theseconditions implies the other. Note that a linear system must give a zero
output for a zero input.

Time Invariant , also called index invariant or shift invariant.
A system is classified as time invariant if
$x(n+k)\to y(n+k)$ for any integer
$k$ . This states that the system responds the same
way regardless of when the input is applied. In most cases, the systemitself is not a function of time.

Stable . A system is called boundedinput boundedoutput stable
if for all bounded inputs, the corresponding outputs are bounded. This
means that the output must remain bounded even for inputs artificiallyconstructed to maximize a particular system's output.

Causal . A system is classified as causal if the output of a
system does not precede the input. For linear systems this means that theimpulse response of a system is zero for time before the input. This
concept implies the interpretation of
$n$ as time even though it may not
be. A system is semicausal if after a finite shift in time, the impulseresponse is zero for negative time. If the impulse response is nonzero
for
$n\to \infty $ , the system is absolutely noncausal. Delays
are simple to realize in discretetime systems and semicausal systems canoften be made realizable if a time delay can be tolerated.

RealTime . A discretetime system can operate in “realtime" if
an output value in the output sequence can be calculated by the systembefore the next input arrives. If this is not possible, the input and
output must be stored in blocks and the system operates in “batch" mode.In batch mode, each output value can depend on all of the input values and
the concept of causality does not apply.