comp.lang.idl-pvwave archive - RDF feed
type: channel
description: Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado
items: Re: Low pass filter

Re: Low pass filter
type: item
description: Mike wrote: > > Hi, > > I was wondering if anyone could point me in the direction of a library > that produces a lowpass filter to filter high frequency data from an > hourly time series? Have you tried DIGITAL_FILTER? I'm using PV-WAVE, but looking in the .pro source for it, it looks like something common to both IDL and PV-WAVE. It produces a kernel of convolution coefficients, and it is tune-able, allowing you to vary the low and high frequency cutoffs of the filter, as a fraction of the Nyquist frequency. Once it has spit out the kernel coefficients, you just use them in CONVOL to filter your signal, a la: flow = 0.20 ; low frequency cutoff as fraction of Nyquist frequency fhigh = 0.85 ; high frequency cutoff as fraction of Nyquist frequency gibbs = 50 ; approx size in dB of gibbs oscillations (a good guess will work here) order = 20 ; number of terms in filter kernel = DIGITAL_FILTER(flow, fhigh, gibbs, order) filtered = CONVOL(signal, kernel) Hope this helps, M. Williams Resource Engineering, Inc.
creator: Mark D. Williams
date: 2000-02-25T08:00:00-00:00

Re: Low pass filter
type: item
description: Martin Thanks for the code but we need to be a bit more tunable for the filtering we need done. Thanks for it anyway. Mike -- "Looking North West out over the Irish sea."
creator: Mike[1]
date: 2000-02-25T08:00:00-00:00

Re: Low pass filter
type: item
description: Mike wrote: > > Hi, > > I was wondering if anyone could point me in the direction of a library > that produces a lowpass filter to filter high frequency data from an > hourly time series? Any ideas or suggestions are welcomed. Thanks in > advance > > Mike > > -- > "Looking North West out over the Irish sea." Mike, you could try out my run_av.pro (attached). I wrote this specifically for something similar, so it handles missing values as well as irregularily spaced time intervals. Hope it works out, Martin -- [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [[[[[[[ [[ Dr. Martin Schultz Max-Planck-Institut fuer Meteorologie [[ [[ Bundesstr. 55, 20146 Hamburg [[ [[ phone: +49 40 41173-308 [[ [[ fax: +49 40 41173-298 [[ [[ martin.schultz@dkrz.de [[ [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ [[[[[[[ ;----------------------------------------------------------- -- ; $Id: run_av.pro,v 1.10 1999/01/22 20:12:17 mgs Stab $ ;+ ; NAME: ; RUN_AV (function) ; ; PURPOSE: ; Compute running average or running total of a ; data vector. Compared to the IDL function TS_SMOOTH, ; this function takes into account missing values or ; gaps in an optional x vector, and it allows for ; even bandwidths. It can also be used to compute cumulative ; totals. ; ; CATEGORY: ; math ; ; CALLING SEQUENCE: ; result = RUN_AV(Y [,X] [,keywords] ) ; ; INPUTS: ; Y -> the data vector (a 2-D array will be treated as a vector) ; ; X -> an optional X vector defining e.g. the sample times. ; This only has an effect when the DELTAX keyword is specified. ; X must be monotonically increasing and have the same ; number of elements as Y. ; ; KEYWORD PARAMETERS: ; WIDTH -> The number of points to use for the average or total ; Default is 1, i.e. Y is returned unchanged. ; ; MINWIDTH -> The minimum number of points that must be valid ; in order to return a average or total for the given point. ; Default is MINWIDTH=WIDTH, i.e. all points must be valid ; (and if X and DELTAX are specified,…
creator: Martin Schultz
date: 2000-02-25T08:00:00-00:00