> One way to see why symmetry gives linear phase is to consider the
> logically equivalent filtering of a signal in the forward direction by
> the leading half of the filter (evenly symmetric for ease of
> visualization) and in the reverse direction by the reverse of the
> trailing half.
Scratch that. It's wrong.
Bob
--
"Things should be described as simply as possible, but no simpler."
A. Einstein
Reply by robert bristow-johnson●December 15, 20052005-12-15
abariska@student.ethz.ch wrote:
> robert bristow-johnson wrote:
>
> > does that do it for you, Abariska?
>
> In case you hadn't noticed, "abariska" stands for Andor Bariska. It's
> my old and inactive student account (go spam that) :-).
ooops. sorry Andor. currently i am spending about 5% of the time that
i used to hanging out here. i am not looking over the threads
completely so i miss context. sorry.
> Sounds good to me. The truncated sinc in Randy's example was not
> bandlimited,
any sequence can be hooked up to a sequence of bandlimited sinc()
functions. but Randy's truncated sinc() sequence might not have
perfectly satisfied that symmetry about "d" condition necessary.
anyway i was only responding to your infinite sequence
> and the aliasing when sampling messed up the phase
> linearity. I think Randy's proof outline was somewhere on along your
> lines as well.
>
> What do you think of that theorem that I posted earlier from this
> paper:
>
> http://0xdc.com/paper.pdf
>
> (at the bottom of the first page).
it (the IEEE proof), to me, looks exactly like the argument i made.
they say "Omega" and i say "2*pi*f". otherwise they're the same. oh,
all right, their's was a little more general than mine. if you say
that Randy's proof is the same as mine and i say that mine was the same
as Clements & Pease, then doesn't that mean that Randy's is the same as
theirs? i didn't read the whole paper nor the whole thread.
BTW, i like this paper. gonna have to put it somewhere to keep.
> I have a feeling that anti-symmetric linear-phase sequences are not
> covered in the statement of the proof. This would make the "iff" claim
> false.
but i think you could make it happen, in the same way as is done for
the regular symmetric sequences.
r b-j
Reply by Vladimir Vassilevsky●December 15, 20052005-12-15
Greg Berchin wrote:
>>To have reasonable audio performance, those biquads should use 32x32 =
>>64 bit multiplications at least, as well as the noise shaping at
>>truncation of 64 to 32 bits. This relates to the straightforward 48kHz
>>implementation.
>
>
> I respectfully disagree. I have implemented this in the DSP56K with 24
> bit data, 24 bit coefficients, 56 bit accumulator, and no noise shaping.
> The performance is quite "reasonable".
I have badly burned with that once and believe me I know the topic :(
The quantization noise in the biquad is amplified in the feedback path.
The noise gain is at the order of the square of (Q*Fc/Fs). Thus for the
100Hz cutoff at 48kHz sample rate the loss of precision will be over
100dB. Only 8 bits are left from your 24 bit data. This is very audible.
As for the coefficient accuracy, even 20 bit is enough however the data
should have 32bit width at the least.
Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
Reply by Greg Berchin●December 15, 20052005-12-15
On Wed, 14 Dec 2005 16:44:44 GMT, Vladimir Vassilevsky
<antispam_bogus@hotmail.com> wrote:
>> ... assuming that it was designed as an approximation to a Gaussian
>> response.
>
>No. Assumming the reasonable rolloff speed and passband flatness.
You mentioned exp(-x^2) specifically. That's a Gaussian.
>> However, consider how many taps a 100Hz FIR Gaussian filter
>> will require -- for 48kHz sampling with 24-bit coefficients, it's on the
>> order of 3000.
>
>Brute force approach :(
>
>First, for FIR you don't need 24 bit coefficients - a mere 10 bits is
>sufficient.
If you use 10 bit coefficients and eliminate all coefficients whose
magnitude falls below that 10 bit limit, then you have effectively
applied a rectangular window to your time domain convolution. You can
do some error control on the coefficient quantizations, but 14 bits of
quantization error is a lot to deal with.
>Second, I would do such filter as a part of multirate filterbank. If
>your goal is a subwoofer, there is no need to burn at the full speed of
>48kHz.
Ah! Now I see what you're saying. Your "mere 10 bits is sufficient"
comment comes in the context of a multirate filterbank approach.
The multirate filterbank approach has some pitfalls. Adjacent banks
overlap, and when the sample rate is reduced in each bank, aliasing
occurs. The structure of the filterbank guarantees that the aliasing
products mathematically cancel in the reconstruction process. However,
mathematical reconstruction in a processor and acoustical reconstruction
in a loudspeaker system can be two very different things.
>To have reasonable audio performance, those biquads should use 32x32 =
>64 bit multiplications at least, as well as the noise shaping at
>truncation of 64 to 32 bits. This relates to the straightforward 48kHz
>implementation.
I respectfully disagree. I have implemented this in the DSP56K with 24
bit data, 24 bit coefficients, 56 bit accumulator, and no noise shaping.
The performance is quite "reasonable". Admittedly, though, a 100Hz
filter in a 48kHz context with 24 bit coefficients and 24 bit data is
approaching the limits of precision for a direct-form biquad
implementation.
Greg
Reply by ●December 15, 20052005-12-15
Ron N. wrote:
> Not only infintely many samples, but infinite precision as well,
> are needed to get linear phase out of a non-integer delay of
> a sinc.
Well, once you have that InfinyDrive (TM) computer to store the
infinite number of samples, I don't think you are going to worry much
about having to store an infinite number of digits for each sample :-).
> It's very a useful fact that symmetric coefficient sets do not need
> infinite width or precision to have exact perfect linear phase (as
> long as the truncation and quantization is symmetric as well,
> of course).
Good point.
Regards,
Andor
Reply by Bob Cain●December 15, 20052005-12-15
abariska@student.ethz.ch wrote:
> Jerry Avins wrote:
>
>> abariska@student.ethz.ch wrote:
>>
>> ...
>>
>>> You claim that the infinitely long sequence
>>>
>>> b[n] = sinc(n + 1/7),
>>>
>>> for all n, is linear-phase. That could be true. Do you have an idea for
>>> a proof?
>> Over all n, sinc(n) is symmetric, hence linear phase. Sinc(n + 7) has a
>> pure delay added to it. Pure delay doesn't upset linear phase. Over the
>> range -18 <= n <= 32, sinc(n +7) is also linear phase. It's symmetry
>> about the center that counts.
>
> But the delay in b[n] is fractional, 1/7 sample, and the resulting
> windowed and sampled sinc does not have linear phase response. It is
> interesting that with infinite many samples, strict symmetry of the
> coeffcients is not needed anymore for linear phase.
Regardless of the number of samples, it isn't symmetry of the
coefficients that causes linear phase but rather symmetry of the
continuous function that is reconstructed from the samples by a band
limiting brick wall lowpass. Thus a sinc delayed by any fraction of a
sample is still symmetric because the underlying continuous function is.
One way to see why symmetry gives linear phase is to consider the
logically equivalent filtering of a signal in the forward direction by
the leading half of the filter (evenly symmetric for ease of
visualization) and in the reverse direction by the reverse of the
trailing half. Any frequency dependent phase shift induced in the
forward direction is exactly canceled by that induced in the reverse
direction because the two filters are identical after reversal of one of
them.
Bob
--
"Things should be described as simply as possible, but no simpler."
A. Einstein
Reply by Ron N.●December 15, 20052005-12-15
abariska@student.ethz.ch wrote:
> Jerry Avins wrote:
>
> > abariska@student.ethz.ch wrote:
> >
> > ...
> >
> > > You claim that the infinitely long sequence
> > >
> > > b[n] = sinc(n + 1/7),
> > >
> > > for all n, is linear-phase. That could be true. Do you have an idea for
> > > a proof?
> >
> > Over all n, sinc(n) is symmetric, hence linear phase. Sinc(n + 7) has a
> > pure delay added to it. Pure delay doesn't upset linear phase. Over the
> > range -18 <= n <= 32, sinc(n +7) is also linear phase. It's symmetry
> > about the center that counts.
>
> But the delay in b[n] is fractional, 1/7 sample, and the resulting
> windowed and sampled sinc does not have linear phase response. It is
> interesting that with infinite many samples, strict symmetry of the
> coeffcients is not needed anymore for linear phase.
Not only infintely many samples, but infinite precision as well,
are needed to get linear phase out of a non-integer delay of
a sinc.
It's very a useful fact that symmetric coefficient sets do not need
infinite width or precision to have exact perfect linear phase (as
long as the truncation and quantization is symmetric as well,
of course).
IMHO. YMMV.
--
rhn A.T nicholson d.O.t C-o-M
Reply by ●December 15, 20052005-12-15
robert bristow-johnson wrote:
> abariska@student.ethz.ch wrote:
> > You claim that the infinitely long sequence
> >
> > b[n] = sinc(n + 1/7),
> >
> > for all n, is linear-phase. That could be true. Do you have an idea for
> > a proof?
>
> it appears to me that you already have it proved. at least for
> frequencies between -Nyquist to +Nyquist.
>
> since the acausal continuous-time impulse response
>
> h(t) = sinc(t - d)
>
> has frequency response as
>
> H(f) = exp(-j*2*pi*f*d) for |f| < 1/2 , zero otherwize,
>
> then H(f) is clearly linear phase for any constant delay, d. and since
> H(f) is 0 for |f| >= 1/2, h(t) can be sampled at a sampling rate,1/T,
> of 1 and have no aliasing:
>
> h[n] = h(n*T) = sinc(n - d)
>
> according to the sampling theorem the frequency response of the sampled
> function is the same as the frequency response of the continuous-time
> function getting sampled for frequencies with magnitude less than
> Nyquist (in this case, Nyquist is 1/2) and that frequency response is
> periodically extended for frequencies above Nyquist.
Sounds good to me. The truncated sinc in Randy's example was not
bandlimited, and the aliasing when sampling messed up the phase
linearity. I think Randy's proof outline was somewhere on along your
lines as well.
What do you think of that theorem that I posted earlier from this
paper:
http://0xdc.com/paper.pdf
(at the bottom of the first page).
I have a feeling that anti-symmetric linear-phase sequences are not
covered in the statement of the proof. This would make the "iff" claim
false.
>
> does that do it for you, Abariska?
In case you hadn't noticed, "abariska" stands for Andor Bariska. It's
my old and inactive student account (go spam that) :-).
Regards,
Andor
Reply by Greg Berchin●December 15, 20052005-12-15
On 14 Dec 2005 20:44:03 -0800, "robert bristow-johnson"
<rbj@audioimagination.com> wrote:
>but it's not so much the ripples ramping up to the main lobe of the
>impulse response, Al. it's a consequence of using the Parks-McClellan
>algorithm to design an "equi-ripple" filter. those ripples in the
>pass-band are like multiplying by a cosine which has the effect of
>translation in the other domain.
Harris describes an analogous phenomenon in his discussion of the
Dolph-Chebyshev window; "On the Use of Windows for Harmonic Analysis
with the Discrete Fourier Transform", Proceedings of the IEEE, Vol. 66,
No. 1, January 1978. This window is characterized by equal-amplitude
sidelobes (Harris describes them as "almost sinusoidal!") that result in
displaced impulses when transformed into the other domain.
Greg
Reply by Jerry Avins●December 15, 20052005-12-15
abariska@student.ethz.ch wrote:
...
> But the delay in b[n] is fractional, 1/7 sample, and the resulting
> windowed and sampled sinc does not have linear phase response. It is
> interesting that with infinite many samples, strict symmetry of the
> coeffcients is not needed anymore for linear phase.
Silly me! I took it to be 7 samples. 1/7 is so bizarre, I filtered it out.
Jerry
--
Engineering is the art of making what you want from things you can get.
�����������������������������������������������������������������������