A plucked string is one of the friendliest systems you will meet: it has a clean transfer function, and the way it sounds — bright pluck, pure sustain — is written entirely in the placement of its poles.
The whole idea in one line. Plucking the string is, to a good approximation, exciting it with an impulse δ(t). The response of any linear system to δ(t) is, by definition, its impulse response h(t). So the sound of a plucked string is h(t): pluck = δ(t) → sound = h(t).
1. The string as a transfer function
A string vibrates in modes: a fundamental at f0 plus harmonics at 2f0, 3f0, … Each mode is a lightly-damped second-order resonator with a complex-conjugate pair of poles:
Hn(s) = An·nω0 / [ (s+σn)² + (nω0)² ] , poles at s = −σn ± j·nω0
The detail that makes it sound plucked: the damping σn is not the same for every mode. Higher harmonics fade faster, so their poles sit further left:
σn = σ0 + β(n−1) (higher n ⇒ poles further left ⇒ faster decay)
The whole string is the sum of these resonators — a transient (not a periodic waveform), each harmonic fading at its own rate:
h(t) = Σn An e−σnt sin(nω0 t) , f0 = ω0 / 2π (here 220 Hz, an A3)
2. Why it sounds plucked: each mode decays at its own rate
If we damp every mode equally, all harmonics ring on together and the string is buzzy and shrill — more reed organ than guitar. Let the high modes die faster and the very same formula sounds like a real plucked string. Compare:
Equal damping (σn constant: buzzy, not a guitar) — [play/download]
Frequency-dependent damping (σn grows with n: a real pluck) — [play/download]
This is exactly the trick behind the classic Karplus–Strong string: a low-pass in its feedback loop loses the highs faster than the lows. Here it comes straight from the poles — the high modes simply sit further left in the s-plane.

3. Where you pluck colours the sound: a comb filter
The amplitudes An are set above all by where you pluck. Pluck at a fraction p of the length and mode n is born with amplitude
An = sin(nπp) / n
That sin(nπp) is a comb filter: any harmonic with a node at the pluck point is a zero of the spectrum. Near the bridge (small p): bright, twangy. At the middle (p = 0.5): every even harmonic vanishes — hollow. Same string, only the pluck point moved:
Near the bridge (p = 0.10: bright, twangy) — [play/download]
At the middle (p = 0.50: hollow, only odd harmonics) — [play/download]

This is one of the Jaffe–Smith extensions of Karplus–Strong (1983): moving the pluck point is exactly inserting a comb filter — much of what makes a real guitar recognisable.
4. One more first-order system: the air
The sound still travels through air, which absorbs highs more than lows — a first-order low-pass filter:
Hair(s) = ωc / (s + ωc) , |H(jω)| = ωc / √(ω² + ωc²) (fc = 1.5 kHz)
Plucked string (before the air) — [play/download]
After the air (a touch warmer) — [play/download]
5. A little tune
Change f0 for each note — same string model. The opening of Beethoven’s Ode to Joy, fifteen plucked notes from one transfer function:
Ode to Joy — [play/download]
Where this meets the syllabus
This toy instrument is a compact tour of continuous-time Signals and Systems:
- Second-order systems & poles — each mode is a resonator with poles at −σn ± jnω0.
- Transfer function H(s) & the Laplace transform — the string is a sum of such Hn(s).
- Impulse response — the pluck is an impulse, so what we hear is h(t).
- Pole placement & damping — high modes have larger σn (poles further left), so they decay faster — the plucked timbre (the Karplus–Strong loop filter).
- Fourier series, zeros & comb filtering — the amplitudes sin(nπp)/n are a comb whose zeros are the harmonics with a node at the pluck point.
- First-order low-pass & frequency response — the air is ωc/(s+ωc), −6 dB/octave.
- Stability — σn > 0 puts every pole in the left half-plane, so the response decays.
Exam-style question
A single string mode has H(s) = Aω / [ (s+σ)² + ω² ].
(a) What is its impulse response, and where are its poles?
(b) The air is modelled by Hair(s) = ωc/(s+ωc). What is its impulse response?
(c) Explain, from |Hair(jω)|, why the filter makes the string sound less harsh.
Answers. (a) h(t) = A e−σt sin(ωt) for t ≥ 0; a decaying sinusoid, with poles at s = −σ ± jω (a complex-conjugate pair in the left half-plane). (b) hair(t) = ωc e−ωct — a decaying exponential (the classic RC response). (c) |Hair(jω)| = ωc/√(ω²+ωc²) is ≈1 for ω ≪ ωc and falls as ωc/ω (−6 dB/oct) above it. The high harmonics — the ones that make the tone harsh — are attenuated most, leaving a warmer tone.
The whole instrument in MATLAB
Fs = 44100; f0 = 220; w0 = 2*pi*f0; T = 1.5; t = (0:1/Fs:T-1/Fs)'; sigma0 = 2; beta = 4; % sigma_n = sigma0 + beta*(n-1) p = 0.20; % pluck position (fraction of length) % --- the string: pluck-position comb + per-mode damping --- h = zeros(size(t)); for n = 1:floor(0.45*Fs/f0) A = sin(n*pi*p)/n; % comb: zeros at nodes of the pluck point sig = sigma0 + beta*(n-1); % frequency-dependent damping h = h + A*exp(-sig*t).*sin(n*w0*t); % 2nd-order mode, pole at -sig +/- j*n*w0 end % --- the air: one more first-order low-pass H(s) = wc/(s+wc) --- fc = 1500; wc = 2*pi*fc; hf = lsim(tf(wc,[1 wc]), h, t); soundsc(h, Fs); % the plucked string soundsc(hf, Fs); % a touch warmer through the air
References & credits
- K. Karplus and A. Strong, “Digital Synthesis of Plucked-String and Drum Timbres,” Computer Music Journal, vol. 7, no. 2, pp. 43–55, 1983.
- D. A. Jaffe and J. O. Smith, “Extensions of the Karplus–Strong Plucked-String Algorithm,” Computer Music Journal, vol. 7, no. 2, pp. 56–69, 1983. (the pluck-position comb used here)
- E. A. Lee and P. Varaiya, Structure and Interpretation of Signals and Systems, 2nd ed., 2011 — EECS 20N lab, UC Berkeley.
- J. O. Smith III, Physical Audio Signal Processing, CCRMA, Stanford.
- Melody: L. van Beethoven, “Ode to Joy” (Symphony No. 9, 1824) — public domain.
- Course text: D. Valério, Sinais e Sistemas (SSM, Instituto Superior Técnico).
Continuous-time re-modelling, audio and notes by Carlos Cardeira (2026), inspired by the Karplus–Strong algorithm, the Jaffe–Smith extensions and the Berkeley EECS 20N lab. Part of the Signals and Systems Curiosities series.