拓端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类代码片段:
这是处理读取/写入.wav文件然后使用Gauss-Seidel转换为线性系统的代码片段。
▍关注我们
【大数据部落】第三方数据服务提供商,提供全面的统计分析与数据挖掘咨询服务,为客户定制个性化的数据解决方案与行业报告等。
▍咨询链接:http://y0.cn/teradat
▍联系邮箱:3025393450@qq.com