foxcob wrote: ...> Isn't using a not rectangular window the same as using the window method > of FIR design?No. One isn't *designing* a filter (chosing the coefficients), but *implementing* one (doing quickly with FFTs what might take longer with a classic transversal structure).> Along those lines, having a brick wall filter would result > in a windowed sinc type filter correct?A sinc filter would be brick wall, but you'd have to wait too long for the output. Once the sinc is windowed, the wall leans. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������

# Equalization using DFT

Started by ●November 12, 2008

Reply by ●November 13, 20082008-11-13

Reply by ●November 13, 20082008-11-13

On Nov 13, 8:46�am, Jerry Avins <j...@ieee.org> wrote:> foxcob wrote: > > � �... > > > Isn't using a not rectangular window the same as using the window method > > of FIR design? > > No. One isn't *designing* a filter (chosing the coefficients), but > *implementing* one (doing quickly with FFTs what might take longer with > a classic transversal structure). > > > �Along those lines, having a brick wall filter would result > > in a windowed sinc type filter correct? > > A sinc filter would be brick wall, but you'd have to wait too long for > the output. Once the sinc is windowed, the wall leans. > > Jerry > -- > Engineering is the art of making what you want from things you can get. > �����������������������������������������������������������������������Jerry, I understand what you're saying. What I mean is that if I were to apply a hamming window during overlap-add and correctly setting the overlap amount, wouldn't this have the same effect as designing the filter using the window method with a hamming window? Isn't the purpose of using the window method to prevent infinite tails AND to define what happens between the bins? So although a brick wall filter will not truly be a brick wall, we would have a filter that more closely resembles that without the strange side effects of IR truncation. Am I correct in this thinking? I'm somewhat new to DSP, but I'm trying. :-) Thanks, Jacob

Reply by ●November 13, 20082008-11-13

Jacob wrote:> On Nov 13, 8:46 am, Jerry Avins <j...@ieee.org> wrote: >> foxcob wrote: >> >> ... >> >>> Isn't using a not rectangular window the same as using the window method >>> of FIR design? >> No. One isn't *designing* a filter (chosing the coefficients), but >> *implementing* one (doing quickly with FFTs what might take longer with >> a classic transversal structure). >> >>> Along those lines, having a brick wall filter would result >>> in a windowed sinc type filter correct? >> A sinc filter would be brick wall, but you'd have to wait too long for >> the output. Once the sinc is windowed, the wall leans. >> >> Jerry >> -- >> Engineering is the art of making what you want from things you can get. >> ����������������������������������������������������������������������� > > Jerry, I understand what you're saying. What I mean is that if I > were to apply a hamming window during overlap-add and correctly > setting the overlap amount, wouldn't this have the same effect as > designing the filter using the window method with a hamming window?No. you don't understand what I tries to get across. The FFT that is part of overlap-add is not by itself a filter. A proper way to design the frequency mask for use with this method if to select the impulse response corresponding to the filter you want, and then FFT that to get the mask. A hamming or other tapered window can be useful in making a mask for an FFT FIT, just as it is when calculating coefficients for a transversal FIR.> Isn't the purpose of using the window method to prevent infinite tails > AND to define what happens between the bins?No. Not when filtering. That is one purpose, but it's not applicable here. Steve Smith's excellent book is available free on line, chapter by chapter. Steve posted a link to one chapter, but you might want to read more.> So although a brick wall > filter will not truly be a brick wall, we would have a filter that > more closely resembles that without the strange side effects of IR > truncation. Am I correct in this thinking? I'm somewhat new to DSP, > but I'm trying. :-)Overlap-add is a complicated but fast way to implement convolution and as such can be used to make FIR filters. If you have no need to spend complexity to buy time, use the conceptually simpler transversal structure. (Steve wrote that too.) Instead of determining the coefficients by windowing a truncated calculated impulse response, use an FIR generating program like ScopeFIR (http://www.iowegian.com) to get an optimized set. Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������

Reply by ●November 13, 20082008-11-13

