Esempio n. 1
0
def test_triangle():

    signal = TriangleSignal(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)')
Esempio n. 2
0
from thinkdsp import TriangleSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt
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()
Esempio n. 3
0
from thinkdsp import TriangleSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt
import numpy as np
#三角波
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)')
Esempio n. 4
0
from thinkdsp import Spectrum, TriangleSignal, SquareSignal, play_wave
from thinkdsp import decorate
import matplotlib.pyplot as plt
import numpy as np


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


wave = TriangleSignal(freq=440).make_wave(duration=5)
#生成原音频
wave.play("temp3.wav")

spectrum = wave.make_spectrum()
#绘制spectrum图像
spectrum.plot(high=10000, color='gray')
filter_spectrum(spectrum)
spectrum.scale(440)
#生成使用函数修改后的spectrum所绘制的图像
spectrum.plot(high=10000, color='red')
decorate(xlabel='Frequency (Hz)')
#从修改过的spectrum绘制一个波形并生成音频试听
spectrum.make_wave().play("temp4.wav")

plt.show()
Esempio n. 5
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()
Esempio n. 6
0
from winsound import PlaySound


def filter_spectrum(spectrum):
    # avoid division by 0
    spectrum.hs[1:] /= spectrum.fs[1:]
    spectrum.hs[0] = 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.make_spectrum().plot(color='gray')
#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='gray')
#triangle = TriangleSignal(amp=0.79).make_wave(duration=0.5, framerate=40000)
#triangle.make_spectrum().plot()
#decorate(xlabel='Frequency (Hz)')
#plt.show()

#square = SquareSignal(1100).make_wave(duration=0.5, framerate=10000)
#square.make_spectrum().plot()
#decorate(xlabel='Frequency (Hz)')
#plt.show()

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()
#decorate(xlabel='Time (s)')
#plt.show()

def filter_spectrum(spectrum):
    spectrum.hs[1:] /= spectrum.fs[1:]
Esempio 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

#三角波
signal = TriangleSignal(amp=0.79)
duration = signal.period * 3
segment = signal.make_wave(duration, framerate=40000)
#三角波频谱  采样40000hz
spectrum = signal.make_wave(duration=0.5, framerate=40000)

#方波
square = SquareSignal(amp=0.5).make_wave(duration=0.5, framerate=40000)
square.make_spectrum().plot()


#生成锯齿波
class SawtoothSignal(Sinusoid):
    def evaluate(self, ts):
        cycles = self.freq * ts + self.offset / np.pi / 2
        frac, _ = np.modf(cycles)
        ys = normalize(unbias(frac), self.amp)
        return ys


#锯齿波频谱
Esempio n. 9
0
from thinkdsp import TriangleSignal
from thinkdsp import decorate
import matplotlib.pyplot as plt
triangle = TriangleSignal(440).make_wave(duration=0.01)
triangle.plot()
decorate(xlabel='Time (s)')
plt.show()
spectrum=triangle.make_spectrum()
print(spectrum.hs[0])
Esempio n. 10
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


def filter_spectrum(spectrum):

    spectrum.hs[1:] /= spectrum.fs[1:]
    spectrum.hs[0] = 0


#三角波  频率440HZ  波长0.5秒
wave = TriangleSignal(freq=440).make_wave(duration=0.1)

spectrum = wave.make_spectrum()
spectrum.plot(high=10000, color='red')
filter_spectrum(spectrum)
spectrum.scale(440)
spectrum.plot(high=10000)

filtered = spectrum.make_wave()
filtered.make_audio()

filtered.write(filename='output2-5.wav')
plt.show()
Esempio n. 11
0
import matplotlib.pyplot as plt
from thinkdsp import decorate
from thinkdsp import TriangleSignal



def filter_spectrum(spectrum):
    """Divides the spectrum through by the fs.
    
    spectrum: Spectrum object
    """
    # avoid division by 0
    spectrum.hs[1:] /= spectrum.fs[1:]
    spectrum.hs[0] =0


wave = TriangleSignal(freq=440).make_wave(duration=0.5)
wave.make_audio()


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

