Back to eand.py project, and with additional features. We discussed last time a numerical differentiation method capable of handling arbitrarily-noisy signals, however one could rapidly oppose it two limitations.
The most evident, perhaps, is the fact that the current implementation only deals with monodimensional signals, i.e. functions of a single variable, while our world is slightly more complicated. Yet most signals encountered in nature hopefully meet certain conditions of regularity so that the problem can be at least partially circumvented. The other important issue is somehow more tricky, namely the necessity of equally-spaced samples. Although quite a lot of practical differentiation problems may boil down to this framework at the cost of reasonable approximations, the question particularly holds when information is not equally distributed or accessible accross dimensions.
Both issues are tackled in a recent article by Riachy et al. (2011), presenting theoretical developments and implementation suggestions, which I merely coded back into Python.
As before, the corresponding code is available on eand.py package’s repository, and you can download it and modify it as you wish under the terms of the GNU General Public License version 3. Oh, and I just found out that iPython project offered a nice interface to display code and associated outputs, so that you can understand that I really meant each letter when I named the package :)
Next time, something completely different!