必威体育Betway必威体育官网
当前位置:首页 > IT技术

短时傅里叶变换原理解

时间:2019-08-08 07:14:24来源:IT技术作者:seo实验室小编阅读:53次「手机版」
 

短时傅里叶变换

前一段时间项目需要学习了短时傅里叶变换,今天我来总结一下现阶段对短时傅里叶变换的理解。

短时傅里叶变换是最常用的一种时频分析方法,它通过时间窗内的一段信号来表示某一时刻的信号特征。在短时傅里叶变换过程中,窗的长度决定频谱图的时间分辨率和频率分辨率,窗长越长,截取的信号越长,信号越长,傅里叶变换后频率分辨率越高,时间分辨率越差;相反,窗长越短,截取的信号就越短,频率分辨率越差,时间分辨率越好,也就是说短时傅里叶变换中,时间分辨率和频率分辨率之间不能兼得,应该根据具体需求进行取舍。

简单来说,短时傅里叶变换就是先把一个函数和窗函数进行相乘,然后再进行一维的傅里叶变换。并通过窗函数的滑动得到一系列的福利也变化结果,将这些结果排开便得到一个二维的表象。

短时傅里叶变换的公式为

其中Z(t)为源信号,g(t )为窗函数。

为方便计算机处理,一般把信号进行离散化处理,具体公式为

短时傅里叶变换的编程思路如下:

1.第一步,确定相关参数。主要包括原信号,窗函数,窗长,重叠点数,采样频率,傅里叶点数等。

 其中傅里叶点数主要用于在傅里叶变换过程中使用,当信号长度小于傅里叶点数时,系统会自动进行补零,然后再进行快速傅里叶变换

2.第二步,计算把源信号和窗函数转换为列向量。计算信号长度,并根据信号长度nx、窗长WinLen以及重叠点数noverlap计算出窗滑动的次数n,也就是指后面把源信号分成列时信号的列数。

 n=fix((nx-noverlap)/(WinLen-noverlap))

3.把每次窗函数滑动所选取的信号表示为列,确定每一列的值,得到一个列数为n,行数为WinLen的矩阵Fig。

 colindex = (0:(t-1))*(WinLen-noverlap);

 rowindex = (1:WinLen)';

 xin = zeros(frame_length,t);

 xin(:) = x(rowindex(:,ones(1,t))+colindex(ones(WinLen,1),:));

4.把转换为列向量的窗函数扩展为n列的矩阵w,并对矩阵Fig和w进行点乘,并对点乘的结果进行快速傅里叶变换,得到时频矩阵。

 xin = win(:,ones(1,t)).*xin;

5.根据时频矩阵,输出频谱图。

以上就是我对短时傅里叶变换实现过程的理解,后面如果有新的理解,我会继续修改进行完善!

相关阅读

OpenCV离散傅里叶变换(DFT前篇)

恍惚一年,很多东西没有整理,最近学弟又问道傅里叶变换的知识,说句实话,许久没接触,我也忘了很多,始有此文。原理+Samples+函数解读的流

连续时间傅里叶变换的共轭与共轭对称性(详细推导)

这里将连续时间傅里叶变换的共轭对称性单独拉出来,原因是这个性质有很多值得讨论的地方,用了很长的篇幅才讲清楚,所以单独拉出来遛遛

MATLAB快速傅里叶变换(fft)函数详解

原文 定义: MATLAB帮助文件原文 The 'i' in the 'Nth root of unity' 是虚数单位 ​调用: ​​1.  Y = fft(y);2.  Y = fft(y,N);式

傅里叶变换公式

傅里叶变换的目的:有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。 1、FS: (Fourier seri

【音频处理】短时傅里叶变换

前言 上一篇博客讲了离散傅里叶变换,里面的实例是对整个信号进行计算,虽然理论上有N点傅里叶变换(本博客就不区分FFT和DFT了,因为它

分享到:

栏目导航

推荐阅读

热门阅读