Example #1
0
def plot_spectrogram(wave, seg_length):
    """
    """
    spectrogram = wave.make_spectrogram(seg_length)
    print('Time resolution (s)', spectrogram.time_res)
    print('Frequency resolution (Hz)', spectrogram.freq_res)
    spectrogram.plot(high=700)
    decorate(xlabel='Time(s)', ylabel='Frequency (Hz)')
Example #2
0
def test_spectrum():
    signal = Chirp(start=220, end=440)
    wave = signal.make_wave(duration=1)
    spectrum = wave.make_spectrum()
    spectrum.plot(high=700)
    decorate(xlabel='Frequency (Hz)')

    signal = Chirp(start=220, end=440)
    wave = signal.make_wave(duration=1, framerate=11025)
    plot_spectrogram(wave, 512)
Example #3
0
def test_Sawtooth():
    signal = SawtoothSignal(200)
    duration = signal.period * 3
    segment = signal.make_wave(duration, framerate=10000)
    segment.plot()
    decorate(xlabel='Time (s)')

    wave = signal.make_wave(duration=0.5, framerate=10000)
    wave.apodize()
    spectrum = wave.make_spectrum()
    spectrum.plot()
    decorate(xlabel='Frequency (Hz)')
Example #4
0
def test_Chirp():
    pathdir_out = "chap3_out"
    if not os.path.exists(pathdir_out):
        try:
            os.makedirs(pathdir_out)
        except:
            pass
    wavfilename = pathdir_out + "/Chirp.wav"
    signal = Chirp(start=220, end=880)
    wave1 = signal.make_wave(duration=2)
    wave1.segment(start=0, duration=0.05).plot()
    decorate(xlabel='Time (s)')
    wave1.write(wavfilename)
def filter_wave(wave, start, duration, cutoff):
    """Selects a segment from the wave and filters it.
    
    Plots the spectrum and displays an Audio widget.
    
    wave: Wave object
    start: time in s
    duration: time in s
    cutoff: frequency in Hz
    """
    segment = wave.segment(start, duration)
    spectrum = segment.make_spectrum()

    spectrum.plot(high=5000, color='0.7')
    spectrum.low_pass(cutoff)
    spectrum.plot(high=5000, color='#045a8d')
    decorate(xlabel='Frequency (Hz)')
    
    audio = spectrum.make_wave().make_audio()
    display(audio)
Example #6
0
from thinkdsp import CosSignal, SinSignal
from thinkdsp import decorate
cos_sig = CosSignal(freq=440, amp=1.0, offset=0)
sin_sig = SinSignal(freq=880, amp=0.5, offset=0)
oadd = SinSignal(freq=500, amp=0.7, offset=0)
mix = sin_sig + cos_sig + oadd
cos_sig.plot()
decorate(xlabel='cos_sig')
sin_sig.plot()
decorate(xlabel='sin_sig')
mix.plot()
decorate(xlabel='mix')
wave = mix.make_wave(duration=5, start=0, framerate=11025)
wave.play('temp.wav')
spectrum = wave.make_spectrum()
spectrum.plot()
decorate(xlabel='Frequency (Hz)')
Example #7
0
from thinkdsp import CosSignal, SinSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt
cos_sig = CosSignal(freq=440, amp=1.0, offset=0)
sin_sig = SinSignal(freq=880, amp=0.5, offset=0)

mix = sin_sig + cos_sig
wave = mix.make_wave(duration=0.01, start=0, framerate=11025)
wave.play('test3.wav')
wave.normalize()
wave.make_audio()
plt.subplot(2, 1, 1)
wave.plot()
spectrum = wave.make_spectrum()
plt.subplot(2, 1, 2)
spectrum.plot(high=5000)
decorate(xlabel='Frequency (Hz)')
plt.show()
Example #8
0
sys.path.insert(1, 'dsp-modulo')

import numpy as np
import thinkplot as pl

from thinkdsp import decorate
from thinkdsp import UncorrelatedUniformNoise

senal = UncorrelatedUniformNoise()
wave = senal.make_wave(duration=0.5, framerate=22050)
wave.write("ruidoNoCorrelacionadoUniforme.wav")

segmento = wave.segment(duration=0.05)

segmento.plot()
decorate(xlabel="tiempo", ylabel="amplitud")
pl.show()

espectro = wave.make_spectrum()
espectro.plot_power()
decorate(xlabel="frecuencia", ylabel="power")
pl.show()

espectro_integrado = espectro.make_integrated_spectrum()
espectro_integrado.plot_power()
decorate(xlabel="frecuencia", ylabel="poder acumulado")
pl.show()

