[music-dsp] Re: Revisiting C++ Filtering Classes

Martin Eisenberg martin.eisenberg at udo.edu
Wed Jun 3 11:01:43 EDT 2009


Vinnie wrote:

> placing the intended conjugates (well, the one that lies
> above the real axis) in the implied pair list

Which of the conjugates you choose is immaterial because you only
apply real() and norm() to the number.

>> Trouble is that the complex division in BilinearTransform()
>> can still yield a nonzero imaginary part even if the input is
>> real.
>
> UGH! I just figured out the implications of this. I calculate
> the poles in the s-plane first and then do the transformation.
> So I cannot be sure if a singleton in the s plane will remain
> so after the transform.

No, you've overinterpreting the problem. I noted that the
numerical BLT does not preserve realness, but it's still one
number in and one out. There is no problem as long as you
preserve the logical information about singleness separately,
which you just decided to do anyway.

> I have one list of complex conjugate pairs, and another list
> of complex singletons, is there a one to one mapping after the
> bilinear transformation of the pairs to a new set of conjugate
> pairs? Or do they lose the conjugate property?

They may, if you store both and remap them independently -- in
fact, if you explicitly compute both members of a pair they may
be out of conjugacy from the start. But it's a red herring. If
you create the stage from just one (or the other) member just
like it's been all along, conjugacy is automatic.

> Do singletons become pairs? They certainly can take on an
> imaginary component...

You'll throw it away, it's fine.


Martin



More information about the music-dsp mailing list