matlab求基频,语音频谱基频的提取
泛音列
所有谐波震荡中频率最小者称为基本频率(基频),而基频高低决定了乐器弹奏此音符的音高。几乎所有乐器除了可发出基频音以外亦会伴随着较高频的声音,称为泛音。
理论上,泛音的频率分别为基频的2、3、4、5、6、…等倍。
根据对不同音色的音频进行频域分析时发现. 不同的音色最大振幅对应的频率也会发生变化. 但是有一个固定的规律是最大振幅对应的频率不是基频就是泛音, 也就是说最大振幅对应的频率是基频的整数倍.
WZK的频谱图:

HMD的频谱图:

算法的目标是找到最大振幅对应的频率是基频的多少倍.
基频提取流程
从data(f)中找到最大振幅对应的频率frequency_max(此时 倍数 可能的取值为 1, 2, ..., frequency_max).
取步长step = frequency_max / i(i为猜测的倍数) 使data_sum(i) = sum(data(step : step : frequency_max)) * step.
令change(i) = data_sum(i) - data_sum(i + 1).
令change_sum(i) = change(i : i : leng
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
