Signal Operations: Shifting, Scaling & Reflection
The three elementary transformations of the independent variable, and the critical order-of-operations pitfall when combining them
Take any signal — a pulse, a sinusoid, a recorded voice — and you can delay it, speed it up, or play it in reverse. These three simple transformations are the atoms from which far more complex signal processing is built.
Operating on the Independent Variable
Once we can represent a signal as a function, a natural question arises: what happens when we modify the argument of that function? Signal operations on the independent variable are the most fundamental manipulations we perform on signals, appearing everywhere from delaying an audio signal to compressing a data stream to reflecting a signal for correlation.
Each operation produces a new signal y(t) from an original signal x(t) by substituting a modified expression for t in the argument of x. The signal's shape does not change; what changes is the mapping between those output values and the time axis. These operations rearrange when each value occurs, not what the values themselves are.
Time Shifting
Given a continuous-time signal x(t), the time-shifted signal is y(t) = x(t − t₀), where t₀ is a constant. If t₀ is positive, the signal is shifted to the right along the time axis — each feature occurs t₀ seconds later. We call this a delay. If t₀ is negative, the signal shifts left; this is an advance.
Whatever x did at time τ, y does at time τ + t₀. Time shifting is everywhere in practice: a digital audio delay line, a radar echo, the propagation delay of a signal through a cable — all are time shifts.
Time Scaling
Given x(t), the time-scaled signal is y(t) = x(at), where a is a positive constant. If |a|>1, the signal is compressed in time — everything happens faster. If 0<|a|<1, the signal is stretched.
Whatever x did at time τ, y does at time τ/a. Time scaling has a physical interpretation students sometimes find counterintuitive: speeding up a recording compresses it in time, which also raises its pitch (frequency content scales inversely with time) — the frequency-domain implications are explored later in the course.
Time Reflection
Given x(t), the reflected signal is y(t) = x(−t) — a time scaling with a=−1. Every feature is mirrored about the vertical axis (t=0): whatever happened at time τ now happens at time −τ.
Reflection is a special case of scaling — when a is negative in y(t)=x(at), we get both a reflection and a scaling. Recognizing this keeps the conceptual framework unified: there are really only two independent operations (shift and scale), with reflection being a particular choice of the scale factor.
Combining Shift and Scale: The Order Trap
When shift and scale appear together in y(t)=x(at − b), the transformation is no longer a simple delay followed by a simple compression. The order in which you apply them matters enormously, and getting it wrong is one of the most common student errors in this topic.
The safest technique is to locate key features by finding where the argument of x equals zero. Set at − b=0 and solve for t: t=b/a. That is the time instant at which y(t) has the same value as x(0). To find what value y takes at a particular time t₀, substitute t₀ into the argument: y(t₀)=x(at₀ − b) — no need to decompose into separate steps.
The expression x(at − b) is not the same as first shifting by b and then scaling by a. The correct decomposition is x(at − b)=x(a(t − b/a)): the signal is first shifted by b/a and then scaled by a. The substitution technique — solving at − b=0 for t — sidesteps this trap entirely.
- Substitute t = 5 into the argument of x: y(5) = x(5 − 2) = x(3).
- Evaluate x at 3: x(3) = 3² = 9.
- Therefore y(5) = 9.
- Substitute t = 3 into the argument of x: y(3) = x(2 × 3) = x(6).
- Evaluate x at 6: x(6) = 6² = 36.
- Therefore y(3) = 36.
Check your understanding
- Time shifting y(t) = x(t − t₀) translates the signal along the time axis: positive t₀ delays (right shift), negative t₀ advances (left shift).
- Time scaling y(t) = x(at) compresses the signal when |a| > 1 and stretches it when 0 < |a| < 1.
- Time reflection y(t) = x(−t) mirrors the signal about t = 0 and is a special case of scaling with a = −1.
- When combining shift and scale in y(t) = x(at − b), solve at − b = 0 for t to locate key features, and always evaluate the argument as written.