def interp24(x):
<EOL>b2,a2 = signal.butter(<NUM_LIT:10>,<NUM_LIT:1>/<NUM_LIT>)<EOL>y1 = upsample(x,<NUM_LIT:2>)<EOL>y1 = signal.lfilter(b2,a2,<NUM_LIT:2>*y1)<EOL>b3,a3 = signal.butter(<NUM_LIT:10>,<NUM_LIT:1>/<NUM_LIT>)<EOL>y2 = upsample(y1,<NUM_LIT:3>)<EOL>y2 = signal.lfilter(b3,a3,<NUM_LIT:3>*y2)<EOL>b4,a4 = signal.butter(<NUM_LIT:10>,<NUM_LIT:1>/<NUM_LIT>)<EOL>y3 = upsample(y2,<NUM_LIT:4>)<EOL>y3 = signal.lfilter(b4,a4,<NUM_LIT:4>*y3)<EOL>return y3<EOL>
Interpolate by L = 24 using Butterworth filters.

The interpolation is done using three stages. Upsample by 
L = 2 and lowpass filter, upsample by 3 and lowpass filter, then
upsample by L = 4 and lowpass filter. In all cases the lowpass
filter is a 10th-order Butterworth lowpass.

Parameters
----------
x : ndarray of the input signal

Returns
-------
y : ndarray of the output signal

Notes
-----
The cutoff frequency of the lowpass filters is 1/2, 1/3, and 1/4 to 
track the upsampling by 2, 3, and 4 respectively.

Examples
--------
>>> y = interp24(x)