Lab 1.3 — RC Low-Pass Filter
← Course 2 syllabus · Module 1 · Prev: « Lab 1.2 · Next: Lab 2.1 »
Goal
Build the simplest real filter — a first-order RC low-pass — and measure the two things that define it: its step response (an exponential charge/discharge with time constant \(\tau = RC\)) and its frequency behavior (attenuation above the cutoff \(f_c = 1/(2\pi RC)\)). This connects a physical circuit to the transfer function \(H(j\omega) = 1/(1 + j\omega RC)\) you will use for the rest of the course. The RC low-pass is the anti-aliasing filter in front of every ADC, the smoothing filter after every DAC, and the mental model behind every digital IIR filter — so measuring one by hand, and reconciling \(\tau\) against \(f_c\), is foundational for DSP/firmware work.
Recommended reading
- O-S&S Ch. 1–2 — LTI systems, the impulse/step response, and the exponential response of a first-order system; the RC low-pass is the canonical example. → Oppenheim, Signals and Systems
- Lyons Ch. 1 — the practitioner’s framing of signals and filtering that the rest of the DSP modules build on. Light read. → Lyons, Understanding DSP
- PEI Ch. 2 & 9 — RC time constants (circuit theory) and the filters chapter (RC low/high-pass, cutoff): the build-and-measure version of this lab.
- Course 1 Week 9 — complex analysis / Laplace & the transfer function as a function of a complex frequency; a light link here (poles and \(j\omega\) substitution), applied in earnest in Module 6.
Equipment & parts
- Siglent SDS1104X-E + two compensated 10× probes (CH1, CH2) — compensate both per Lab 1.1.
- Breadboard + jumpers.
- One resistor and one capacitor from the kit chosen to land the cutoff near 1 kHz — e.g. R = 1.6 kΩ, C = 100 nF (\(f_c \approx 1.0\) kHz), or R = 1 kΩ, C = 100 nF (\(f_c \approx 1.6\) kHz). Measure the actual R and C first (Fluke / LC1020E, Lab 0.2/Lab 0.3).
- Signal source: the SDS1104X-E base unit has no built-in signal generator. Drive the filter with the scope’s ≈1 kHz probe-compensation square wave for the step-response part. (Later you can revisit this with the MCP4725 DAC from Module 3 to sweep a clean sine — see Lab 3.3.)
Safety & don’t-break-it
- Signal levels are tiny (the probe-comp output is ~3 Vpp, current-limited) — no shock or part-damage risk in this lab. The care here is about correct measurement, not safety.
- Discharge the capacitor before measuring it on the LCR meter and before re-wiring (a small ceramic/film cap at these voltages holds negligible charge, but make it a habit for the electrolytics later).
- Share a common ground. Both probe ground clips and the probe-comp ground must tie to the same circuit ground node. Grounding the two probes at different nodes will inject error or short part of the circuit.
- Do not probe the comp terminal with the ground clip on the +. Same rule as Lab 1.2 — ground clip to circuit ground only.
- Keep the probes at 10× in the channel menu so amplitudes read correctly; a 1× mismatch will make the attenuation look wrong.
Background
A series R into a shunt C, output taken across C, is a first-order low-pass. In the time domain, driving it with a step of height \(V\) charges the capacitor exponentially:
\[v_\text{out}(t) = V\left(1 - e^{-t/\tau}\right), \qquad \tau = RC,\]
and the discharge (falling edge of the square wave) is \(v_\text{out}(t) = V e^{-t/\tau}\). One time constant reaches 63.2% of the final value; five time constants reach ~99%. Because the probe-comp square wave is a periodic step up/down, each half-period shows a charge or discharge curve — provided the half-period is long compared to \(\tau\) so it (nearly) settles.
In the frequency domain, the transfer function is
\[H(j\omega) = \frac{1}{1 + j\omega RC}, \qquad |H(j\omega)| = \frac{1}{\sqrt{1 + (\omega RC)^2}},\]
with the −3 dB cutoff where \(\omega RC = 1\):
\[f_c = \frac{1}{2\pi RC} = \frac{1}{2\pi\tau}.\]
At \(f_c\) the output is \(1/\sqrt{2} \approx 0.707\) of the input (−3 dB) and lags by 45°. Above \(f_c\) the magnitude rolls off at −20 dB/decade. The two views are the same fact: the time-domain \(\tau\) and the frequency-domain \(f_c\) are reciprocals up to the \(2\pi\). Since the square wave is a sum of a fundamental plus odd harmonics, the low-pass rounds its corners — the high harmonics that make the edges sharp are exactly what gets attenuated, which is why a low-passed square looks like the RC exponential.
Procedure
Part A — Measure the parts and predict.
- Measure the actual R (Fluke, ohms) and C (LC1020E at 1 kHz). Compute \(\tau = RC\) and \(f_c = 1/(2\pi RC)\) from the measured values, not the nominal ones.
Part B — Build the filter.
- On the breadboard: probe-comp output → R → node A (the RC junction) → C → ground. Output is node A (across C). Tie the probe-comp ground and the breadboard ground rail together.
- CH1 on the filter input (probe-comp output / R input side), CH2 on node A (the output). Both probes 10×, both ground clips to the common ground.
Part C — Step response (τ).
- Set the timebase to see one edge clearly — start ~100 µs/div (the comp period is ~1 ms, half-period ~500 µs). Trigger Edge, CH1, rising, level mid-amplitude, stable.
- On CH2 you should see the exponential charge on the rising half and discharge on the falling half. If it looks like a straight ramp or barely bends, your \(\tau\) is too small/large relative to the timebase — adjust V/div and timebase to frame one full exponential.
- Measure \(\tau\): use cursors to find where CH2 reaches 63.2% of its final value after the edge; the time from the edge to that point is \(\tau\). Alternatively use the scope’s automatic rise time (10–90%) and convert: \(t_{10\text{–}90} = \ln(9)\,\tau \approx 2.20\,\tau\).
Part D — Attenuation (frequency view, qualitative).
- Compare CH1 (input) and CH2 (output) amplitudes with automatic Vpp on each. The comp fundamental is ~1 kHz; if your \(f_c \approx 1\) kHz the output fundamental is attenuated and the corners are visibly rounded. Note the CH2/CH1 amplitude ratio.
- (Optional, cleaner) Drive the filter later with the MCP4725 DAC (Lab 3.3) generating a sine you can sweep in frequency, and measure \(|H|\) at several frequencies to trace the roll-off and confirm the −3 dB point at \(f_c\).
Deliverable & expected results
A two-channel capture of the step response (input square on CH1, exponential output on CH2) with the cursor marking the 63.2% point at \(\tau\), plus the measured \(\tau\), the derived \(f_c = 1/(2\pi\tau)\), and the input/output amplitude ratio at 1 kHz.
Using R = 1.6 kΩ, C = 100 nF as the worked example:
| Quantity | Predicted | Measured |
|---|---|---|
| \(\tau = RC\) | \(1.6\text{k} \times 100\text{n} = 160\ \mu\text{s}\) | … |
| \(f_c = 1/(2\pi RC)\) | \(\approx 995\ \text{Hz}\) | … |
| \(t_{10\text{–}90} = 2.20\,\tau\) | \(\approx 352\ \mu\text{s}\) | … |
| Output at 63.2% after edge | at \(t = \tau \approx 160\ \mu\text{s}\) | … |
| \(|H|\) at ~1 kHz fundamental | \(\approx 1/\sqrt{2} \approx 0.71\) (\(f_c\approx f\)) | … |
(If you use R = 1 kΩ, C = 100 nF instead: \(\tau = 100\ \mu\text{s}\), \(f_c \approx 1.59\) kHz.)
Analysis & reconciliation
Compute \(\tau\) and \(f_c\) by hand from the measured R and C, then compare to the scope-measured \(\tau\) (63.2% cursor and/or rise-time conversion). Expect a few-percent spread: resistor tolerance (±5%), capacitor tolerance (film ±5–10%, ceramic often worse and voltage-dependent), the LC1020E’s own accuracy, and — importantly — probe loading: the 10× probe adds ~10–15 pF at the output node, which slightly increases the effective C and thus \(\tau\). Check that your two independent \(\tau\) estimates (63.2% cursor vs. rise-time formula) agree; if they don’t, the frame or trigger isn’t clean. Finally, confirm the reciprocal relationship \(f_c = 1/(2\pi\tau)\) holds between your time-domain and frequency-domain numbers — this is the single most important sanity check tying the two descriptions of a filter together.
Going further
- Swap R (or C) to move \(f_c\) by 10× and confirm both \(\tau\) and the roll-off scale as predicted.
- Take the output across R instead of C to build a first-order high-pass (\(H = j\omega RC/(1+j\omega RC)\)) and contrast the step response (a decaying spike).
- Drive it with the MCP4725 sine (Lab 3.3) and measure \(|H|\) and phase at \(0.1f_c\), \(f_c\), and \(10f_c\) to plot a real Bode magnitude/phase curve — the bridge to the digital filter labs in Module 6, where this same \(H\) becomes an IIR filter with a pole (Course 1 Week 9).