# [music-dsp] basic question

Nigel Redmon earlevel at earlevel.com
Thu Sep 7 18:35:50 EDT 2000

> I think that's the wrong calculating sequence. You put a unit delay into
> your structure, that cranks up the transfer function.
> The original formulas are:
> Ylp(n) = F1 * Ybp(n) + Ylp(n-1),
> Ybp(n) = F1 * Yhp(n) + Ybp(n-1),
> Yhp(n) = X(n) - Yhp(n-1) - Damp *Ybp(n-1), where Yhp is the highpass out,
> etc. Damp = 1/ 2*Q.

Actually, in your notation, James said this:

Ylp(n) = F1 * Ybp(n-1) + Ylp(n-1),
Yhp(n) = X(n) - Ylp(n) - Damp * Ybp(n-1)
Ybp(n) = F1 * Yhp(n) + Ybp(n-1)

And Damp = 1/Q, (from memory, but didn't double-check it).

> This has to be reordered:
> >
> Yhp(n) = X(n) - Yhp(n-1) - Q *Ybp(n-1),
> Ybp(n) = F1 * Yhp(n) + Ybp(n-1),
> Ylp(n) = F1 * Ybp(n) + Ylp(n-1).
> In this order, it is computable and the result is conform to the transfer
> function.

Something's not quite right there. That filter won't work--I think you missed
something. First, the lowpass part isn't in the loop and implements a pole on
the unit circle.