pendiente = espectro.estimate_slope()
print("pendiente: " + str(pendiente.slope))
Example #9
0
import sys

sys.path.insert(1, 'dsp-modulo')

import numpy as np
import thinkplot as plt

from thinkdsp import decorate
from thinkdsp import PinkNoise

pendientes = [0.0, 1.5, 2.0]

for pendiente in pendientes:
    senal = PinkNoise(beta=pendiente)
    wave = senal.make_wave(duration=0.5, framerate=22050)
    #wave.write("ruido_rosa.wav")
    #wave.plot()
    #decorate(xlabel="Tiempo", ylabel= "Amplitud")
    #plt.show()

    etiqueta = f'pendiente= {pendiente}'
    espectro = wave.make_spectrum()
    espectro.plot_power(label=etiqueta, alpha=0.5)

loglog = dict(xscale="log", yscale="log")
decorate(xlabel="Frecuencia", ylabel="Poder", **loglog)
plt.show()
Example #10
0
import sys
sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import CosSignal
from thinkdsp import decorate

import matplotlib.pyplot as plt

seno = SinSignal(freq=20, amp=1, offset=0)
coseno = CosSignal(freq=50, amp=1.3, offset=0)

waveSeno = seno.make_wave(duration=1, start=0, framerate=11025)
waveCoseno = coseno.make_wave(duration=1, start=0, framerate=11025)

waveResultante = waveSeno + waveCoseno

decorate(xlabel="Tiempo (s)")
decorate(ylabel="Amplitud")

waveSeno.plot()
waveCoseno.plot()
plt.show()

decorate(xlabel="Tiempo (s)")
decorate(ylabel="Amplitud")
waveResultante.plot()
plt.show()
Example #11
0
from thinkdsp import Spectrum, TriangleSignal, SquareSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt
import numpy as np

triangle = TriangleSignal(440).make_wave(duration=0.01)
plt.subplot(2, 1, 1)
triangle.plot()
decorate(xlabel="time(s)")
spectrum = triangle.make_spectrum()
print(spectrum.hs[0])

spectrum.hs[0] = 100
plt.subplot(2, 1, 2)
triangle.plot(color="gray")
spectrum.make_wave().plot()
decorate(xlabel='Time(s)')
plt.show()
Example #12
0
from thinkdsp import CosSignal, SinSignal, decorate
import matplotlib.pyplot as plt

cosine_signal = CosSignal(freq=440, amp=1.0, offset=0)

sine_signal = SinSignal(freq=880, amp=0.5, offset=0)

cosine_signal.plot()
decorate(xlabel='Time (s)')

# figure, (axes1, axes2) = plt.subplots(nrows=2)

# axes1.plot(cosine_signal)
# axes1.set_xlabel('Time (s)')

plt.show()
Example #13
0
import sys

sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import decorate
import thinkplot

frecuencia1 = SinSignal(freq=1500, amp=0.3, offset=0)
frecuencia2 = SinSignal(freq=380, amp=0.6, offset=0)
frecuencia3 = SinSignal(freq=5300, amp=1, offset=0)
frecuencia4 = SinSignal(freq=12300, amp=0.1, offset=0)

resultante1 = frecuencia1 + frecuencia2
resultante2 = frecuencia3 + frecuencia4

waveResultante1 = resultante1.make_wave(duration=1, start=0, framerate=44100)
waveResultante2 = resultante2.make_wave(duration=1, start=1.3, framerate=44100)

wavefinal = waveResultante1 + waveResultante2

wavefinal.plot()
decorate(xlabel="Tiempo (s)")

thinkplot.show()

espectro = wavefinal.make_spectrum()
espectro.plot()
decorate(xlabel="Hz")
thinkplot.show()
Example #14
0
File: 2-4.py Project: qqqmmy/qiu
from thinkdsp import Spectrum, TriangleSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt
import numpy as np

signal = TriangleSignal(440) #绘制三角波
duration = signal.period*3
segment = signal.make_wave(duration, framerate=10000)
plt.subplot(3,1,1)
segment.plot()
decorate(xlabel='Time (s)')

wave = signal.make_wave(duration=0.01, framerate=10000)
plt.subplot(3,1,2)
Spectrum = wave.make_spectrum()
Spectrum.plot()
print(Spectrum.hs[0])
decorate(title=Spectrum.hs[0])

plt.subplot(3,1,3)
Spectrum.hs[0] = 100
Spectrum.plot()
decorate(title=Spectrum.hs[0])

