Ejemplo n.º 1
0
def test_square():
    signal = SquareSignal(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)')
Ejemplo n.º 2
0
import os
import thinkdsp
from winsound import PlaySound
import matplotlib.pyplot as plt
from thinkdsp import decorate
from thinkdsp import SquareSignal


def play(file, flags):
    print('Now play ' + file)
    PlaySound(file, flags)
    print('end')


square = SquareSignal(1500).make_wave(duration=0.5, framerate=10000)
square.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')
square.make_audio()
square.write("方波声音.wav")
play("方波声音.wav", flags=1)
plt.show()
Ejemplo n.º 3
0
import sys
sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import SquareSignal
from thinkdsp import decorate
import thinkplot
import numpy

senalRectangular = SquareSignal(freq=2, amp=1.0, offset=numpy.pi)
waveRectangular = senalRectangular.make_wave(duration=1,
                                             start=0,
                                             framerate=44100)

senalSenoidal = SinSignal(freq=2, amp=1, offset=0)
harmonico1 = SinSignal(freq=senalSenoidal.freq * 3, amp=0.3, offset=0)
harmonico2 = SinSignal(freq=senalSenoidal.freq * 5, amp=0.25, offset=0)
harmonico3 = SinSignal(freq=senalSenoidal.freq * 7, amp=0.20, offset=0)
harmonico4 = SinSignal(freq=senalSenoidal.freq * 9, amp=0.15, offset=0)
harmonico5 = SinSignal(freq=senalSenoidal.freq * 11, amp=0.1, offset=0)
harmonico6 = SinSignal(freq=senalSenoidal.freq * 13, amp=0.05, offset=0)
waveSenoidal = senalSenoidal.make_wave(duration=1, start=0, framerate=44100)
mezcla = senalSenoidal + harmonico1 + harmonico2 + harmonico3 + harmonico4 + harmonico5 + harmonico6
waveMezcla = mezcla.make_wave(duration=1, start=0, framerate=44100)

waveRectangular.plot()
waveMezcla.plot()
thinkplot.show()

espectroRectangular = waveRectangular.make_spectrum()
espectroMezcla = waveMezcla.make_spectrum()
Ejemplo n.º 4
0
import sys
sys.path.insert(1, 'dsp-modulo')

from thinkdsp import SinSignal
from thinkdsp import SquareSignal
from thinkdsp import decorate
import thinkplot
import numpy

señalRectangular = SquareSignal(freq=2, amp=1.0, offset=numpy.pi)
waveRectangular = señalRectangular.make_wave(duration=1,
                                             start=0,
                                             framerate=44100)

señalSenoidal = SinSignal(freq=2, amp=1.0, offset=0)
harmonico1 = SinSignal(freq=señalSenoidal.freq * 3, amp=0.3, offset=0)
harmonico2 = SinSignal(freq=señalSenoidal.freq * 5, amp=0.25, offset=0)
harmonico3 = SinSignal(freq=señalSenoidal.freq * 7, amp=0.2, offset=0)
harmonico4 = SinSignal(freq=señalSenoidal.freq * 9, amp=0.15, offset=0)
harmonico5 = SinSignal(freq=señalSenoidal.freq * 11, amp=0.1, offset=0)
harmonico6 = SinSignal(freq=señalSenoidal.freq * 13, amp=0.05, offset=0)
mezcla = señalSenoidal + harmonico1 + harmonico2 + harmonico3 + harmonico4 + harmonico5 + harmonico6
waveMezcla = mezcla.make_wave(duration=1, start=0, framerate=44100)

waveRectangular.plot()
waveMezcla.plot()
thinkplot.show()

espectroRectangular = waveRectangular.make_spectrum()
espectroMezcla = waveMezcla.make_spectrum()
Ejemplo n.º 5
0
from thinkdsp import SawtoothSignal
import matplotlib.pyplot as plt
from thinkdsp import decorate
from thinkdsp import SquareSignal