>Jacob wrote: >> On Nov 13, 8:46 am, Jerry Avins <j...@ieee.org> wrote: >>> foxcob wrote: >>> >>> ... >>> >>>> Isn't using a not rectangular window the same as using the windowmethod>>>> of FIR design? >>> No. One isn't *designing* a filter (chosing the coefficients), but >>> *implementing* one (doing quickly with FFTs what might take longerwith>>> a classic transversal structure). >>> >>>> Along those lines, having a brick wall filter would result >>>> in a windowed sinc type filter correct? >>> A sinc filter would be brick wall, but you'd have to wait too longfor>>> the output. Once the sinc is windowed, the wall leans. >>> >>> Jerry >>> -- >>> Engineering is the art of making what you want from things you canget.>>>�����������������������������������������������������������������������>> >> Jerry, I understand what you're saying. What I mean is that if I >> were to apply a hamming window during overlap-add and correctly >> setting the overlap amount, wouldn't this have the same effect as >> designing the filter using the window method with a hamming window? > >No. you don't understand what I tries to get across. The FFT that is >part of overlap-add is not by itself a filter. A proper way to design >the frequency mask for use with this method if to select the impulse >response corresponding to the filter you want, and then FFT that to get >the mask. A hamming or other tapered window can be useful in making a >mask for an FFT FIT, just as it is when calculating coefficients for a >transversal FIR. > >> Isn't the purpose of using the window method to prevent infinite tails >> AND to define what happens between the bins? > >No. Not when filtering. That is one purpose, but it's not applicable >here. Steve Smith's excellent book is available free on line, chapter by>chapter. Steve posted a link to one chapter, but you might want to read >more. > >> So although a brick wall >> filter will not truly be a brick wall, we would have a filter that >> more closely resembles that without the strange side effects of IR >> truncation. Am I correct in this thinking? I'm somewhat new to DSP, >> but I'm trying. :-) > >Overlap-add is a complicated but fast way to implement convolution and >as such can be used to make FIR filters. If you have no need to spend >complexity to buy time, use the conceptually simpler transversal >structure. (Steve wrote that too.) Instead of determining the >coefficients by windowing a truncated calculated impulse response, use >an FIR generating program like ScopeFIR (http://www.iowegian.com) to get>an optimized set. > >Jerry >-- >Engineering is the art of making what you want from things you can get. >����������������������������������������������������������������������� >Jerry, I'm pretty sure I've understood what you're saying so far. BTW, I've read the material at those links before, Lyons book, and a couple others. I think I am getting a grasp on this stuff, but I think I may have not been very clear in explaining myself. I understand that the overlap-add method is not a filter by itself and that it is a method of implementing an FIR filter. I guess what I am trying to say is that if you know your desired frequency response, and the window method of filter design is acceptable, couldn't you do the following: 1. Take next block of samples 2. Window using window that meets criterion 3. FFT 4. Multiply by desired frequency response 5. IFFT 6. Overlap-Add I understand that this skips the step of FIR filter design, but if I were using window method of design, the process would be: 1. Take desired frequency response 2. IFFT 3. Window using window that meets criterion So couldn't you skip that step if you were going to implement the FIR filter using overlap-add? Wouldn't this method be useful for filters needing real-time manipulation such as an equalizer? Sorry if I'm totally off and need to go back to the books. Jacob

Reply by ●November 13, 20082008-11-13

