声音中正弦波的提取--sinusoidal model
来源:互联网 发布:淘宝标题规避品牌 编辑:程序博客网 时间:2024/06/03 13:19
我们对一段声音分析,可以做STFT变换,对于“音调”类声音,可能只需要数量有限的正弦信号就可以模拟及还原原始声音,也大大简化了分析。对正弦信号的分析和提取,也有助于实现音调提取,声源分离,及对某一声源增强等。
可是做了STFT不就是一个个正弦分量的提取吗?也许更准确地描述我们需要做的,是声音中主要正弦成分的提取。即对STFT或DFT的结果再进行进一步的提取。
首先要注意一个分辨率的问题,即信号中有两个较为接近的正弦信号,如300hz和400hz,我们如何能有效的分辨出两个信号来?在STFT中,我们是用窗函数来截取一段信号进行分析的,而窗对单个正弦信号的效果就相当于将窗函数的频域谱平移到正弦波所代表频率处。所以当有两个接近的正弦信号时,我们需要窗函数的主瓣频率小于两正弦信号之差,这样两个平移的主瓣才不会重叠,导致无法分辨。
而主瓣频率 = 特定窗的主瓣宽度 * 采样率 / 窗的大小,当采样率一定时,我们通过增大窗的大小到主瓣频率小于两正弦信号之差即可区分两正弦信号。
接下来要做的是peak detection,即在DFT过后的频谱中找到正弦波,特点是它是频谱中局部最高点,即需要该点的幅度既大于前一个点,又大于后一个点。这是比较容易编程实现的。但是这样找出这个点还是不够的,这样的结果不过精确。要使精度提高,一种方法是zero-padding,即增加FFT点的数量,但这样耗费太大;另一种方法是采用抛物线拟合即可,因为窗函数的主瓣与抛物线形状很相似。
上面说了提取的方法,那么如何合成呢?一种方法产生与找出来的正弦幅度与频率一致的一组正弦波,相加即可,但这样计算量很大;另一种方法是直接对找出来的一个个“主瓣”作IDFT,就直接得到合成信号了。
- 声音中正弦波的提取--sinusoidal model
- Android 播放指定频率正弦波声音
- modelsim中显示正弦波
- 正弦波
- 正弦波
- 在SurfaceView中模拟正弦波
- 数字声音提取
- 直线和正弦波的故事
- 正弦波调光器的工作原理
- MFC下正弦波的绘制
- HGE中声音的使用
- Java中声音的播放
- flash中声音的控制
- 声音特征提取:MFCC向量
- js基于html5中canvas的字模提取工具(附js生成声音的方式、获取系统支持字体方式、字模显示及其他)
- Delta phase angle between two sinusoidal waves with different frequencies 不同频率下的相角差
- FPGA实现基于ROM的正弦波发生器
- 方波转为正弦波的简单方案简介
- 特征检测器 FeatureDetector
- 约瑟夫环Joeph
- 唐纳德·霍尔《第三者》(节选)
- Unable to create project from archetype [org.apache.maven.archetypes:maven-archetype-quickstart:1.1]
- Android 布局Layout 性能优化<8>
- 声音中正弦波的提取--sinusoidal model
- RFC6551中文版:Routing Metrics Used for Path Calculation
- Fragment使用小结
- Python
- LR使用web_add_cookie函数进行cookie模拟
- 迭代法解方程:牛顿迭代法、Jacobi迭代法
- 为什么要设置Java环境变量
- 在Mac OS上安装Java以及配置环境变量的基本方法
- 为什么你应该先成为全栈工程师