Signals and Systems

Signals convey information. Systems transform signals.

Understanding of these will be developed by exploring their structure (syntax), and their interpretation (semantics). The relationship between the input and output is a declarative description of the system, while the process for transforming signals into outputs is an imperative description of the system. We'll model signals and systems mathematically, as functions. A signal maps a domain, such as time, or space, or light intensity, onto a range. A system works similarly, mapping signals from its domain onto output signals. The domain and range are both sets of signals, or signal spaces.

Signals.

Signals often carry information, as temporal or spatial patterns, which can be embodied in many different types of media.

Audio signals.

Sound can be represented as a function, Sound:Time >PressureSound:Time\; -> Pressure, where PressurePressure is the set of all possible air pressures, and TimeTime is a set expressing the duration of the signal.

One second of a voice signal, can be described Voice:[0,1] >PressureVoice:[0,1]\; -> Pressure, and is often visualized as a waveform, which can be plotted as a function. Because computers cannot handle the full range of numbers implied by [0,1][0,1], or the seemingly continuous nature of a waveform, what happens instead is that, roughly 8000 numbers (perhaps members of BinBin*), per second are sampled into what is known as a discrete time signal, as they are defined only at discrete points in time.

A discrete, one second computer signal, can be thought of as a function that maps discrete time to 16bit integers: ComputerVoice:DiscreteTime>Ints16ComputerVoice:DiscreteTime -> Ints16.

  • Their continuous counterparts work as you'd expect.

Hardware handles the task of turning the ComputerVoiceComputerVoice function into a SoundSound function:

HW:((CompVoice:DiscTime>Ints16)>(Voice:[0,1]>P))HW: ((CompVoice:DiscTime -> Ints16) -> (Voice:[0,1] -> P)).

The sound of an ideal 440Hz tone over an infinite RealReal valued time-interval, can be modeled as PureTone:Reals>RealsPureTone: Reals -> Reals, where the function for converting time to pressure is t Reals, PureTone(t)=Psin(2π×440t)\forall t \in\; Reals,\; PureTone(t) = Psin(2 \pi \times 440t).

Images.

Grayscale images are represented by the function:

Image:[0,11]>[0,Bmax]Image: [0, 11] -> [0, B_{max}].

More generally:

Image:VerticalSpace×HorizontalSpace>IntensityImage: VerticalSpace \times HorizontalSpace -> Intensity, where IntensityIntensity =[black,white] = [black, white], is the intensity range measured in some scale.

Color pictures, are sometimes measured in terms of RGB values, and so a color picture is represented by the function:

ColorImage:VerticalSpace×HorizontalSpace>IntensityColorImage: VerticalSpace \times HorizontalSpace -> Intensity, with the values assigned by the function at any point (x,y)(x,y) is given by the triple (r,g,b)Intensity(r, g, b) \in Intensity: (r,g,b)=ColorImage(x,y)(r, g,b ) = ColorImage(x, y). Depending on the image, the spatial domain may be different, and different ranges of intensity, and the way color is assigned to points in the domain. For instance, a computer represents color images using colormap tables:

Display:ColorMapIndexes>IntensityDisplay: ColorMapIndexes -> Intensity: (r,g,b)=Display(x,y)(r, g, b) = Display(x, y).

Since computers are finite, storing images requires discretizing domains and ranges, so that your computer may operate like so:

ComputerImage:DiscreteVSpace×DiscreteHSpace>Ints8ComputerImage: DiscreteVSpace \times DiscreteHSpace -> Ints8, where: DiscreteVSpace={1,2,,300}DiscreteVSpace = \{1, 2, \ldots, 300\}. DiscreteHSpace={1,2,,300}DiscreteHSpace = \{1, 2, \ldots, 300\}. Ints8={0,1,,255}Ints8 = \{0, 1, \ldots, 255\}.

ComputerImageComputerImage can be said to store 200×300200 \times 300 pixels, with a pixel being a picture element, the value of which is ComputerImage(row,column)Ints8ComputerImage(row, column) \in Ints8, where rowDiscreteVerticalSpace, and column DiscreteHorizontalSpacerow \in DiscreteVerticalSpace,\;and \;column\; \in DiscreteHorizontalSpace.

A way that computers store images, represented by a function, is:

