傅立叶变换各参数代表什么

本文介绍了傅立叶变换在语音处理中的应用,包括将语音分解为固定频率间隔的帧,通过n_fft确定变换点数以提升频率分辨率,以及使用Hop_length控制帧的采样。通过这种方式,语音被转换为时频二维张量,便于深度学习模型分析。
摘要由CSDN通过智能技术生成

傅立叶变换基本思想:以适当的某种频率的间隔,将语音分解为一组基础信号,再用傅里叶算法,计算出每组信号的幅度和相位。因此频率是提前假设好的,再在这个假设好的频率上面通过幅度和相位去拟合语音。

分帧就是将语音分成一段一段的,再进行傅里叶变换,因为窗口大小win_length确定后,就确定了已经预设的一组频率(通过n_fft确定,见下文),所以每个帧对应一组频率,对应的这组频率就可以得到这组频率对应的幅度和相位,因为傅里叶变换返回的是复数,复数中包含了幅度和相位的信息。

对复数求abs就省略相位,只保留幅度

win_length:窗口大小,

比如说一段语音频率16000HZ,即16000个点/秒,则这里设置空口大小意味着,采样多少个点。

比如说窗口大小设置为320,则表示这个小窗口采样320个点,因为16000个点所用时间为1秒,则小窗口采样320个点所用时间为0.02秒。说明窗口的时间长度为0.02秒。

这个小窗口通过傅立叶变换后的频率组间隔为 1/0.02 = 50,这个50也就是傅立叶时的基准频率。

n_fft:变换点数n_fft是指在进行FFT计算时,(0-2PI一个周期) 输入信号的样本点个数。变换点数越大,FFT的频率分辨率越高,可以更准确地展现输入信号的频率特征。 常见的变换点数选择是2的幂次,如1024、2048、4096等。 这是因为FFT算法的高效性和计算速度与输入信号样本点个数相关, 并且对于2的幂次,计算过程可以采用更高效的算法优化。 在选择变换点数时,需要根据应用需求和信号特性进行权衡。较小的变换点数可以获得较快的计算速度,但频率分辨率可能不足以展现细节或较高频率成分。 较大的变换点数可以提高频率分辨率,但计算速度可能变慢。

如果n_fft=256,则一个小窗口可以得到256/2+1=129个频率组成的频率组,这些频率组的频率即为基准频率的倍数。如果通过小窗口大小固定住基准频率为50hz后,频率组频率为:50hz,100hz,150hz,...(129*50)hz。

接下来,用傅立叶算法,可以根据这些频率求出其幅度和相位。

Hop_length:这个比较简单,跳过多少采样点取下一个小窗口,最终取得的小窗口个数为语音长//Hop_length+1。或者写为(sr*time)// hop + 1

每个小窗口就是一个帧。

语音变换为时频后的张量形式为(维度,  数)

维度相当于每个帧上面取了多少个频率,每个频率对应的幅度是多少,或者说这个帧上面的幅度是多少,组成了这么一个维度的幅度带,这个幅度带叠加后形成了这个小窗的语音信息。

帧数相当于整个这个语音信息分成了多少个时间点,或者说时间段,是在时间维度上的度量。

将语音由一维变成幅度-时间(频率是时间的另一个层面)的二维向量后,就可以用于深度学习了。

脑电图转换等都是用的这种方法。

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值