21号齐鲁晚报电子版在线阅读在线阅读2015-7-14

注:学习笔记来源于自己在学习Python過程中遇到的小问题及对网络诸多大牛提供的方法的实践

一、统计列表中重复项出现的次数

注:本文加入了译者的理解并非严谨的译作,仅供参考


描述了怎样在Python中通过pylab接口对声音进行基本的处理。

下载文件文件中加入了基頻(F0)为440Hz的噪声。

这表示原始声压值在wav文件中一一映射到区间[-2^15, 2^15 -1]我们把声压值归一化,即映射到区间[-1, 1):

查看wav文件的通道数和采样点数

表示文件包含2个通道5060个采样点。结合采样率(sampFreq = 44110)可得信号持续时长为114ms:

下文我们只处理其中一个通道

以时间(单位ms)为x轴,声压值为y轴繪制音调图。先创建时间点数组

频谱图也是一种很有用的图形表示方式用函数fft对声音进行快速傅立叶变换(FFT),得到声音的頻谱让我们紧跟的步伐,得到声音文件的功率谱:

技术文档中指定了执行fft用到的抽样点数目我们这里则不指定,默认使用信号n的采样點数不采用2的指数会使计算比较慢,不过我们处理的信号持续时间之短这点影响微不足道。

fft变换的返回结果为复合形式比如复数,包含幅度和相位信息我们获取傅立叶变换的绝对值,得到频率分量的幅度信息

绘制的频谱图如下所示。注意图中y轴是能量的对数10*log10(p)单位分贝;x轴是频率/1000,单位kHz

为了检验计算结果是否等于信号的能量,我们计算出信号的均方根rms广义来说,可以用rms衡量波形的幅度如果矗接对偏移量为零的正弦波求幅度的均值,它的正负部分相互抵消结果为零。那我们先对幅度求平方再开方(注意:开方加大了幅度極值的权重?)

信号的rms等于总能量的平方根那么把fft在所有频率上的能量值相加然后求平方根,应该等于rms


我要回帖

更多关于 21号齐鲁晚报电子版在线阅读 的文章

 

随机推荐