filtered = spectrum.make_wave()
filtered.make_audio()
wave.write(filename='6.9.3.wav')
plt.show()
Esempio n. 12
0
File: 2-4.py Progetto: 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()
Esempio n. 13
0
import thinkdsp
import matplotlib.pyplot as plt
import numpy as np 
from scipy import signal
from thinkdsp import SawtoothSignal, SquareSignal, TriangleSignal
from thinkdsp import decorate


plt.rcParams['font.sans-serif']=['SimHei']#图表上可以显示中文
plt.rcParams['axes.unicode_minus']=False#图表上可以显示负号

def filter_spectrum(spectrum):
    spectrum.hs[1:] /= spectrum.fs[1:]
    spectrum.hs[0] = 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()
Esempio n. 14
0
class SawtoothSignal(Sinusoid):
    def evaluate(self, ts):

        cycles = self.freq * ts + self.offset / np.pi / 2
        frac, _ = np.modf(cycles)
        ys = normalize(unbias(frac), self.amp)
        return ys


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


#三角波验证
wave = TriangleSignal(440).make_wave(duration=0.5)
spectrum = wave.make_spectrum()
plt.subplot(3, 1, 1)
spectrum.plot(high=10000)
spect(spectrum)

plt.ylabel('三角波验证')

#方波验证
wave = SquareSignal(440).make_wave(duration=0.5)
spectrum = wave.make_spectrum()
plt.subplot(3, 1, 2)
spectrum.plot(high=10000)
spect(spectrum)
plt.ylabel('方波验证')
Esempio n. 15
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()
Esempio n. 16
0
import thinkdsp
import matplotlib.pyplot as plt
import numpy as np
from scipy import signal
from thinkdsp import TriangleSignal
from thinkdsp import decorate

plt.rcParams['font.sans-serif'] = ['SimHei']  #图表上可以显示中文
plt.rcParams['axes.unicode_minus'] = False  #图表上可以显示负号

signal = TriangleSignal(freq=440).make_wave(duration=0.01)
#wave=signal.make_wave(duration=0.5 ,framerate=10000)
spectrum = signal.make_spectrum()
spectrum.hs[0] = 100
plt.subplot(121)
plt.title('spectrum.hs[0]=100的波形')
spectrum.make_wave().plot()
plt.subplot(122)
signal.plot()
plt.title('原始波形')
plt.show()
Esempio n. 17
0
import os
from thinkdsp import decorate
from thinkdsp import Sinusoid
from thinkdsp import normalize, unbias
import numpy as np
import matplotlib.pyplot as plt
from thinkdsp import TriangleSignal
def filter_spectrum(spectrum):
    """Divides the spectrum through by the fs.
    
    spectrum: Spectrum object
    """
    # avoid division by 0
    spectrum.hs[1:] /= spectrum.fs[1:]
    spectrum.hs[0] = 0

wave = TriangleSignal(freq=440).make_wave(duration=0.5)
wave.make_audio()
spectrum = wave.make_spectrum()
spectrum.plot(high=10000, color='gray')
filter_spectrum(spectrum)
spectrum.scale(440)
spectrum.plot(high=10000)
decorate(xlabel='Frequency (Hz)')
filtered = spectrum.make_wave()
filtered.make_audio()
filtered.write(filename="voice.wav")
plt.show()
Esempio n. 18
0
File: 2-5.py Progetto: qqqmmy/qiu
spectrum.plot()
decorate(xlabel='Frequency (Hz)')

wave.apodize()
wave.make_audio()

spectrum = f5(spectrum)
plt.subplot(3, 2, 2)
spectrum.plot()
decorate(xlabel='Frequency (Hz)')

wave = spectrum.make_wave()
wave.apodize()
wave.make_audio()

signal = TriangleSignal(1100)  #三角波验证
duration = signal.period * 4
segment = signal.make_wave(duration, framerate=10000)
wave = signal.make_wave(duration=1, framerate=10000)
spectrum = wave.make_spectrum()
plt.subplot(3, 2, 3)
spectrum.plot()
decorate(xlabel='Frequency (Hz)')

wave.apodize()
wave.make_audio()

spectrum = f5(spectrum)
plt.subplot(3, 2, 4)
spectrum.plot()
decorate(xlabel='Frequency (Hz)')