In [61]:
from __future__ import print_function, division

import thinkdsp
import thinkplot
import numpy
import math
import pandas
import scipy.fftpack

import autocorr
import dct

PI2 = 2 * math.pi

%matplotlib inline

In [62]:
sin = thinkdsp.SinSignal(freq=440, amp=0.5, offset=0)


sinwave = sin.make_wave(duration=2, start=0, framerate=11025)
sinwave.segment(1,0.03).plot()
sinwave.make_audio()


Out[62]:

In [63]:
random = [220, 440, 880, 1760, 1318.51, 659.25, 1046.50, 523.25]
mix = 0
for i in random:
    sin_sig = thinkdsp.SinSignal(freq=i, amp=0.5, offset=0)
    mix = mix + sin_sig

mixwave = mix.make_wave(duration=2, start=0, framerate=11025)
mixwave.segment(1,0.03).plot()
mixwave.make_audio()


Out[63]:

In [70]:
tri = thinkdsp.TriangleSignal(freq=440, amp=0.5, offset=0)


triwave = tri.make_wave(duration=2, start=0, framerate=11025)
triwave.segment(1,0.03).plot()
triwave.make_audio()


Out[70]:

In [64]:
spec_sin = sinwave.make_spectrum()
spec_sin.plot()



In [65]:
spec_mix = mixwave.make_spectrum()
spec_mix.plot()



In [66]:
spec_mix.high_pass(cutoff = 1000, factor= 0.1)
spec_mix.plot()
band_cut_wave = spec_mix.make_wave()
band_cut_wave.make_audio()


Out[66]:

In [69]:
nrows = 1625
df = pandas.read_csv('BitcoinData.csv', nrows=nrows, parse_dates=[0])
ys = df.Close.values
wave = thinkdsp.Wave(ys, framerate=1)
wave.plot() #This is the actual bitcoin data
thinkplot.config(xlabel='Time', ylabel='amplitude (# bitcoins)', ylim = [0, 1200], legend=False)



In [ ]: