0
$\begingroup$

This question already has an answer here:

As a student who has never constructed any real world DSP application, I am inclined to ask the following.

  1. Convolution in time domain is multiplication in frequency domain.

  2. For low pass filtering, it is recommended that convolution of input signal [or rather samples of input signal] be performed with a sinc signal.

  3. The frequency spectrum(or response) of a non-causal sinc signal is a perfect rectangle.

  4. On computers, the non-causal sinc must be made causal and finite because of memory constraints. This mildly damages the frequency response of the filter.

  5. And therefore in time domain, the truncated sinc is to be multiplied with a window function to repair the frequency response.

Now,

a. If the number of samples fed to a filter were fixed and known apriori (e.g. N)

b. It would be fairly trivial to construct an ideal frequency response H(N)

c. Multiply the input and filter frequency response and perform IFFT on the product.

d. The multiplication of the frequency responses "surgically" removes unwanted frequencies.

So why bother about sinc function and multiplying it with window function when multiplication in frequency domain is more than adequate? Or rather, under what circumstances is convolution in time domain performed?

$\endgroup$

marked as duplicate by Matt L., A_A, Community Oct 8 '16 at 10:38

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • $\begingroup$ I assume by "multiplying it with window function" you mean "convolving it with window function", right? $\endgroup$ – MimSaad Oct 8 '16 at 7:32
  • $\begingroup$ No, I indeed meant multiplying the sinc and window samples element by element and then convolving the product of the multiplication with the input sequence. $\endgroup$ – Raj Oct 8 '16 at 7:39
0
$\begingroup$

Interesting question. So you are asking why we do not use FFT instead of commonly used filters (in your case Since function). In terms of computational complexity, FFT wins over digital filtering. However though, zeroing out FFT bins, instead of filtering is not a good idea. There are many reason for that and high among them is the artifacts that are produced by FFT and FFT leakage. FFT bins in other perspective can be seen as representation of discrete sines and cosines. Your real frequency resolution (number of bins) depends on your signal length, the shorter your signal is the fewer bins are there to represent sines and cosines that embed in your signal (you might consider taking FFT of too long windows? the problem is then you must assume your signal is stationary). On the other hand, if your signal's sinusoidal components have frequencies other that frequencies represented by FFT bins (so called integer frequencies), you'll frequency bins will smear over their neighbors as below:

enter image description here

So when you zero out a bin like 400th bin and its neighbors in above image. You cannot remove 400th bin completely because some portion of it lives in other far located bins and also some energy of other bins (like 500th bin) smeared over here (so removing 400th bin will effect the component in 500th bin).

The other reason is that, you usually do not have your entire signal recorded and stored in memory to perform FFT, your data usually is streaming, and in this case only common methods of filtering come in handy, because they perform filtering on the data on the fly, whereas FFT requires all of the samples to be available. One might ask, what if we segment our data to small windows and then use, FFT? In that case, the leakage problem becomes severe and your filters accuracy degrades.

More interesting post on this regards can be find here(s):

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.