拓端tecdat|python算法对音频信号处理Sonification:Gauss-Seidel迭代算法
原文链接:http://tecdat.cn/?p=7620
可以将44.1kHz单通道.wav文件中的一秒读取到长度为44100的数组(称为b)中。给定矩阵A,我们寻求系统Ax = b的解。通过Gauss-Seidel的迭代,向量如果我们将b记录的录音,则将一些白噪声作为我们的初始猜测,并在每次交替中写出Ax,我们会观察到b中高音调的音符首先变得可听,而同时白噪声的音调分解。
最初的12秒.wav文件的音频(白噪声)initialAx.wav
初始Ax,残差和残差FFT的图:
经过一轮迭代,高音转化gauss\_seidel\_out000000.wav
在光谱中可以看到一些结构:
第二次迭代:gauss\_seidel\_out000001.wav
第三次迭代:gauss\_seidel\_out000002.wav
第四次迭代:gauss\_seidel\_out000003.wav
这一切都在python中完成。将.wav文件加载到数组中,在scipy中还不错。为了避免缓存问题,必须使用稀疏矩阵类,因为12秒的.wav文件需要一个大小为12 * 44100的数组。这是我使用的TridiagonalMatrix类代码片段:
阅读 853
拓端数据
拓端tecdat分享最in的大数据资讯,提供“一站式”的数据分析学习和咨询体验,让我们一起做有态度的数据人...
180 声望
33 粉丝
0 条评论
得票最新