Re: Re: Low pass filtering
- To: mathgroup at smc.vnet.net
- Subject: [mg41752] Re: [mg41727] Re: Low pass filtering
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Wed, 4 Jun 2003 08:34:36 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On Tuesday, June 3, 2003, at 07:13 AM, "Martin Manscher" < rehcsnam at kd.utd.tac wrote: > There are at least two points you need to be aware of: > > 1) The Fourier terms include both an amplitude and a phase. Thus > Abs[term] > is proportional to the amplitude (the normalisation might include the > number > of terms; you should check this), and Arg[term] is the phase. > > 2) If you just set terms above a certain frequency to zero, you will > get a > filter that is non-physical (I think it even violates some basic > physical > laws such as causality; ask someone who know more about the topic). A > standard RC filter decreases the amplitude by 20 dB/decade, with a > smooth > transition at the characteristic frequency of the filter. > > Martin > > > "Bob Buchanan" <Bob.Buchanan at millersville.edu> wrote in message > news:bb731e$b63$1 at smc.vnet.net... >> Hello, >> >> I have a question about recovering a filtered signal from a Fourier >> transformed input signal. I have read a time series of real sampled >> values into Mathematica. I can use Fourier[] to compute its DFT. As I >> understand the DFT, the kth value represents the "amount" of the kth >> frequency present in the original time series. To implement a simple >> low pass filter I set all the elements of the Fourier series below a >> certain threshold frequency to zero. Now I want to do the IDFT to >> recover a filtered time series containing only the low passed >> frequencies. However the IDFT I compute is not a real series, but >> contains complex entries with nontrivial imaginary parts. What about >> this filtering operation am I misunderstanding? >> >> Thanks, >> Bob Buchanan > A few more points: 1) The traditional FFT algorithm returns the zero frequency component in the first place in the list. This is followed by the N/2-1 positive frequencies and then the N/2 negative frequencies where N is the number of data points. When you set points to zero did you take this ordering into account? 2) Furthermore, the FT of a real signal must be symmetric about the zero frequency. I suspect that the nontrivial imaginary values are occurring because your filter is not symmetric about zero. To preserve the real only nature of your signal you have to preserve this symmetry. Small imaginary results may occur due to floating point error (actually it's not really an error, does anyone know of a better name for the difference in the result between machine precision arithmetic and the result expected using infinite precision?), but those should easily be eliminated with Chop. Regards, Ssezi