This question already has an answer here:

I am new to signal processing domain. When I run fft on data of length 1000, I get 1000 complex numbers. Now, if I want to extract the low frequency information or signal approximation, I take the first few elements(say 50) of the array and also the same number of elements from the last(as it is symmetric). Excluding these values, i put everything as 0 and take inverse fft and I get back the approximation of the original signal. Now, having done the above, I take back the original array of 1000 complex numbers, put the first 50 and last 50 numbers as 0, and then repeat the process on the remaining values to get successive higher frequency information. My main goal is that I want to separately extract low frequency and high frequency information from the signal(like in wavelet). Is my approach correct?


marked as duplicate by MBaz, Stanley Pawlukiewicz, Dilip Sarwate, lennon310, Peter K. Jun 10 at 13:11

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$ Welcome to SE.DSP. Why would you do that? Discrete wavelets don't really separate low form high-frequency, this is not their main goal. $\endgroup$ – Laurent Duval Jun 7 at 19:23

Not really.

Unless you fully understand the math behind the DFT, you are likely to run into problems like circular vs linear convolution, time domain aliasing, excessive time domain ringing, etc.

For "light weight" frequency selectivity application, time domain filter is typically a lot easier.


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