foxcob wrote:>> Jacob wrote: >>> On Nov 13, 8:46 am, Jerry Avins <j...@ieee.org> wrote: >>>> foxcob wrote: >>>> >>>> ... >>>> >>>>> Isn't using a not rectangular window the same as using the window > method >>>>> of FIR design? >>>> No. One isn't *designing* a filter (chosing the coefficients), but >>>> *implementing* one (doing quickly with FFTs what might take longer > with >>>> a classic transversal structure). >>>> >>>>> Along those lines, having a brick wall filter would result >>>>> in a windowed sinc type filter correct? >>>> A sinc filter would be brick wall, but you'd have to wait too long > for >>>> the output. Once the sinc is windowed, the wall leans. >>>> >>>> Jerry >>>> -- >>>> Engineering is the art of making what you want from things you can > get. >>> Jerry, I understand what you're saying. What I mean is that if I >>> were to apply a hamming window during overlap-add and correctly >>> setting the overlap amount, wouldn't this have the same effect as >>> designing the filter using the window method with a hamming window? >> No. you don't understand what I tries to get across. The FFT that is >> part of overlap-add is not by itself a filter. A proper way to design >> the frequency mask for use with this method if to select the impulse >> response corresponding to the filter you want, and then FFT that to get >> the mask. A hamming or other tapered window can be useful in making a >> mask for an FFT FIT, just as it is when calculating coefficients for a >> transversal FIR. >> >>> Isn't the purpose of using the window method to prevent infinite tails >>> AND to define what happens between the bins? >> No. Not when filtering. That is one purpose, but it's not applicable >> here. Steve Smith's excellent book is available free on line, chapter by > >> chapter. Steve posted a link to one chapter, but you might want to read >> more. >> >>> So although a brick wall >>> filter will not truly be a brick wall, we would have a filter that >>> more closely resembles that without the strange side effects of IR >>> truncation. Am I correct in this thinking? I'm somewhat new to DSP, >>> but I'm trying. :-) >> Overlap-add is a complicated but fast way to implement convolution and >> as such can be used to make FIR filters. If you have no need to spend >> complexity to buy time, use the conceptually simpler transversal >> structure. (Steve wrote that too.) Instead of determining the >> coefficients by windowing a truncated calculated impulse response, use >> an FIR generating program like ScopeFIR (http://www.iowegian.com) to get > >> an optimized set. >> >> Jerry >> -- >> Engineering is the art of making what you want from things you can get. >> > > Jerry, > I'm pretty sure I've understood what you're saying so far. BTW, I've read > the material at those links before, Lyons book, and a couple others. I > think I am getting a grasp on this stuff, but I think I may have not been > very clear in explaining myself. I understand that the overlap-add method > is not a filter by itself and that it is a method of implementing an FIR > filter. I guess what I am trying to say is that if you know your desired > frequency response, and the window method of filter design is acceptable, > couldn't you do the following: > 1. Take next block of samples > 2. Window using window that meets criterion > 3. FFT > 4. Multiply by desired frequency response > 5. IFFT > 6. Overlap-Add > > I understand that this skips the step of FIR filter design, but if I were > using window method of design, the process would be: > 1. Take desired frequency responseOK.> 2. IFFTThat gets you the mask; essentially the coefficients to be applied to each bin of the result of the FFT of the data to be filtered.> 3. Window using window that meets criterionWhat criterion? Use the calculated mask. _That_ is the window you apply to the data before the IFFT.> So couldn't you skip that step if you were going to implement the FIR > filter using overlap-add?What step? You don't window data that goes into a filter. You window the data into a Fourier transform if that seems useful. Overlap-add eliminates the end effects that make tapered windows useful because the very nature of overlap-add eliminates the intermediate ends. Wouldn't this method be useful for filters> needing real-time manipulation such as an equalizer? Sorry if I'm totally > off and need to go back to the books.Jerry -- Engineering is the art of making what you want from things you can get. �����������������������������������������������������������������������

Reply by ●November 13, 20082008-11-13

On 13 Nov., 17:36, Richard Dobson <richarddob...@blueyonder.co.uk> wrote:> jungledmnc wrote: > > Thanks guys. I forgot to mention the windowing and overlap-adding... but I > > mean when you perform FFT correctly with all it needs and the only > > modification is multiplying each frequency bin with desired frequency > > response, then there is no problem? > > If so, then why not to use it, since it is zero or linear phase (which one > > btw?). And what's the advantage of using standard filters instead (e.g. > > classical biquads) (speed of course, but that's all I can see)? > > What if I for example cascade a few biquad filters, get its frequency > > response for particular frequency bins, and use this FFT method instead? > > Wouldn't it be cool way to make it zero/linear phase filter? I can also use > > bidirectional filtering, but the requirements seem almost the same. > > Linear-phase EQ is widely used for audio mastering �(see e.g. Waves, > Algorithmix, even the L-PP EQ in Apple's Logic Pro etc).You forgot the Weiss linear-phase EQ. I think we were the first ones to offer a stand-alone linear-phase EQ.> Possibly all of > them use FFTs,Nope. I would say half / half: FFT filtering and filtfilt filtering.> but I suspect �Algorithmix at least is doing some thing > very esoteric as their EQ, while praised to the skies (used at > astronomical sample rates for such things as SACD mastering), is > vveerryy �slow, and uses huge impulse responses of over a second.Interesting - I don't see why that would be necessary. The Red or the Blue?> Basically, �FFT-based EQ and convolution reverb use exactly the same > algorithm, except for the length of the impulse responses. Reverb > responses can be extremely long, and "partitioned convolution" of one > form or another is used to get the latency low enough for real-time use. > � The "trick" is simply to ensure the FFT is used to perform ~linear~ > convolution of the source and the IR, which means a combination of > zero-padding and plain 50% frame overlap (where the frame length is > typically twice the raw length of the IR, usually rounded �up to a > power-of-two size for FFT purposes). The other tricks are in designing > the IR, which may be done in all manner of ways, from drawing of > arbitrary shapes (with all the usual caveats) to use of standard FIR > filter design tools such as Remez etc. The dspguide links posted earlier > � in this thread illustrate �all that in detail. > > The Voxengo Spline EQ is an example of a L-P EQ using almost-arbitrary > drawing, showing �how closely the generated response matches the > requested one: > > http://www.voxengo.com/product/curveeq/ > > The reason audio people actually use IIR filters in audio most of the > time is only partly because they are computationally cheap compared to > FIRs (and easy to vary dynamically). Some analogue-modelled EQs are > anything but cheap; but they endow the sound with that mythical > "character" (no doubt thanks to the non-linear phase, and the odd > sprinkle of dsp snake-oil) that recording and mixing engineers will get > paid lots of money �to impart to a track. Bob Katz's mastering book is > well worth a read on this topic (as on many others).Richard, would you be interested in an EQ where you could continuously vary the phase from minimum to linear phase response while keeping the amplitude response constant? Regards, Andor

