From: HeavySide on
Thanks for your reply, Robert.

>it's "flat". i dunno if i would call that "lossless". if the gain
>was a constant 1/2, would this be lossless or not?

I guess I'm considering a subset of allpasses for which the mag response
is 1 for all freqs, and hence such that the coeffs of the numerator are in
reverse order of those in the denominator. This will give the property
that:
Sum(n=-infinity...+infinity,abs(out[n])^2) =
Sum(n=-infinity...+infinity,abs(in[n])^2)
making it lossless (in the sense of Regalia et al., "The Digital Allpass
Filter -- a versatile signal processing block", Proc IEEE 76(1), 1988, pp.
19-37).

>
>> In order to implement a fixed point approximation of this in hardware,
I'=
>m
>> sizing the datapath by computing the l1 gains of the impulse responses
fr=
>om
>> the input to the various internal nodes. (The l1 gains are
approximated
>> using the truncated impulse response of a floating point model of H,
in
>> Matlab. The impulse response is truncated at 1e6 samples, well beyond
the
>> point where the response has become highly attenuated).
>
>by "l1 gain", do you mean the L^1 norm applied to the impulse
>response? can you define the math of the "l1 gain"?

Yes: if g[n] is the impulse response from the input to the internal node
I'm considering, then the quantity whose name I abused as "l1 gain" will
be:
"l1 gain" = Sum(n=0...N,g[n])
where N was set to 1e6.

>> Something is bugging me though ... the l1 gain of the impulse response
of
>> the particular set of allpass filters I'm dealing with are higher than
1.
>
>i think you can make other filters that have magnitude of
>|H(w)| <=3D 1 and have the the values of |h[n]| sum to more than 1.
>
>why not?
>
>i dunno.

My "why not" is as follows:
-(1) if the mag response is 1 (for example) the gain applied to any input
signal is 1 (perhaps this assumption is wrong)
-(2) hence by (1) I should be able to expect the dynamic range at the
input and the output of an allpass filter to be identical
-(3) BUT: the dynamic range of the output is bounded from above by the
dynamic range of the input, scaled by the "l1 gain" (sorry ...) from input
to output
-(4) hence, if the said "l1 gain" is not 1, then the dynamic ranges of the
input at the output can be different

So (2) and (4) seem to be in conflict. Perhaps my underlying assumption
(1) is wrong? Or perhaps there's something fundamental that I've missed.

Also, (3) refers to an upper bound, I know. So I used simulation with long
sequences of data pumped into the allpass, and then examined the outputs of
the various allpassess in the cascade, and behold the dynamic ranges from
input to output of the allpasses did in fact change. So, if my data was \in
[-1,+1], my output data would go above/below +/- 1.

Is this what you would expect? Somehow this rubs with the idea that the
magnitude response is flat and 1.

Thanks,
John
From: HeavySide on
Thanks very much, guys.