Example #1
0

class SawtoothSignal(Sinusoid):
    """Represents a sawtooth signal."""
    def evaluate(self, ts):
        """Evaluates the signal at the given times.
        ts: float array of times
        returns: float wave array
        """
        cycles = self.freq * ts + self.offset / np.pi / 2
        frac, _ = np.modf(cycles)
        ys = normalize(unbias(frac), self.amp)
        return ys


sawtooth = SawtoothSignal().make_wave(duration=0.5, framerate=40000)
from thinkdsp import SquareSignal
sawtooth.make_spectrum().plot(color='black')
square = SquareSignal(amp=0.5).make_wave(duration=0.5, framerate=40000)
square.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')
sawtooth.make_spectrum().plot(color='yellow')
sawtooth.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')
from thinkdsp import TriangleSignal
sawtooth.make_spectrum().plot(color='red')
triangle = TriangleSignal(amp=0.79).make_wave(duration=0.5, framerate=40000)
triangle.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')
plt.show()
Example #2
0
def filter_spectrum(spectrum):
    spectrum.hs[1:] /= spectrum.fs[1:]
    spectrum.hs[0] = 0


plt.subplot(311)
spectrum = wave.make_spectrum()
spectrum.plot(high=10000, color='gray')
filter_spectrum(spectrum)
spectrum.scale(440)
spectrum.plot(high=10000)
decorate(xlabel='Frequency (Hz)')

plt.subplot(312)
spectrum1 = wave1.make_spectrum()
spectrum1.plot(high=10000, color='red')
filter_spectrum(spectrum1)
spectrum1.scale(440)
spectrum1.plot(high=10000)
decorate(xlabel='Frequency (Hz)')

plt.subplot(313)
spectrum2 = wave2.make_spectrum()
spectrum2.plot(high=10000, color='green')
filter_spectrum(spectrum2)
spectrum2.scale(440)
spectrum2.plot(high=10000)
decorate(xlabel='Frequency (Hz)')

filtered = spectrum.make_wave()
Example #3
0
from thinkdsp import SawtoothSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt


def filter_spectrum(spectrum):
    spectrum.hs[1:] /= spectrum.fs[1:]
    spectrum.hs[0] = 0


wave = SawtoothSignal(freq=440).make_wave(duration=0.5)
spectrum = wave.make_spectrum()
spectrum.plot(high=10000, color='gray')
filter_spectrum(spectrum)
spectrum.scale(440)
spectrum.plot(high=10000)
decorate(xlabel='Frequency (Hz)')
plt.show()
Example #4
0
filter_spectrum(spectrum2)
spectrum2.scale(440)
plt.subplot(3,3,4)
spectrum2.plot(high=10000, color='red')
plt.title("方波")
plt.subplot(3,3,5)
wave2.plot(color='red')
plt.title('方波变换前')
plt.subplot(3,3,6)
spectrum2.make_wave().plot(color='red')
plt.title("方变换后")
spectrum1.make_wave.write(filename='output2-3.wav')


wave3=SawtoothSignal(freq=440).make_wave(duration=0.5)
spectrum3 = wave3.make_spectrum()
filter_spectrum(spectrum3)
spectrum3.scale(440)
plt.subplot(3,3,7)
spectrum3.plot(high=10000, color='green')
plt.title("方波")
plt.subplot(3,3,8)
wave3.plot(color='green')
plt.title('方波变换前')
plt.subplot(3,3,9)
spectrum3.make_wave().plot(color='green')
plt.title("方变换后")
plt.show()


Example #5
0
from thinkdsp import decorate
from thinkdsp import Sinusoid
from thinkdsp import normalize, unbias
from thinkdsp import SinSignal
from thinkdsp import SquareSignal
from thinkdsp import TriangleSignal
from thinkdsp import SawtoothSignal
import numpy as np
import matplotlib.pyplot as plt

sawtooth = SawtoothSignal().make_wave(duration=0.5, framerate=40000)
sawtooth.make_audio()

plt.subplot(311)
sawtooth.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')

plt.subplot(312)
sawtooth.make_spectrum().plot(color='red')
square = SquareSignal(amp=0.5).make_wave(duration=0.5, framerate=40000)
square.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')

plt.subplot(313)
sawtooth.make_spectrum().plot(color='green')
triangle = TriangleSignal(amp=0.79).make_wave(duration=0.5, framerate=40000)
triangle.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')

plt.show()
Example #6
0
trangle.write("三角波声音.wav")
play("三角波声音.wav", flags=1)
square = SquareSignal(freq=440).make_wave(duration=0.01, framerate=10000)
plt.subplot(232)
plt.title("square")
square.plot()
square.write("方波声音.wav")
play("方波声音.wav", flags=1)
sawtooth = SawtoothSignal(freq=440).make_wave(duration=0.01, framerate=10000)
plt.subplot(233)
plt.title("sawtooth")
sawtooth.plot()
sawtooth.write("斜波声音.wav")
play("斜波声音.wav", flags=1)

spectrum_tra = trangle.make_spectrum()
filter_spectrum(spectrum_tra)
plt.subplot(234)
spectrum_tra.plot()

spectrum_squ = square.make_spectrum()
filter_spectrum(spectrum_squ)
plt.subplot(235)
spectrum_squ.plot()

spectrum_saw = sawtooth.make_spectrum()
filter_spectrum(spectrum_saw)
plt.subplot(236)
spectrum_saw.plot()

plt.show()
Example #7
0
import numpy as np
import matplotlib.pyplot as plt

from thinkdsp import decorate
from thinkdsp import Sinusoid
from thinkdsp import normalize, unbias
from thinkdsp import SawtoothSignal

sawtooth = SawtoothSignal().make_wave(duration=0.5, framerate=40000)
plt.subplot(4, 1, 1)
sawtooth.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')

from thinkdsp import SquareSignal

sawtooth.make_spectrum().plot(color='gray')
square = SquareSignal(amp=0.5).make_wave(duration=0.5, framerate=40000)
plt.subplot(4, 1, 2)
square.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')

from thinkdsp import TriangleSignal
plt.subplot(4, 1, 3)
sawtooth.make_spectrum().plot(color='gray')
triangle = TriangleSignal(amp=0.79).make_wave(duration=0.5, framerate=40000)
plt.subplot(4, 1, 4)
triangle.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')

plt.show()