signal = SquareSignal(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()
wave.make_audio()
wave.write(filename='6.9.2.wav')

spectrum = wave.make_spectrum()
spectrum.plot()
decorate(xlabel='Frequency (Hz)')
plt.show()
Ejemplo n.º 6
0
signal = TriangleSignal(200)
duration = signal.period*3
segment = signal.make_wave(duration, framerate=10000)
plt.subplot(3,2,1)
segment.plot()
decorate(xlabel='Time (s)')
wave = signal.make_wave(duration=0.5, framerate=10000)
spectrum = wave.make_spectrum()
plt.subplot(3,2,2)
spectrum.plot()
decorate(xlabel='Frequency (Hz)')

#方波
from thinkdsp import SquareSignal

signal = SquareSignal(200)
duration = signal.period*3
segment = signal.make_wave(duration, framerate=10000)
plt.subplot(3,2,3)
segment.plot()
decorate(xlabel='Time (s)')
wave = signal.make_wave(duration=0.5, framerate=10000)
spectrum = wave.make_spectrum()
plt.subplot(3,2,4)
spectrum.plot()
decorate(xlabel='Frequency (Hz)')

#sawtoothSignal类
from thinkdsp import Sinusoid
from thinkdsp import normalize, unbias
Ejemplo n.º 7
0
Archivo: 2-2.py Proyecto: qqqmmy/qiu
plt.subplot(3,2,1)
segment.plot()
decorate(xlabel='Time (s)')

wave = signal.make_wave(duration=0.5, framerate=10000)
wave.apodize()
wave.make_audio()

spectrum = wave.make_spectrum()#绘制三角波频谱
plt.subplot(3,2,2)
spectrum.plot()
decorate(xlabel='Frequency (Hz)')

from thinkdsp import SquareSignal

signal = SquareSignal(200)#绘制方波
duration = signal.period*3
segment = signal.make_wave(duration, framerate=10000)
plt.subplot(3,2,3)
segment.plot()
decorate(xlabel='Time (s)')

wave = signal.make_wave(duration=0.5, framerate=10000)
wave.apodize()
wave.make_audio()

spectrum = wave.make_spectrum()#绘制方波频谱
plt.subplot(3,2,4)
spectrum.plot()
decorate(xlabel='Frequency (Hz)')
Ejemplo n.º 8
0
from thinkdsp import Sinusoid
from thinkdsp import normalize, unbias
from thinkdsp import TriangleSignal
from thinkdsp import decorate
from thinkdsp import SquareSignal
import os
import numpy as np
import matplotlib.pyplot as plt

#方波频率1100HZ   采样10000HZ   波长0.5秒
square = SquareSignal(1100).make_wave(duration=0.5, framerate=10000)

square.write(filename='output2-3.wav')
#显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
square.make_spectrum().plot()
plt.ylabel('幅度(方波频谱)')
plt.xlabel('频率(HZ)')

plt.show()
Ejemplo n.º 9
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()
Ejemplo n.º 10
0
wave1= TriangleSignal(freq=440).make_wave(duration=0.5)
spectrum1 = wave1.make_spectrum()
filter_spectrum(spectrum1)

spectrum1.scale(440)
plt.subplot(3,3,1)
spectrum1.plot(high=10000, color='blue')
plt.title("三角波频谱")
plt.subplot(3,3,2)
wave1.plot(color='blue')
plt.title('三角波变换前')
plt.subplot(3,3,3)
spectrum1.make_wave().plot(color='blue')
plt.title("三角波变换后")

wave2=SquareSignal(freq=440).make_wave(duration=0.5)
spectrum2 = wave2.make_spectrum()
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')

Ejemplo n.º 11
0
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 16 08:42:58 2021

@author: admin
"""
#import Audio from IPython.display
from thinkdsp import SquareSignal, decorate
import matplotlib.pyplot as plt
signal = SquareSignal(1100)
duration = signal.period * 3
segment = signal.make_wave(duration, framerate=10000)
#plt.subplot(1,2,1)
segment.plot()
decorate(xlabel='Time (s)')
# wave = signal.make_wave(duration=0.5, framerate=10000)
# #wave.apodize()

# spectrum = wave.make_spectrum()
# plt.subplot(1,2,2)
# spectrum.plot()
# #decorate(xlabel='Frequency (Hz)')
Ejemplo n.º 12
0
from thinkdsp import Sinusoid
from thinkdsp import normalize,unbias
from thinkdsp import SquareSignal
from thinkdsp import TriangleSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt
import numpy as np
triangle = TriangleSignal().make_wave(duration=0.01)
#triangle.plot()
#decorate(xlabel='Time (s)')
#plt.show()

spectrum = triangle.make_spectrum()
#print(spectrum.hs[0])
spectrum.hs[0] = 100
triangle.plot(color='gray')
spectrum.make_wave().plot()
plt.show()
wave=SquareSignal(freq=440).make_wave(duration=0.5)
wave=SawtoothSignal(freq=440).make_wave(duration=0.5)
Ejemplo n.º 13
0

def play(file, flags):
    print('Now play ' + file)
    PlaySound(file, flags)
    print('end')


trangle = TriangleSignal(freq=440).make_wave(duration=0.01, framerate=10000)
plt.subplot(231)
plt.title("trangle")

trangle.plot()
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)
Ejemplo n.º 14
0
Archivo: 2-5.py Proyecto: ECHO0530/test
    """
    # avoid division by 0
    spectrum.hs[1:] /= spectrum.fs[1:]
    spectrum.hs[0] = 0


wave = TriangleSignal(freq=440).make_wave(duration=0.5)
spectrum = wave.make_spectrum()
plt.subplot(3, 1, 1)
spectrum.plot(high=10000, color='red')
filter_spectrum(spectrum)
spectrum.scale(440)
spectrum.plot(high=10000)
decorate(xlabel='Frequency (Hz)')

wave2 = square = SquareSignal(1100).make_wave(duration=0.5)
spectrum2 = wave2.make_spectrum()
plt.subplot(3, 1, 2)
spectrum2.plot(high=10000, color='red')
filter_spectrum(spectrum2)
spectrum2.scale(440)
spectrum2.plot(high=10000)
decorate(xlabel='Frequency (Hz)')

wave3 = sawtooth = SawtoothSignal().make_wave(duration=0.5)
spectrum3 = wave3.make_spectrum()
plt.subplot(3, 1, 3)
spectrum3.plot(high=10000, color='red')
filter_spectrum(spectrum3)
spectrum3.scale(440)
spectrum3.plot(high=10000)
Ejemplo n.º 15
0
from thinkdsp import normalize, unbias
import numpy as np
import matplotlib.pyplot as plt
from thinkdsp import SquareSignal


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


plt.rcParams['font.sans-serif'] = ['SimHei']  #加上这一句就能在图表中显示中文
plt.rcParams['axes.unicode_minus'] = False  #用来正常显示负号
plt.title("方波")
square = SquareSignal(1100).make_wave(duration=0.5, framerate=10000)
wave1 = square.make_spectrum()
square.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')
wave = wave1.make_wave()
wave.write(filename="sound2-3.wav")
plt.show()
Ejemplo n.º 16
0
from thinkdsp import SquareSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt

square = SquareSignal(1100).make_wave(duration=0.5, framerate=10000)
square.play("2-3.wav")
square.make_spectrum().plot()
decorate(xlabel='Frequency (Hz)')
plt.show()
Ejemplo n.º 17
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

wave = TriangleSignal(freq=440).make_wave(duration=0.5)
wave1 = SawtoothSignal(freq=440).make_wave(duration=0.5)
wave2 = SquareSignal(freq=440).make_wave(duration=0.5)


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')
Ejemplo n.º 18
0
from thinkdsp import TriangleSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt
import numpy as np
from thinkdsp import SquareSignal

signal = SquareSignal(1100)  #绘制1100Hz方波信号
duration = signal.period * 3
segment = signal.make_wave(duration, framerate=10000)
plt.subplot(2, 1, 1)
segment.plot()
decorate(xlabel='Time (s)')

segment = signal.make_wave(duration=0.5, framerate=10000)
spectrum = segment.make_spectrum()
plt.subplot(2, 1, 2)
spectrum.plot()
decorate(xlabel='Frequency (Hz)')
plt.show()