plt.show()
Example #15
0
import sys
sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import decorate

import thinkplot

frecuencia1 = SinSignal(freq=1500, amp=0.3, offset=0)
frecuencia2 = SinSignal(freq=380, amp=0.6, offset=0)
frecuencia3 = SinSignal(freq=5300, amp=1.0, offset=0)
frecuencia4 = SinSignal(freq=12300, amp=0.1, offset=0)

resultante1 = frecuencia1 + frecuencia2
resultante2 = frecuencia3 + frecuencia4

waveResultante1 = resultante1.make_wave(duration=1, start=0, framerate=44100)
waveResultante2 = resultante2.make_wave(duration=1, start=1.3, framerate=44100)

waveFinal = waveResultante1 + waveResultante2

waveFinal.plot()
decorate(xlabel="Tiempo (s)")
thinkplot.show()

espectro = waveFinal.make_spectrum()
espectro.plot()
decorate(xlabel="Fracuencia (Hz)")
thinkplot.show()
import sys

sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import decorate
from thinkdsp import read_wave

import thinkplot

waveTelefono = read_wave("telefono.wav")
waveTelefono.plot()
decorate(xlabel="Tiempo(s)")
thinkplot.show()

#espectro = waveTelefono.make_spectrum()
#espectro.plot()
#decorate(xlabel='Frecuencia (Hz)')
#thinkplot.show()

wavePrimerDigito = waveTelefono.segment(start=0, duration=0.5)
wavePrimerDigito.plot()
decorate(xlabel="Tiempo (s)")
thinkplot.show()
#2

espectroPrimerDigito = wavePrimerDigito.make_spectrum()
#espectroPrimerDigito.plot()
#decorate(xlabel='Frecuencia (Hz)')
#thinkplot.show()
Example #17
0
import sys
sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import decorate

import thinkplot

frecuencia1 = SinSignal(freq=1500, amp=0.3, offset=0)
frecuencia2 = SinSignal(freq=380, amp=0.6, offset=0)
frecuencia3 = SinSignal(freq=5300, amp=1.0, offset=0)
frecuencia4 = SinSignal(freq=12300, amp=0.1, offset=0)

resultante1 = frecuencia1 + frecuencia2
resultante2 = frecuencia3 + frecuencia4

waveResultante1 = resultante1.make_wave(duration=1, start=0, framerate=44100)
waveResultante2 = resultante2.make_wave(duration=1, start=1.3, framerate=44100)

waveFinal = waveResultante1 + waveResultante2

waveFinal.plot()
decorate(xlabel="tiempo S")
thinkplot.show()

espectro = waveFinal.make_spectrum()
espectro.plot()
decorate(xlabel="frecuencia Hz")
thinkplot.show()
Example #18
0
#decorate(xlabel="Tiempo (s)")
#thinkplot.show()

#espectro = waveTelefono.make_spectrum()
#espectro.plot()
#decorate(xlabel="Frecuencia (Hz)")
#thinkplot.show

wavePrimerDigito = waveTelefono.segment(start=0, duration=0.5)
#wavePrimerDigito.plot()
#decorate(xlabel="Tiempo (s)")
#thinkplot.show()
# 22-45-32
espectroPrimerDigito = wavePrimerDigito.make_spectrum()
espectroPrimerDigito.plot()
decorate(xlabel="Frecuencia 1 (Hz)")
thinkplot.show()

waveSegundoDigito = waveTelefono.segment(start=0.5, duration=0.5)
espectroSegundoDigito = waveSegundoDigito.make_spectrum()
espectroSegundoDigito.plot()
decorate(xlabel="Frecuencia 2 (Hz)")
thinkplot.show()

waveTercerDigito = waveTelefono.segment(start=1, duration=0.5)
espectroTercerDigito = waveTercerDigito.make_spectrum()
espectroTercerDigito.plot()
decorate(xlabel="Frecuencia 3 (Hz)")
thinkplot.show()

waveCuartoDigito = waveTelefono.segment(start=1.5, duration=0.5)
Example #19
0
import sys
sys.path.insert(1, 'dsp-modulo')

import numpy as np
import thinkplot as plt

from thinkdsp import decorate
from thinkdsp import BrownianNoise

senal = BrownianNoise()
wave = senal.make_wave(duration=0.5, framerate=22050)
wave.write("ruidoBrowniano.wav")

wave.plot()
decorate(xlabel="Tiempo", ylabel="Amplitud")
plt.show()

espectro = wave.make_spectrum()
espectro.plot_power()
loglog = dict(xscale="log", yscale="log")
decorate(xlabel="frecuencia", ylabel="poder", **loglog)
plt.show()

pendiente = espectro.estimate_slope()
print("pendiente" + str(pendiente.slope))
Example #20
0
import thinkdsp
import numpy as np
from thinkdsp import Chirp, SawtoothSignal, Sinusoid
import math
import matplotlib.pyplot as plt
from winsound import PlaySound

wave = thinkdsp.read_wave('72475__rockwehrmann__glissup02.wav')
wave.make_spectrogram(512).plot(high=5000)
thinkdsp.decorate(xlabel='Time (s)', ylabel='Frequency (Hz)')
plt.show()
Example #21
0
#import sys
#sys.path.insert(1,'dsp-modulo')
from thinkdsp import SinSignal
from thinkdsp import CosSignal
from thinkdsp import decorate

#modulo para mostrar las graficas
import matplotlib.pyplot as plt

#crear señal senoidal

seno = SinSignal(freq=200, amp=0.7, offset=0)
coseno = CosSignal(freq=800, amp=1.1, offset=0)

#creamos grafica y asignamos propiedades
seno.plot()
coseno.plot()

decorate(xlabel='Tiempo (s)')
decorate(ylabel='Amplitud')

plt.show()
import sys
sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import CosSignal
from thinkdsp import decorate

import matplotlib.pyplot as plt

seno = SinSignal(freq=20, amp=1, offset=0)
coseno= CosSignal(freq=50,amp=1.3, offset=0)

waveSeno = seno.make_wave(duration=1, start=0, framerate=11025)
waveCoseno = coseno.make_wave(duration=1, start=0, framerate=11025)

waveResultante = waveSeno + waveCoseno

decorate(xlabel='Tiempo(s)', ylabel='Amplitud')

waveSeno.plot()
waveCoseno.plot()
plt.show()

decorate(xlabel="Tiempo (s)")
decorate(ylabel="Amplitud")

waveResultante.plot()

plt.show()
Example #23
0
        """
        改写evaluate函数
        ts: 时间
        """
        freqs = np.linspace(self.start, self.end, len(ts))
        dts = np.diff(ts, prepend=0)
        dphis = PI2 * freqs * dts
        phases = np.cumsum(dphis)
        cycles = phases / PI2
        frac, _ = np.modf(cycles)
        ys = normalize(unbias(frac), self.amp)
        return ys


signal = Chirp(start=220, end=440)
wave = signal.make_wave(duration=1)
spectrum = wave.make_spectrum()
plt.subplot(2, 1, 1)
spectrum.plot(high=700)
decorate(xlabel='Frequency (Hz)')
wave.play("niaojiao.wav")

signal = SawtoothChirp(start=220, end=880)
wave = signal.make_wave(duration=1, framerate=14000)
sp = wave.make_spectrogram(256)
plt.subplot(2, 1, 2)
sp.plot()
decorate(xlabel='Time (s)', ylabel='Frequency (Hz)')
plt.show()
#wave.play("temp2.wav")
Example #24
0
from thinkdsp import SawtoothSignal, Signal, Spectrum
import matplotlib.pyplot as plt
from thinkdsp import decorate

Signal = SawtoothSignal(200)
duration = Signal.period * 3
segment = Signal.make_wave(duration, framerate=20000)
segment.plot()
decorate(xlabel='Time(s)')
plt.show()

plt.show()
wave = Signal.make_wave(duration=0.5, framerate=10000)
wave.apodize()
wave.make_audio()
wave.write(filename='2-2.wav')

Spectrum = wave.make_spectrum()
Spectrum.plot()
decorate(xlabel='频谱(Hz)')
plt.show()
Example #25
0
import sys
sys.path.insert(1, 'dsp-modulo')

import numpy as np
import thinkplot as plt

from thinkdsp import decorate
from thinkdsp import UncorrelatedUniformNoise

senal = UncorrelatedUniformNoise()
wave = senal.make_wave(duration=0.5, framerate=22050)
wave.write("ruido_no_correlacional_uniforme.wav")

segmento = wave.segment(duration=0.05)

segmento.plot()
decorate(xlabel="Tiempo(s)", ylabel="Amplitud")
plt.show()

espectro = wave.make_spectrum()
espectro.plot_power()
decorate(xlabel="Frecuencia (Hz)", ylabel="Poder")
plt.show()

espectro_integrado = espectro.make_integrated_spectrum()
espectro_integrado.plot_power()
decorate(xlabel="Frecuencia (Hz)", ylabel="Poder acumulado")
plt.show()

