from __future__ import division
import numpy as np
import matplotlib.pyplot as pt
wave = 60*load("cs450.npy")
plot(wave)
from simple_audio import play
play(wave)
n = 256
integers = arange(n)
omega = exp(1j*2*np.pi/n)
dft_matrix = omega ** (integers * integers[:, newaxis])
inv_dft_matrix = 1./n*dft_matrix.T.conj()
chunked = wave.reshape(-1, n)
transformed = np.dot(inv_dft_matrix, chunked.T).T
imshow(log10(1e-4+abs(transformed)).T); colorbar()
modified = transformed.copy()
#modified[:,5:-5] *= 1e-2
#modified *= 1e-2
#modified[:,5:-5] /= 1e-2
nshift = 3
modified.fill(0)
modified[:, nshift:n/2] = transformed[:, 0:n/2-nshift]
modified[:, n/2:n-nshift] = transformed[:, n/2+nshift:]
imshow(log10(1e-4+abs(modified)).T); colorbar()
chunked = modified.reshape(-1, n)
result = np.dot(dft_matrix, chunked.T).T
result = result.reshape(-1)
play(result.real)
play(wave.real)