Reply by ●November 13, 20082008-11-13

On Nov 13, 12:31�pm, Jerry Avins <j...@ieee.org> wrote:> foxcob wrote: > >> Jacob wrote: > >>> On Nov 13, 8:46 am, Jerry Avins <j...@ieee.org> wrote: > >>>> foxcob wrote: > > >>>> � �... > > >>>>> Isn't using a not rectangular window the same as using the window > > method > >>>>> of FIR design? > >>>> No. One isn't *designing* a filter (chosing the coefficients), but > >>>> *implementing* one (doing quickly with FFTs what might take longer > > with > >>>> a classic transversal structure). > > >>>>> �Along those lines, having a brick wall filter would result > >>>>> in a windowed sinc type filter correct? > >>>> A sinc filter would be brick wall, but you'd have to wait too long > > for > >>>> the output. Once the sinc is windowed, the wall leans. > > >>>> Jerry > >>>> -- > >>>> Engineering is the art of making what you want from things you can > > get. > >>> Jerry, �I understand what you're saying. �What I mean is that if I > >>> were to apply a hamming window during overlap-add and correctly > >>> setting the overlap amount, wouldn't this have the same effect as > >>> designing the filter using the window method with a hamming window? > >> No. you don't understand what I tries to get across. The FFT that is > >> part of overlap-add is not by itself a filter. A proper way to design > >> the frequency mask for use with this method if to select the impulse > >> response corresponding to the filter you want, and then FFT that to get > >> the mask. A hamming or other tapered window can be useful in making a > >> mask for an FFT FIT, just as it is when calculating coefficients for a > >> transversal FIR. > > >>> Isn't the purpose of using the window method to prevent infinite tails > >>> AND to define what happens between the bins? > >> No. Not when filtering. That is one purpose, but it's not applicable > >> here. Steve Smith's excellent book is available free on line, chapter by > > >> chapter. Steve posted a link to one chapter, but you might want to read > >> more. > > >>> � � � � � � � � � � � � � � � � � � � � So although a brick wall > >>> filter will not truly be a brick wall, we would have a filter that > >>> more closely resembles that without the strange side effects of IR > >>> truncation. �Am I correct in this thinking? �I'm somewhat new to DSP, > >>> but I'm trying. �:-) > >> Overlap-add is a complicated but fast way to implement convolution and > >> as such can be used to make FIR filters. If you have no need to spend > >> complexity to buy time, use the conceptually simpler transversal > >> structure. (Steve wrote that too.) Instead of determining the > >> coefficients by windowing a truncated calculated impulse response, use > >> an FIR generating program like ScopeFIR (http://www.iowegian.com) to get > > >> an optimized set. > > >> Jerry > >> -- > >> Engineering is the art of making what you want from things you can get. > > > Jerry, > > I'm pretty sure I've understood what you're saying so far. �BTW, I've read > > the material at those links before, Lyons book, and a couple others. �I > > think I am getting a grasp on this stuff, but I think I may have not been > > very clear in explaining myself. �I understand that the overlap-add method > > is not a filter by itself and that it is a method of implementing an FIR > > filter. �I guess what I am trying to say is that if you know your desired > > frequency response, and the window method of filter design is acceptable, > > couldn't you do the following: > > 1. Take next block of samples > > 2. Window using window that meets criterion > > 3. FFT > > 4. Multiply by desired frequency response > > 5. IFFT > > 6. Overlap-Add > > > I understand that this skips the step of FIR filter design, but if I were > > using window method of design, the process would be: > > 1. Take desired frequency response > > OK. > > > 2. IFFT > > That gets you the mask; essentially the coefficients to be applied to > each bin of the result of the FFT of the data to be filtered. > > > 3. Window using window that meets criterion > > What criterion? Use the calculated mask. _That_ is the window you apply > to the data before the IFFT. > > > So couldn't you skip that step if you were going to implement the FIR > > filter using overlap-add? � > > What step? You don't window data that goes into a filter. You window the > data into a Fourier transform if that seems useful. Overlap-add > eliminates the end effects that make tapered windows useful because the > very nature of overlap-add eliminates the intermediate ends. > > Wouldn't this method be useful for filters > > > needing real-time manipulation such as an equalizer? �Sorry if I'm totally > > off and need to go back to the books. > > Jerry > -- > Engineering is the art of making what you want from things you can get. > �����������������������������������������������������������������������Jerry, I meant for the 3 steps above to be the steps of designing FIR filter coefficients by the window method. But thinking about it now, I think I have made an error in my thinking. Computationally it wouldn't make sense to window anyways since it would be done on every block instead of just on the filter, much less, it would not have the correct effect since windowing the sample data is different than windowing the filter. Thanks for the dialog. Jacob