pendiente = espectro.estimate_slope()
print("Pendiente: " + str(pendiente.slope))
Example #26
0
import os
import wget
import matplotlib.pyplot as plt
from converter import fromMp3ToWav
from matrix_creator import VolumeMatrix
from constellation_map_creator import ConstellationMap
if not os.path.exists('thinkdsp.py'):
    wget.download(
        'https://github.com/AllenDowney/ThinkDSP/raw/master/code/thinkdsp.py')
from thinkdsp import read_wave, decorate  # no pep8

if __name__ == "__main__":

    src = '~PATH_TO_THE_SOUND_SOURCE/[file_name.mp3 or file_name.wav]'
    if 'mp3' in src:
        src = fromMp3ToWav(src)
    wave = read_wave(src)
    wave.normalize()
    matrix = VolumeMatrix(wave, (200, 2000), 0.01)
    matrix.decorator()
    const_map = ConstellationMap(matrix)
    const_map.find_stars()
    stars = const_map.data_for_map_drawing
    plt.figure(figsize=(10, 7))
    plt.subplots_adjust(bottom=0.1)
    plt.scatter(stars[:, 0], stars[:, 1], marker="x")
    decorate(xlabel='Time, s', ylabel='Frequency, Hz')
    plt.show()
from thinkdsp import SinSignal
from thinkdsp import decorate

from thinkdsp import read_wave
from thinkdsp import play_wave

import matplotlib.pyplot as plt

seno = SinSignal(freq=440, amp=1.0, offset=0)
segundo_seno = SinSignal(freq=340, amp=1, offset=0)
tercer_seno = SinSignal(freq=600, amp=0.7, offset=0)

wave_seno = seno.make_wave(duration=1.0, start=1, framerate=44100)
wave_segundo_seno = segundo_seno.make_wave(duration=1.0,
                                           start=2,
                                           framerate=44100)
wave_tercer_seno = tercer_seno.make_wave(duration=1.0,
                                         start=3,
                                         framerate=44100)

resultante = wave_seno + wave_segundo_seno + wave_tercer_seno

decorate(xLabel="Tiempo (s)")
decorate(yLabel="Amplitud")

resultante.plot()

resultante.write("Sonido.wav")

plt.show()
Example #28
0
import sys
sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import decorate
from thinkdsp import CosSignal

#crear señal senoidal
seno = SinSignal(freq=400, amp=0.7, offset=0)
coseno = CosSignal(freq=800, amp=1.1, offset=0)

#modulo para mostrar grafiicas
import matplotlib.pyplot as plt

#crear grafica en memoria
seno.plot()
decorate(xlabel='tiempo (s)')
decorate(ylabel='amplitud')

coseno.plot()
plt.show()
import sys
sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import decorate
import thinkplot

frecuencia1 = SinSignal(freq=1500, amp=0.3, offset=0)
frecuencia2 = SinSignal(freq=380, amp=0.6, offset=0)

frecuencia3 = SinSignal(freq=5300, amp=1.0, offset=0)
frecuencia4 = SinSignal(freq=12300, amp=0.1, offset=0)

resultante1 = frecuencia1 + frecuencia2
resultante2 = frecuencia3 + frecuencia4

waveResultante1 = resultante1.make_wave(duration=1,start=0,framerate=44100)
waveResultante2 = resultante2.make_wave(duration=6,start=1.3,framerate=44100)

waveFinal = waveResultante1 + waveResultante2

waveFinal.plot()
decorate(xLabel="Tiempo (s)")
thinkplot.show()

espectro = waveFinal.make_spectrum()
espectro.plot()
decorate(xLabel="Frecuencia (Hz)")
thinkplot.show()
Example #30
0
import sys
sys.path.insert(1,'dsp-modulo')

import numpy as np
import thinkplot as plt

from thinkdsp import decorate
from thinkdsp import PinkNoise

pendientes = [0.0, 1.5, 2.0]

for pendiente in pendientes:
    senal = PinkNoise(beta=pendiente)
    wave = senal.make_wave(duration=0.5, framerate=22050)
    #wave.write("ruidorosa.wav")

    #wave.plot()
    #decorate(xlabel="tiempo",ylabel="amplitud")
    #plt.show()

    etiqueta = f'pendiente={pendiente}'
    #etiqueta = "pendiente=" + pendiente

    espectro = wave.make_spectrum()
    espectro.plot_power()

loglog = dict(xscale="log",yscale="log")
decorate(xlabel="frecuencia", ylabel="poder", **loglog)
plt.show()