// $Id: readme.txt,v 1.2 2006/01/21 15:48:32 billl Exp $
Low-pass filtering using NEURON's fft() routine
fftilt(src,dest[,cutoff]) // filters src and places result in dest
// designed for optimally filtering signal at the beginning of the sample
// in order to do this we place the beginning in the center by reflection around y-axis
// (see reflected.gif)
// note that routine may truncate sample -- may wish to change this to always pad
// (search 'alway enlarge')
ancillary routines:
hanning(vec_size) // see hanning.gif
// Hanning window used on original time-domain sample
// drops off to zero at edges so as to avoid discontinuity artifact
// note that this means that end of signal is unrepresented
blackman(vec_size,fall_off_loc) // see blackman.gif
// Blackman window used for cutoff of freq in frequency-domain
// gives gradual fall-off so don't get ringing from sudden cutoff of fft
// note that fall_off_loc marks the point where window reaches 0
// this location is calculated from cut-off frequency in fftilt()
// global blackman_size gives the length of the blackman_window
round() // round off number (or members of vector) to nearest integer
ffilt_test(cutoff[,blackman_size]) // test program test.gif\gref
// mix freq's of 10 and 50 Hz; filter out above 'cutoff'; display
Please send suggestions/corrections/augmentations/questions to
billl@neurosim.downstate.edu
(NB I am not an engineer and am therefore not liable if you decide to design
your airplane using this code.)
thanks to Larry Eberle for providing the original FORTRAN code
|