利用正弦波生成声音及傅里叶级数分析
1. 正弦波转化为声音
1.1 调整正弦函数的频率和幅度
将正弦波转化为声音时,需要对正弦函数进行垂直和水平拉伸或压缩,以获得更理想的频率和幅度。例如,频率为 441 Hz、幅度为 10000 的正弦函数可以表示一个可听的声波。
1.2 采样函数
为了将生成的正弦函数传递给 PyGame 播放,需要从函数中提取 44100 个均匀间隔的值,这个过程称为采样。可以定义一个采样函数:
def sample(f,start,end,count):
mapf = np.vectorize(f)
ts = np.arange(start,end,(end-start)/count)
values = mapf(ts)
return values.astype(np.int16)
1.3 生成正弦函数
可以定义一个函数 make_sinusoid 来生成指定频率和幅度的正弦函数:
def make_sinusoid(frequency,amplitude):
def f(t):
return amplitude * sin(2*pi*frequency*t)
return f
1.4 示例代码
以下是一个示例,生成频率为 5、幅度为 4 的正弦函数并绘制其图像: <
超级会员免费看
订阅专栏 解锁全文

21

被折叠的 条评论
为什么被折叠?



