On Nov 20, 2009, at 2:26 PM, David Trem wrote:
Hello,
Is sinc interpolation available in Scipy ?
Yes, use scipy.signal.resample which uses a Fourier method to downsample or upsample a signal: from scipy.signal import resample from numpy import r_, sin from pylab import plot x = r_[0:10] y = sin(x) yy = resample(x, 100) # This is a bit tricky to get the x-samples right xx = r_[0:10:101j][:-1] plot(x,y,'ro', xx, yy) -Travis
On Wed, Nov 25, 2009 at 3:48 PM, Travis Oliphant <oliphant@enthought.com>wrote:
from scipy.signal import resample from numpy import r_, sin from pylab import plot
x = r_[0:10] y = sin(x) yy = resample(x, 100)
# This is a bit tricky to get the x-samples right xx = r_[0:10:101j][:-1]
just a question, why don't you use numpy.linspace(0, 10, 101) ?
n = numpy.linspace(0, 10, 101)[:-1] array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3. , 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4. , 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6. , 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 6.9, 7. , 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, 8. , 8.1, 8.2, 8.3, 8.4, 8.5, 8.6, 8.7, 8.8, 8.9, 9. , 9.1, 9.2, 9.3, 9.4, 9.5, 9.6, 9.7, 9.8, 9.9, 10. ]) n == r_[0:10:101j][:-1] [True.....]
-- Giovanni Dall'Olio, phd student Department of Biologia Evolutiva at CEXS-UPF (Barcelona, Spain) My blog on bioinformatics: http://bioinfoblog.it
On Nov 25, 2009, at 10:16 AM, Giovanni Marco Dall'Olio wrote:
On Wed, Nov 25, 2009 at 3:48 PM, Travis Oliphant <oliphant@enthought.com
wrote:
from scipy.signal import resample from numpy import r_, sin from pylab import plot
x = r_[0:10] y = sin(x) yy = resample(x, 100)
# This is a bit tricky to get the x-samples right xx = r_[0:10:101j][:-1]
just a question, why don't you use numpy.linspace(0, 10, 101) ?
I do quite often (especially in module code), but r_ is less typing and I like the use of slice syntax to specify endpoints. -Travis
Corrected typo and improved code: typo: should be yy = resample(y,100) Improved code: from scipy.signal import resample from numpy import linspace, sin, pi from pylab import plot, show # replace 4*pi to see effect of non-periodic function (e.g. at either end) x = linspace(0,4*pi,10,endpoint=False) y = sin(x) # if you supply t, you get the interpolated t back as well. (yy,xx) = resample(y, 100, t = x) plot(x,y,'ro', xx, yy) show() Travis Oliphant-5 wrote:
On Nov 20, 2009, at 2:26 PM, David Trem wrote:
Hello,
Is sinc interpolation available in Scipy ?
Yes, use scipy.signal.resample which uses a Fourier method to downsample or upsample a signal:
from scipy.signal import resample from numpy import r_, sin from pylab import plot
x = r_[0:10] y = sin(x) yy = resample(x, 100)
# This is a bit tricky to get the x-samples right xx = r_[0:10:101j][:-1]
plot(x,y,'ro', xx, yy)
-Travis
_______________________________________________ SciPy-User mailing list SciPy-User@scipy.org http://mail.scipy.org/mailman/listinfo/scipy-user
-- View this message in context: http://old.nabble.com/sinc-interpolation-tp26449760p33974580.html Sent from the Scipy-User mailing list archive at Nabble.com.
participants (3)
-
bdb112 -
Giovanni Marco Dall'Olio -
Travis Oliphant