当前位置:   article > 正文

快速傅里叶变换 python_短时傅里叶变换(Short Time Fourier Transform)原理及 Python 实现...

short time fourier transform

原理

短时傅里叶变换(Short Time Fourier Transform, STFT) 是一个用于语音信号处理的通用工具.它定义了一个非常有用的时间和频率分布类, 其指定了任意信号随时间和频率变化的复数幅度. 实际上,计算短时傅里叶变换的过程是把一个较长的时间信号分成相同长度的更短的段, 在每个更短的段上计算傅里叶变换, 即傅里叶频谱.

短时傅里叶变换通常的数学定义如下:

L3Byb3h5L2h0dHBzL2ltYWdlczIwMTguY25ibG9ncy5jb20vYmxvZy83NTcyMDUvMjAxODA3Lzc1NzIwNS0yMDE4MDcwODE2MzgzMzk3OC0xNzg2NzU0Mzg2LnBuZw==.jpg

其中,

L3Byb3h5L2h0dHBzL2ltYWdlczIwMTguY25ibG9ncy5jb20vYmxvZy83NTcyMDUvMjAxODA3Lzc1NzIwNS0yMDE4MDcwODE2Mzk0MTE4Mi01MDk1ODYzMTQucG5n.jpg

DTFT (Decrete Time Fourier Transform) 为离散时间傅里叶变换. 其数学公式, 如下所示:

L3Byb3h5L2h0dHBzL2ltYWdlczIwMTguY25ibG9ncy5jb20vYmxvZy83NTcyMDUvMjAxODA3Lzc1NzIwNS0yMDE4MDcwODE2NDU0NjA2Mi0zNTQ0MTg5MTEucG5n.jpg

其中, x(n) 为在采样数 n 处的信号幅度. ω~ 的定义如下:

L3Byb3h5L2h0dHBzL2ltYWdlczIwMTguY25ibG9ncy5jb20vYmxvZy83NTcyMDUvMjAxODA3Lzc1NzIwNS0yMDE4MDcwODE2NDcxMDI0NS0xMDY1OTE5ODIucG5n.jpg

实现时, 短时傅里叶变换被计算为一系列加窗数据帧的快速傅里叶变换 (Fast Fourier Transform, FFT),其中窗口随时间 “滑动” (slide) 或“跳跃” (hop) 。

Python 实现

在程序中, frame_size 为将信号分为较短的帧的大小, 在语音处理中, 通常帧大小在 20ms 到 40ms 之间. 这里设置为

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/965024
推荐阅读
相关标签
  

闽ICP备14008679号