Hello,
I need to create a set of data points that are essentially x and y values for a graph of position vs time. the x values range from 0 to 40 in seconds and the y values correspond to changing oscillatory motion. For example from 0 to 5 seconds I want a wave function with a frequency of 0.5 Hz then from 5 to 10 seconds I want to increase the frequency to 1.0 Hz. My position is what is changing to mimic sinusoidal waveform similar to a mass on a spring starting from a position of zero.
I'm not as concerned with the amplitude i.e. it could be 1 to -1. I thought I could do this using interpolation but i'm not sure how.
This is how it was done for a more simple motion in the past:
I'm really new to python and any help would be appreciated thanks!
I need to create a set of data points that are essentially x and y values for a graph of position vs time. the x values range from 0 to 40 in seconds and the y values correspond to changing oscillatory motion. For example from 0 to 5 seconds I want a wave function with a frequency of 0.5 Hz then from 5 to 10 seconds I want to increase the frequency to 1.0 Hz. My position is what is changing to mimic sinusoidal waveform similar to a mass on a spring starting from a position of zero.
I'm not as concerned with the amplitude i.e. it could be 1 to -1. I thought I could do this using interpolation but i'm not sure how.
This is how it was done for a more simple motion in the past:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
def synth_sledge(): seconds = np.arange( 0 , 15 , 1 / 1000 ) #evenly spaced values within a given interval e = 0.00000001 points = np.array([ [ 0 , 0 ], [ 0 + e, 0 ], [ 5 , 0 ], [ 5 + e, 0 ], [ 15 , 6 ], [ 15 + e, 6 ], ]) pos = scipy.interpolate.interp1d(points[:, 0 ],points[:, 1 ], kind = 'quadratic' )(seconds) return seconds, pos t, x = synth_sledge() x = scipy.ndimage.gaussian_filter(x, 50 ) |