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 [ ]: