Charles Henry wrote:
> z^-1 is the unit delay operator....
> so,
> Y(z)=z*X(z) means y(n) = x(n+1)
>
> while this is not impossible... it's non-causal. For real-time
> filtering, you can't already know the sample that comes next.
> I've been thinking about it for a little while now. I hope we can figure it
> out
oops, i got it backwards, thanks for the correction - poles at 0 are
unit delay, zeros at 0 are unit advance
but that means that rzero~ and czero~ as implemented in Pd have an extra
pole at 0, so implementing a biquad~ with czero~ and cpole~ will give a
2 sample delay compared to the "real" biquad~.
snippet of source of sigrzero_perform():
{for (i = 0; i < n; i++){
t_sample next = *in1++;
t_sample coef = *in2++;
*out++ = next - coef * last;
last = next;
}}
when coef = 0, then out = in : no delay or advance, the extra pole at 0
cancels out the zero at 0
> Chuck
Claude
--
http://claudiusmaximus.goto10.org
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list