Reply by ●November 13, 20082008-11-13

Andor wrote: ..> > You forgot the Weiss linear-phase EQ. I think we were the first ones > to offer a stand-alone linear-phase EQ. >Indeed. But that is hardware, is it not? I was only thinking of plugins, and the few of them I know about.>> Possibly all of >> them use FFTs, > > Nope. I would say half / half: FFT filtering and filtfilt filtering. > >> but I suspect Algorithmix at least is doing some thing >> very esoteric as their EQ, while praised to the skies (used at >> astronomical sample rates for such things as SACD mastering), is >> vveerryy slow, and uses huge impulse responses of over a second. > > Interesting - I don't see why that would be necessary. The Red or the > Blue? >I only tried out Red (which they say works in the frequency domain). They present it as being "analog-sounding" (while still being L-P); and parameters can be time-variable just like conventional EQs. But my PC was way too slow to get it even close to real-time, except on the low-quality settings. And they make much fuss about allowing very low freq changes without side-effects (the "fat bottom end" stuff), at srates up to 384KHz). But as I am not a mastering engineer (nor even a mixing engineer) (nor really an engineer of any category at all, except when I had my lathe and milling machine), the finer points of all that are somewhat beyond me anyway. ..> Richard, would you be interested in an EQ where you could continuously > vary the phase from minimum to linear phase response while keeping the > amplitude response constant? >It sounds the sort of thing that would very likely interest pro-audio people - things that can be time-variable are always popular! If it can emulate things such as Manley tube EQ (which in turn emulates the old Pultec hardware) even better. Such things are not my own area of interest though; I am very much in the weird-wacky phase vocoder transformation and mangling end of things (even unashamedly zeroing FFT bins ad lib). I would want to know if I could control the minimum-linear state from an LFO, much more than I would care if it emulates this or that expensive analog kit. So is that a product, or just a twinkle in the eye for one in the future? Richard Dobson

Reply by ●November 13, 20082008-11-13

jungledmnc wrote:> I'm wondering, if there is no problem in equalization with DFT. Simply > window the source signal, DFT, mutliply each frequency bin by a real value > defining it, and IDFT. This would even be zero-phase filtering wouldn't it?Not the question you asked, but I wondered (and asked here) some time ago about very long FFTs, such as a whole CD. (Well, maybe each track separately.) As it is O(N logN) it shouldn't take so long, but you do have to be careful in memory use patterns for efficient use of the cache. If you really do FFT a whole CD track then it doesn't seem so hard to filter and IFFT it. -- glen

Reply by ●November 14, 20082008-11-14

Glen Herrmannsfeldt wrote:> jungledmnc wrote: > >> I'm wondering, if there is no problem in equalization with DFT. Simply >> window the source signal, DFT, mutliply each frequency bin by a real >> value >> defining it, and IDFT. This would even be zero-phase filtering >> wouldn't it? > > Not the question you asked, but I wondered (and asked here) > some time ago about very long FFTs, such as a whole CD. > (Well, maybe each track separately.) As it is O(N logN) it > shouldn't take so long, but you do have to be careful in > memory use patterns for efficient use of the cache. > > If you really do FFT a whole CD track then it doesn't seem so > hard to filter and IFFT it. > > -- glen >It's been done (needless to say, for "creative" processing) (watch out for line wraps): http://www.notam02.no/index.php?/nor/Teknologi-og-tekst/Programvare/Mammut-help Richard Dobson