SciPy предоставляет функцию чириканья для генерации сигнала, который постепенно меняет частоту.Как мне сгенерировать один из этих сигналов, который останавливается на определенной частоте и продолжается с этой частотой?
Я попытался сделать это с помощью следующего, но чирикант, кажется, превышает предел f1
, и это создаетпрерывистый переход в финал f1
разрешение
import numpy as np
from scipy.io import wavfile
samplerate = 44100
length = 5
chirplength = 3
f0 = 440
f1 = 880
signal = np.arange(chirplength*samplerate)/(chirplength*samplerate)
signal = np.interp(signal, [0, 1], [f0, f1])
signal = np.append(signal, np.repeat(f1, (length-chirplength)*samplerate))
signal = np.sin(signal * 2 * np.pi * np.arange(length*samplerate)/samplerate)
signal = np.float32(signal)
wavfile.write("audio.wav", samplerate, signal)