Python 我如何产生停止在某个频率的啁啾?

Python 我如何产生停止在某个频率的啁啾?,python,numpy,scipy,Python,Numpy,Scipy,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(chirplengt

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)

您试图通过与坡道相乘来进行集成,这显然是行不通的

试着替换

signal = np.sin(signal * 2 * np.pi * np.arange(length*samplerate)/samplerate)


投票人和/或投票结束的人,请解释。请通读为什么这是一个糟糕的问题?我只是没看到而已
signal = np.sin(signal.cumsum() * 2 * np.pi / samplerate)