ColorComputerImage:DiscreteVSpace×DiscreteHSpace>Ints8ColorComputerImage: DiscreteVSpace \times DiscreteHSpace -> Ints8

Video Signals

A video, is a sequence of images, with a display rate, typically frames per second, is a signal, the domain of which is discrete time, and can be represented as FrameTimes={0,1/30,2/30,}FrameTimes = \{0, 1/30, 2/30, \ldots \}, and the range of which is an ImageSetImageSet.

Video:FrameTimes>ImageSetVideo: FrameTimes -> ImageSet.

For analog videos:

VideoFrame:DiscreteVSpace×DiscreteHSpace>IntensityVideoFrame: DiscreteVSpace \times DiscreteHSpace -> Intensity.

For any time tFrameTimest \in FrameTimes, the image Video(t)ImageSetVideo(t) \in ImageSet, or, alternatively, we can say:

AltVideo:FrameTimes×DiscreteVSpace×DiscreteHSpace>IntensityAltVideo: FrameTimes \times DiscreteVSpace \times DiscreteHSpace -> Intensity
  • (r,g,b)=AltVideo(t,x,y)(r,g,b) = AltVideo(t,x,y)

If these videos represent the same video, then tFrameTimes\forall t \in FrameTimes, and also (x,y)DiscreteVSpace×DiscreteHSpace\forall (x, y) \in DiscreteVSpace \times DiscreteHSpace:

(Video(t))(x,y)=AltVideo(t,x,y)(Video(t))(x,y) = AltVideo(t,x,y).

Signals Representing Physical Attributes

Changes in the attributes of physical objects are represented as functions of time and or space:

The position of an airplane: Position:Time>Reals3Position: Time -> Reals^{3}, where tTime\forall t \in Time, where PositionVelocity(t)=(x(t),y(t),z(t),vx(t),vy(t),vz(t))PositionVelocity(t) = (x(t), y(t), z(t),v_x(t), v_y(t), v_z(t)) gives the position and velocity at tTimet \in Time.

On the other hand, a pendulum is represented by:

θ:Time[π,π]\theta : Time \rightarrow [-\pi, \pi], where θ(t)\theta (t) is the angle at time tt.

Or perhaps, a robot:

(θu,θl):Time[π,π]2(\theta_u, \theta_l) : Time \rightarrow [-\pi, \pi]^2, where θu(t),θl(t)\theta_u (t), \theta_l (t) are the angles made with the upper and lower arm at time tt.

Sequences

Temporal or spatial information can be represented by functions of time or space variables, and as well, can be represented by sequences of symbols, occurring as a representation of data, or an event stream.

Binary Files

An N-bit file b1,b2,,Bnb_1, b_2, \ldots, B_n, where each biBin={0,1}b_i \in Bin = \{0,1\}, can be regarded as a funciton File:{1,2,,N}>BinFile: \{1,2,\ldots, N\} -> Bin, where the assignment File(n)=bnFile(n) = b_n for every n{1,,N }n \in \{1, \ldots, N\; \}. We can also take the range to be EnglishWordsEnglishWords, with an N-word long English text being a function

EnglishText:{1,2,,N}>EnglishWordsEnglishText: \{1,2,\ldots, N\} -> EnglishWords.

Typically, data sequences are functions of the form Data:Indices>SymbolsData: Indices -> Symbols, where IndicesNatsIndices \subset Nats. An advantage of this is Data can be a discrete-time signal, however IndicesIndices do not represent uniformly spaced instances of time. However, we can say that if m,nIndicesm,n \in Indices, with m<nm < n, then the mthm^{th} symbol Data(m)Data(m) occurs before Data(n)Data(n), but just not the amount of time elapsed between them.

The other representation, event streams or traces, are formed from a log of significant events, and are functions of the form EventStream:Indices>EventSetEventStream: Indices -> EventSet.

Discrete Signals And Sampling

Continuous time signals are considered so, because TimeTime is a continous domain of the form [α,β]Reals[\alpha, \beta] \subset Reals, and as well, ImageImage is a continuous 2-dimensional shape of the form [a,b]×[c,d]Reals2[a,b] \times [c,d] \subset Reals^2

CC BY-SA 4.0 Septimia Zenobia. Last modified: July 17, 2023. Website built with Franklin.jl and the Julia programming language.