Signals and Time Transformations
A signal is a function that carries information through variation. In this course the independent variable is usually time, but the same ideas apply to space, sample index, or any ordered coordinate. A continuous-time signal is defined for real , while a discrete-time signal is defined only for integer . The distinction is not cosmetic: continuous-time formulas use integrals and real-valued delays, while discrete-time formulas use sums and integer shifts.
Time transformations are the first language for describing how signals move, stretch, flip, or line up with other signals. They also prepare the ground for convolution, sampling, Fourier analysis, and modulation. When a problem asks for or , it is asking how the input graph or sequence is re-indexed before values are read.
Definitions
A continuous-time signal is a mapping
A discrete-time signal is a mapping
Signals may be real-valued or complex-valued. A complex signal can be written as
where . Its magnitude and phase are
with quadrant handled by an atan2 convention in computation.
The most common elementary continuous-time signals are:
where is the unit step and is the unit impulse. The impulse is not an ordinary function; it is defined by its sifting property,
The analogous discrete-time signals are
The discrete-time impulse has the exact expansion property
In continuous time, an analogous representation is
These two identities are more than notation. They say that a signal can be rebuilt from shifted impulses weighted by its own values, which is the conceptual root of convolution.
A time transformation of a continuous-time signal often has the form
If , the signal is time-scaled by and shifted. If , it is also time-reversed. To locate features, solve the equation
for . A feature originally located at appears in at
For discrete time,
is only directly meaningful at integer values of . If and are integers, the expression samples the original sequence at integer indices. When , values of are skipped; when , the sequence is reversed; when changes, the sequence is shifted.
Even and odd parts are useful decompositions:
They satisfy
The same formulas hold for .
Key results
The order of visual operations matters when transforming . A reliable method is to transform the independent variable, not the picture by memory. Set , map old feature locations to new locations , and then copy the old value. This prevents the common left-right confusion caused by expressions such as .
The impulse scaling rule in continuous time is
More generally, if has simple roots ,
This rule has no direct counterpart for the discrete-time impulse, because a discrete impulse is an ordinary sequence value rather than a distribution spread over a real axis.
Step and impulse are connected by differentiation and integration:
In discrete time the corresponding relation is a first difference:
For complex exponentials, continuous-time and discrete-time signals again differ in an important way:
Continuous-time complex exponentials have distinct frequencies for all distinct real in . Discrete-time complex exponentials satisfy
for every integer , so discrete-time frequency is periodic with period .
Visual
| Operation | Continuous-time form | Effect on feature at or | Discrete-time caution |
|---|---|---|---|
| Delay | feature moves to | needs integer | |
| Advance | feature moves to | finite stored sequences may lose samples | |
| Reversal | feature moves to | reverses around | |
| Scaling | feature moves to | skips samples if | |
| Affine transform | feature moves to | integer indexing is required |
Worked example 1: transforming a rectangular pulse
Problem: Let
Find and describe .
Method:
- Introduce the old variable .
- The nonzero part of occurs when
- Substitute :
- Solve both sides carefully. From ,
From ,
- Combine the inequalities:
Therefore
Check: The endpoints of the original pulse are and . They map to
So maps to , and maps to . The interval is reversed but has the same endpoints. Since the pulse is constant over that interval, the reversal is not visually obvious. A nonconstant ramp would show the flip.
Worked example 2: decomposing a sequence into shifted impulses
Problem: Write the finite sequence
with all other samples equal to zero, as a sum of shifted impulses.
Method:
- Start from the discrete-time expansion
- Keep only the nonzero samples:
- Substitute the sample values:
Check each index:
- At , in the first term and the others are zero, so .
- At , the middle term gives .
- At , the last term gives .
- At all other integer , every impulse term is zero.
The answer is
Code
import numpy as np
import matplotlib.pyplot as plt
def x_ct(t):
return np.where((-1 <= t) & (t <= 3), 2.0, 0.0)
t = np.linspace(-4, 6, 1001)
y = x_ct(2 - t)
n = np.arange(-4, 5)
x_dt = np.zeros_like(n, dtype=float)
x_dt[n == -1] = 4
x_dt[n == 0] = -2
x_dt[n == 2] = 3
fig, ax = plt.subplots(1, 2, figsize=(10, 3))
ax[0].plot(t, y)
ax[0].set_title("y(t)=x(2-t)")
ax[0].grid(True)
ax[1].stem(n, x_dt)
ax[1].set_title("Discrete impulse expansion samples")
ax[1].grid(True)
plt.tight_layout()
plt.show()
Common pitfalls
- Shifting in the wrong direction. is delayed by , while is advanced by .
- Reversing before locating the new origin. For , solve rather than relying on a memorized picture operation.
- Treating as a tall narrow ordinary function in algebra. The continuous-time impulse is defined by integration behavior.
- Forgetting that is not a compressed version containing every sample. It reads only even-indexed samples of .
- Assuming discrete-time frequencies are unique. Frequencies separated by produce the same sequence.