Reply by Bob Cain December 16, 20052005-12-16

Bob Cain wrote:

> 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. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;