Greetings, first, I'm totally new to python.
What I'm attempting to do is rebuild a clipped off sound wave.
As I've been poking around I've come across things like "cubic spline interpolation" (that sounds like what I need -- but really is way over my head)
I've come across other posts that I've gleaned some code from and have put together the following test program.
The data points are from a real (clean) wave cycle out of a sound file.
I'm then clipping a number of them to simulate a clipped wave.
The spline and interp1d routines do run, but output what I'm putting in.
So, looking for some experience/help/direction ... thanks
What I'd like to see are values similar to the original values I clipped.
#! python3.2 import sys import os import numpy as np from struct import * from scipy.interpolate import InterpolatedUnivariateSpline as spline from scipy.interpolate import interp1d wave = ''' 728 2563 4520 6387 8044 9518 10874 12175 13418 14489 15259 15744 16005 16065 15963 15733 15400 14922 14251 13281 12007 10525 8927 7281 5609 3756 1712'''.strip().splitlines() y_wavearray = np.array(wave,np.float64) y_wavearray = y_wavearray # clip top points y_wavearray = y_wavearray y_wavearray = y_wavearray y_wavearray = y_wavearray x_points = len(wave) +1 x_values = np.arange(1,x_points) x_array = np.array(x_values,np.float64) #cubic = spline(x_array, y_wavearray) #for i in range(1,x_points): # print(i, wave[i-1], int(cubic(i) +.5)) cubic = interp1d(x_values, y_wavearray, kind='cubic') for i in range(1,x_points): print(i, wave[i-1], int(cubic(i) +.5))