拓端tecdat|python算法对音频信号处理Sonification:Gauss-Seidel迭代算法

拓端tecdat

原文链接:http://tecdat.cn/?p=7620

可以将44.1kHz单通道.wav文件中的一秒读取到长度为44100的数组(称为b)中。给定矩阵A,我们寻求系统Ax = b的解。通过Gauss-Seidel的迭代,向量如果我们将b记录的录音,则将一些白噪声作为我们的初始猜测,并在每次交替中写出Ax,我们会观察到b中高音调的音符首先变得可听,而同时白噪声的音调分解。

最初的12秒.wav文件的音频(白噪声)initialAx.wav

初始Ax,残差和残差FFT的图:

   title=

 title=

 title=


经过一轮迭代,高音转化gauss\_seidel\_out000000.wav

在光谱中可以看到一些结构:

   title= title= title=


第二次迭代gauss\_seidel\_out000001.wav

   title= title= title=


第三次迭代gauss\_seidel\_out000002.wav

   title= title= title=


第四次迭代gauss\_seidel\_out000003.wav

   title= title= title=


这一切都在python中完成。将.wav文件加载到数组中,在scipy中还不错。为了避免缓存问题,必须使用稀疏矩阵类,因为12秒的.wav文件需要一个大小为12 * 44100的数组。这是我使用的TridiagonalMatrix类代码片段:

阅读 853

拓端数据
拓端tecdat分享最in的大数据资讯,提供“一站式”的数据分析学习和咨询体验,让我们一起做有态度的数据人...
180 声望
33 粉丝
0 条评论
180 声望
33 粉丝
文章目录
宣传栏