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)')
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()
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)')
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()
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()
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:]
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 #锯齿波频谱
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])
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()
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()
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()
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()
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('方波验证')
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()
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()
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()
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)')