The Filter Remembers Its Output — FIR → IIR
Remember what feedback did to our delay? Now we use the same idea inside a filter, at sample level. Instead of using only previous inputs, we let a previous output contribute to the next result.
1. The simplest feedback filter
previous output
feedback coefficient
The output is stored for one sample, multiplied by a, and added back into the next calculation.
2. Trigger one impulse — watch it keep going
3. FIR versus IIR — same idea as delay feedback
Use current and previous input samples. Once the impulse has passed all taps, the response ends.
Previous outputs can feed back into the next output. The response can persist indefinitely.
Delay without feedback → one repeat. Delay with feedback → repeated returns. Same conceptual move.
On our first filter page we saw coefficients labelled b0, b1, b2, a1 and a2. At the time they looked like a collection of fairly arbitrary numbers. We can now see what the two groups are doing.
b coefficients = feedforward / input taps
They multiply the current and stored input samples:
x[n], x[n−1], x[n−2]...
a coefficients = feedback / previous outputs
They multiply stored output samples:
y[n−1], y[n−2]...
So the apparently complicated equation is really just the two ideas we have already built:
FIR-style input taps + IIR feedback = the complete recursive filter.
Small technical note: the feedback terms are commonly written with a minus sign, although implementations may store the coefficient signs differently. The useful idea to remember here is b = feedforward and a = feedback.
4. Turn feedback into resonance
Feedback becomes especially useful when the loop is frequency-selective. Certain frequencies can be reinforced every time they circulate, producing a resonant peak.
When we used a very short delay with feedback, the individual repeats merged together until we couldn't hear them separately. Instead, energy circulating around the loop reinforced specific frequencies, causing the system to ring at a distinct pitch.
That was the foundation of Karplus-Strong physical modelling. Here, we are using that exact same principle at the sample level: feedback repeatedly reinforces particular frequencies, creating filter resonance.
Why the sign difference?
You might notice some equations write feedback with a plus sign (+ a·y[n−1]) while general DSP textbooks use a minus sign (− a1·y[n−1]). Mathematically, a minus sign makes positive feedback values subtract from the input, which is convenient for keeping phase relationships consistent in filter design. Code implementations often store the negative sign directly inside the coefficient itself so the DSP loop can stick to simple addition. The core mechanic remains identical: output feeds back into input.
The Core DSP Takeaway:
The same small set of ideas keeps reappearing in different contexts.
Delay, filtering, resonance, physical modelling, phasing, and reverb may sound like completely different audio effects, but under the hood, they are all built by rearranging four primitive operations:
STORE, MULTIPLY, ADD, and FEEDBACK.
5. Hear the resonance grow
Noise makes the resonant frequency easy to hear. Increase resonance and the broad noise starts to develop an obvious pitched ring around the selected frequency.
6. What changes as feedback rises?
No recursive contribution. Output only reflects the direct input path.
Feedback decays quickly.
Long memory / strong ringing.
Very long persistence; system approaches sustained oscillation.
Energy grows on every pass → unstable.
7. Back to the DSP toolbox
We have not invented a new operation. We have simply changed where the stored value comes from: previous outputs now participate too.