On Fri, 10 Apr 2009 02:08:18 -0700 (PDT), Rune Allnor <allnor@tele.ntnu.no> wrote:>On 10 Apr, 02:17, Rick Lyons <R.Lyons@_BOGUS_ieee.org> wrote: >> On Thu, 09 Apr 2009 08:22:55 -0500, "bmh161" <bmh...@yahoo.com> wrote: > >> >Instead of going through all the trouble of designing complicated digital >> >filters, why don't we just pick the frequencies that we want to supress and >> >replace those bins in the FFT with zeros? >... >> �I just wanted to say that >> your question is sensible and that we, the DSP guys here, >> should investigate the process of freq-domain filtering >> in detail > >Rick, did we read the same post? The question is not why >frequency domain filtering is a bad idea, but why one doesn't >use the naive, 'obvious' specs for the filters. I commented on >a similar question not too long ago: > >http://groups.google.no/group/comp.dsp/msg/2d4bd5dfb25b5a23 > >Such questions are covered in most DSP texts - I wouldn't be >surprised if you touched on the subject already. If not, the issue >might be worth half a page's comments in your 3rd edition, as >your book is the first entry point into DSP for lots of users. > >Teachning students how to think 'right' is an admirable (and >difficult!) task; warning against how to think 'wrong' can only >help the effort. > >RuneHi Rune, Oh shoot. Maybe I misunderstood the poster's question. For whatever reason, I thought he was asking: "Can we perform an N-point FFT on an N-point time sequence, zero-out the spectral components that we wish to attenuate, and then perform an N-point inverse FFT to obtain a "filtered" time-domain sequence. If the original poster was asking about ways to design a time-domain digital filter, then I completely missed the point of his question. (That wouldn't be the first time for me.) [-Rick-] PS. Rune, I wish you "calm seas."

# Why don't we just zero out FFT bins?

Started by ●April 9, 2009

Reply by ●April 21, 20092009-04-21

Reply by ●April 21, 20092009-04-21

On Fri, 10 Apr 2009 08:13:48 +0200, "Robert Lacoste" <see-alciom-dot-com> wrote:> >"bmh161" <bmh161@yahoo.com> a �crit dans le message de >news: -9CdnboVQ4Mya0DUnZ2dnUVZ_vednZ2d@giganews.com... >> This is probably a stupid question but, well, I'm not all that smart... >> >> Instead of going through all the trouble of designing complicated digital >> filters, why don't we just pick the frequencies that we want to supress >> and >> replace those bins in the FFT with zeros? >> > >Doing what you propose (FFT of the signal, multiplying with a frequency >mask, IFFT) gives EXACTLY the same result mathematically speaking than a FIR >filter, its just another way to calculate it. In a nutshell :[snipped by Lyons] Hi Robert, are you sure about that? Let's say I have a 1024-sample time sequence on which I perform a 1024-pt FFT. Next, I zero-out the FFT bins (samples) for the freqs I want to attenuate. Finally I perform a 1024-pt inverse FFT. My resultant "filtered" time sequence is 1024 samples in length (just as was the original time sequence). Now ...what kind of time-domain digital filtering can I perform on the original 1024-sample time sequence where the filter output sequence is EXACTLY the same 1024 samples as the above freq-domain filtering output? I believe the answer is: "There *IS* no such time-domain digital filter." As far as I know, the freq-domain filtering I discussed in my first paragraph above is equivalent to time-domain circular convolution, and time-domain filtering does not perform circular convolution. Robert, if I'm mistaken, then I'd sure like to know about it. See Ya', [-Rick-]

Reply by ●January 31, 20202020-01-31

bmh161=E6=96=BC 2009=E5=B9=B44=E6=9C=889=E6=97=A5=E6=98=9F=E6=9C=9F=E5=9B= =9B UTC+8=E4=B8=8B=E5=8D=889=E6=99=8222=E5=88=8655=E7=A7=92=E5=AF=AB=E9=81= =93=EF=BC=9A> This is probably a stupid question but, well, I'm not all that smart... >=20 > Instead of going through all the trouble of designing complicated digital > filters, why don't we just pick the frequencies that we want to supress a=nd> replace those bins in the FFT with zeros?You may be interested in the simple experiment using matlab. https://poweidsplearningpath.blogspot.com/2019/04/dftidft.html