[Fpga-synth] Simple Filter Question
Magnus Danielson
magnus at rubidium.dyndns.org
Tue Jun 19 00:37:39 CEST 2007
From: Scott Gravenhorst <music.maker at gte.net>
Subject: [Fpga-synth] Simple Filter Question
Date: Mon, 18 Jun 2007 13:35:14 -0700
Message-ID: <200706182035.l5IKZEcr003383 at linux7.lan>
Hi Scott,
> The terrormouse PDF specifies that the filter used at the end of the delay
> line is a "simple first order IIR". It then gives this to describe it:
>
> -1
> 0.8995 + 0.1087z
> H(z) = ------------------
> -1
> 1 + 0.0136z
>
> >From what I understand, this makes:
>
> a0 = 0.8995 a1 = 0.1087
> b1 = -0.0136
>
> There was no explanation for the values chosen except that they "sound like
> an acoustic guitar string".
>
> What I don't understand is that this matches neither a first order lowpass
> nor highpass. Lowpass should have only a0 and b1 terms and highpass has a1
> = - a0 (at least).
>
> I am assuming this is supposed to be a lowpass filter of some kind.
>
> When I did my testing, I used the first order lowpass as described at
> www.dspguide.com, in the recursive filters PDF. It's not the same filter,
> but it works.
>
> A resource that explains this would be most appreciated ... ?
Will the list-admin do?
Hmm...
0.8995 z + 0.1087
H(z) = -----------------
z + 0.0136
z_z = -0.1087/0.8995 = -0.1208
z_p = -0.0136
i.e.
z + 0.1208
H(z) = 0.8995 ----------
z + 0.0136
Now, what is this creature? Plot the pole and zero in the z-plane
^ jw
|
| _
| o
---o---x-+-------->
|
|
|
This is a clear case of a low-pass filter.
For low frequency (i.e. z = 1) the pole is nearer than the zero, so the pole
dominates and the gain for this case is 0.9947 (insert z = 1 in H(z)).
As you move along the unit circle you come closer to the zero and at the
Nyquist frequency (i.e. z = -1) the zero dominates and the gain is 0.8017
(insert z = -1 in H(z)). This is similar to a shelving filter.
Midways we have a gain of 0.9125 (insert z = j in H(z) and take absolute
value of complex value) at half the Nyquist frequency.
You can view this as a shelving filter. which lowers the high frequency with
about -1.9 dB.
Did that make any sense?
Cheers,
Magnus
More information about the Fpga-synth
mailing list