Xref: utzoo comp.dsp:1265 sci.math:15097 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!nuchat!steve From: steve@nuchat.sccsi.com (Steve Nuchia) Newsgroups: comp.dsp,sci.math Subject: resampling problem Message-ID: <1991Feb13.234510.22488@nuchat.sccsi.com> Date: 13 Feb 91 23:45:10 GMT Sender: steve@nuchat.sccsi.com (Steve Nuchia) Organization: South Coast Computing Services, Inc. Houston Lines: 120 -2) This (comp.dsp) seems to be the best place. Redirection welcome. sci.math added as an afterthought just in case somebody there finds this interesting or happens to know the answer. -1) I am not a regular reader of comp.dsp (one can only read so many things) so I would appreciate mailed responses. I do subscribe to sci.math, but haven't been able to keep up recently. 0) I'm doing consulting for a corporate client -- I don't expect a lot of free help here. Pointers to accessible literature will be gratefully followed up. 1) I'm a senior EE student with 7 years professional software (ahem) engineering and consulting experience. I've had basicly only the cartoon version of digital filtering: the second semester linear systems course covering discrete time Fourier theory and such. 2) I'm trying to analyse the following situation: A package of measureing instruments (we can assume the singular without loss of generality) traverses some physical environment at an unregulated speed, with its position indirectly measured. It is traditional in this industry to ignore the slop in the mechanical system and use the indicated position for downstream processing directly. Let us accept this simplification for this discussion, as it is orthogonal to the main point. The instruments are sampled at intervals. Some instruments are designed for fixed-frequency sampling, others are sampled on a temporal basis for historical reasons, and still others are sampled on a very roughly spacial basis (first opportunity following floor(pos/interval) changes, usually). The underlying phenomena are assumed to be spacially band-limited. Output samples of an estimate of the underlying phenomena are required at regular spacial intervals, in real time (but a constant lag is OK -- phase linear filters and all that) I want to understand the theory well enough to make a sound recomendation on the design of digital filters (to be implemented on a general purpose CPU in real time) to compute the estimate samples from the available sample data. 3) Is this a well-studied problem? If so, a reference should be all I need. 4) If not, I would appreciate any advice on how to procede. The following no-doubt-amateurish remarks are my thoughts to date. If they are not completely bogus, perhaps someone could give some advice on how to tighten it up? I have to admit to posting this before taking the math as far as I could, but I'm trying to avoid having to do all those transforms :-( Anyway, I'm thinking of proceeding like this: Normalize all cases to depth-referenced samples on a fine (high spacial frequency) comb. The synthetic sampling spacial frequency would be selected based on the output spacial frequency -- say 2x? 1x? 4x? Actual samples will be scattered randomly about in any given filtering window. Let us model this as multiplication of a hypothetical ideal sampling of the input at the synthetic frequency with a (Poisson-distributed, I suppose. Not important yet) random unit impulse comb. If we consider the random comb (ie, the jitter filter) and the low-pass filter as acting on the ideal input we get a mess, since its DC gain, if nothing else, will be all over the map. By convolving the jitter comb itself with the LPF function we can get a number measuring (at least in some sense) that mess. In particular, that number will be the DC gain of the composed filter. There will be other distortions not capturable in a single scalar of course. Assuming that the jitter comb points are sufficiently dense and uniform it would seem that normalizing the output wrt the DC gain estimate would be a reasonable thing to do. An alternate approach would be to do an LPF on the temporal axis and use interpolated samples of its output as spacial samples. This would seem to be essentially the same analysis except that the properties (in the filtering domain) of the jitter comb would be much more stable (less dependent on the instrument velocity). The problem with this approach is that the *spacial* cutoff frequency of the filtering process would then depend on the velocity. Actually that last may be the desired behaviour, but let us assume it is not. (A colleague is working on the physics of both the phenomena and the transucer behaviour to answer that question.) One could dynamically adjust the implicit scale of the FIR function, withing limits, to at least partially compensate for changes in instrument velocity. Does cutoff frequency tweaking by stride modulation in a FIR lookup table work OK, or would it be better for instance to "autorange" among a set of filter tables? Or is there a good fast way of doing the convolution without using a lookup table? Am I even asking the right questions? Should I be thinking IIR? Should I just hook the plotter up to a canned demo data stream? [:-)] Using a sample-hold approach might seem simpler, and it is in fact essentially what the existing system is using (along with really gross causal filters). The problem is that if one wants to use higher order filters and properly account for jitter, the number of points in the convolution climbs rapidly, and we only have so much CPU to spend. The comb-compensation mechanism proposed above uses all samples, allows for high-order (low quantization noise) underlying filter functions, and runs in time proportional to the number of available samples in the window. 5) Finally, if this isn't well studied, is it worth writing up? :-) Anybody with a stronger math background want to co-author? Any Rice people on these lists want to straighten me out over some expense-account suds? Thanks, all. -- Steve Nuchia South Coast Computing Services (713) 964-2462 "Innocence is a splendid thing, only it has the misfortune not to keep very well and to be easily misled." --- Immanuel Kant, Groundwork of the Metaphysic of Morals