DSPRelated.com
Forums

crackling sound after FIR filtration

Started by Decay February 27, 2008
On Feb 27, 7:28 pm, Vladimir Vassilevsky <antispam_bo...@hotmail.com>
wrote:
> Decay wrote: > >>First mistake. Don't use FIRs for the audio crossover. > > > Why? > > It is inefficient. The FIR filter for crossover has to be ridiculously > long. It will also introduce the significant amount of delay, which you > will have to compensate by adding the delays to all other channels.
And if one didn't care about efficiency (the power required by a dsp which could do this might only be a small fraction of that used by the amp), or the delay (one could even pre-process each speaker channel off-line), then the problem with experimenting with a linear-phase FIR crossover would be what? Would it sound bad, or would one be able to even hear a difference?
Decay wrote:
>> Some of your questions seem to indicate that you know little about the >> desirable features of crossover networks and their design. This is a >> well researched field, with the better part of a century's accumulated >> experience. You would do well to learn _what_ to do before concerning >> yourself with _how_ do do it. For example, matching phase is important, >> but only in the cross-over region, where sound from both drivers has >> comparable amplitude. Read http://www.rane.com/note160.html just for >> fun. There is material on crossovers on many sites on the web, in >> particular at http://www.linkwitzlab.com/crossovers.htm
> Jerry, > > Sometimes "what" comes out of "how". For instance, I know my "what" - I > need to separate several bands of the sound freq. That's ultimae. > Once I get to "how", and find out that there are two options - inefficient > FIRs and nonlinear phase IIRs, the "what" evolves into "to separate several > bands of sound freq so that phase is linear at the band joints". And so > on... If everything was ideal the ultimate "what" could be reached without > such details. > But anyway, your first statement above is well taken and agreed upon. > That's why I'm asking those questions which may seem stupid for you guys.
I didn't make the distinction between "what" and "how" clear. Separating your signal into several bands is the essence of crossoverness; it almost goes without saying. Here's a partial list of the WHATs I had in mind: 1. For constant input power, the total power delivered to the speakers should not depend on frequency. 2. At those frequencies where sound comes from more than one speaker, there should be no destructive interference in any part of the listening area. (Light always gets dimmer when one of two bulbs is turned off. Sound can get louder in parts of a room when one of two speakers is turned off.) 3. Some crossovers require that each speaker have its own amplifier. This makes sense with large systems that require lots of power. Smaller systems, such as those used in homes need careful analysis. One hundred-watt amplifier costs considerably less than a 50 (for bass) and two smaller ones for midrange and treble. (2) can almost never be achieved, and adhering strictly to (1) makes it more difficult if not impossible. (That means I don't know how.) That's "what", and as usual, compromises have to be struck. "How" consists of deciding on frequency and phase responses. Implementation is the last step, although issues it exposes may require more compromises. Jerry P.S. Your cracking is an overflow problem. Constraining each calculation to lie between MAXINT and MININT is a simple if inelegant fix. -- 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;
Ron N. wrote:
> On Feb 27, 7:28 pm, Vladimir Vassilevsky <antispam_bo...@hotmail.com> > wrote: >> Decay wrote: >>>> First mistake. Don't use FIRs for the audio crossover. >>> Why? >> It is inefficient. The FIR filter for crossover has to be ridiculously >> long. It will also introduce the significant amount of delay, which you >> will have to compensate by adding the delays to all other channels. > > And if one didn't care about efficiency (the power > required by a dsp which could do this might only be a small > fraction of that used by the amp), or the delay (one could > even pre-process each speaker channel off-line), then the > problem with experimenting with a linear-phase FIR crossover > would be what? Would it sound bad, or would one be > able to even hear a difference?
The only problem I anticipate is shaping the transition region. It may be difficult to maintain constant power across a transition region broad enough to avoid serious ringing. 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;
>If we get back to phase - humans ears are sensitive to phase (at least at >some frequencies). This can easily be checked by putting some sine wave >into one channel, and the same wave with shifted phase to another and >listening to resulting stereo signal. This will definetely differ from
the
>signal with two coherent channels. >Also, among analog active filters, those with linear phase are valued >most. >Is phase non-linearity of IIRs not audible in real life? > >
In my experience, it would take an "trained ear" to really notice the difference between linear and non-linear phase responses. The average listener is never going to notice the difference. For some reason the research industry is focused in on FIR filter design leaving IIR by the wayside. (mistakenly IMO) Thus a preponderence of papers stating that FIR filters are superior in most ways. The funny thing is if you search hard enough yuo'll find techniques out there that can do the same kind of "tricks" a FIR filter can do using IIR. In my job we develop automotive amplifiers for a bunch of customers and we ONLY use IIR filters. For whatever it's worth I can say manufacturer's like Lexus and Mercedes in their "Luxury" market use IIR filters and I have yet to read an audio review about them that said anything about poor phase response... My 2 cents. Jeff

Ron N. wrote:


>>>>Don't use FIRs for the audio crossover. >>>Why? >>It is inefficient. The FIR filter for crossover has to be ridiculously >>long. It will also introduce the significant amount of delay, which you >>will have to compensate by adding the delays to all other channels. > > > And if one didn't care about efficiency (the power > required by a dsp which could do this might only be a small > fraction of that used by the amp),
However the cost of the DSP which is able to compute several hundred FIR taps in the real time is a big fraction of the cost of the amp.
> or the delay (one could > even pre-process each speaker channel off-line), then the > problem with experimenting with a linear-phase FIR crossover > would be what? Would it sound bad, or would one be > able to even hear a difference?
There wouldn't be any clear advantage or disadvantage. The trained ear could distinguish the slight difference in the coloration because of the interaction of the highpass and the lowpass crossovers in the areas of overlap. The difference in the speakers is a lot more significant. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
> > >Decay wrote: > >>>First mistake. Don't use FIRs for the audio crossover. >> >> >> Why? > >It is inefficient. The FIR filter for crossover has to be ridiculously >long. It will also introduce the significant amount of delay, which you >will have to compensate by adding the delays to all other channels. > >> IIR instead? > >Yes. A Butterworth of the 4th order will suffice. > >> What about non-linear phase? > >...and the problem with the nonlinear phase is? > >>>Second mistake. The filters are designed either by Remez or by windows.
>>>Remez and windows altogether do not make sense. >> >> >> I'm not sure if it makes sense to gurus, but in my case simple Remez
(at
>> lease as implemented in SPUC) didn't give me zero values at the ends
of
>> the IR. >
Decay, Not sure if you're working on this still or not, but I did find a nice link that talks about the classic IIR cross-over filter topology: Linkwitz-Riley. It basically uses 2 butterworth filters with cut-offs set to the -6dB point instead of the typical -3dB. There's a little more to it but, the link does cover some of the topics discussed here in this thread. http://www.rane.com/note160.html - Jeff
sparafucile17 wrote:

   ...

> http://www.rane.com/note160.html
I sent him that near the beginning of the thread. The filters are (Butterworth)^2 -- fourth order, but not fourth-order Butterworth. 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;
>sparafucile17 wrote: > > ... > >> http://www.rane.com/note160.html > >I sent him that near the beginning of the thread. The filters are >(Butterworth)^2 -- fourth order, but not fourth-order Butterworth. > >Jerry >-- >Engineering is the art of making what you want from things you can get. >&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; >
Ooops, sorry Jerry! I missed your original comment citing the same source. I was seraching for something else on my own today and stumbled onto this very informative site. Then I remembered this thread and thought to myself "you should put that link on the thread so someone else can benefit from it!" I guess I should spend more time reading before I post! - Jeff
> >Ooops, sorry Jerry! I missed your original comment citing the same >source. I was seraching for something else on my own today and stumbled >onto this very informative site. Then I remembered this thread and >thought to myself >"you should put that link on the thread so someone else can benefit from >it!" > >I guess I should spend more time reading before I post! > >- Jeff >
Jeff, Jerry, Thank you. That article is really interesting and R-L filters are quite popular and useful in audio world, so I'll probably add this to this "audio tool-set" I'm trying to come up with. Basically FIR is all done and I'm exploring the Butterworth now. LP is good and functional(1st and 2nd order and their combination for other orders), but I'm yet to find how to calculate the coefficients for high-pass. So, since you're still viewing this thread, could you please advise or point to the source with good explanation on this? Thanks!
Decay wrote:
>> Ooops, sorry Jerry! I missed your original comment citing the same >> source. I was seraching for something else on my own today and stumbled >> onto this very informative site. Then I remembered this thread and >> thought to myself >> "you should put that link on the thread so someone else can benefit from >> it!" >> >> I guess I should spend more time reading before I post! >> >> - Jeff >> > > Jeff, Jerry, > > Thank you. That article is really interesting and R-L filters are quite > popular and useful in audio world, so I'll probably add this to this > "audio tool-set" I'm trying to come up with. > Basically FIR is all done and I'm exploring the Butterworth now. LP is > good and functional(1st and 2nd order and their combination for other > orders), but I'm yet to find how to calculate the coefficients for > high-pass. > So, since you're still viewing this thread, could you please advise or > point to the source with good explanation on this?
You might find http://www-users.cs.york.ac.uk/~fisher/cgi-bin/mkfscript useful. I think a free copy of ScopeDSP from iowegian.com might also. 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;