信号处理基础——傅里叶变换与短时傅里叶变换

本文详细介绍了傅里叶变换及其局限性,并重点讲解了短时傅里叶变换(STFT)的基本原理与应用。通过MATLAB示例,展示了如何使用spectrogram函数进行时频分析,特别关注了参数选择对结果的影响。

目录

信号处理基础——傅里叶变换与短时傅里叶变换

1.FT与STFT概述

2.短时傅里叶变换(Short-time Fourier Transform,STFT)

3.spectrogram函数

4.注意事项

5.实例分析

6.Chirp信号及其生成

7.时频分析实战代码


信号处理基础——傅里叶变换与短时傅里叶变换

1.FT与STFT概述

对于大多数信号而言, 傅立叶分析绝对是非常有用的,因为频率分析在大多数情况下都非常重要。 那么为什么我们还需要研究短时傅里叶变换呢(STFT)?

原因是因为傅立叶分析有一个非常严重的缺点, 在将信号从时间域变换到频率域去的时候,把时间信息丢失了。 当我们在用傅立叶变化去分析一个具体信号的时候, 我们不知道哪个频率是对应在哪个时间点出现的,在哪个时间点消失的。

如果一个信号的频率并不随着时间变化, 那么我们称它为平稳信号。 那么知道哪一个频率的信号在哪一个时间点出现的就不那么重要了。 可是如果现实生活中我们研究的大多数信号都是非平稳信号,他们都许多非常短暂变化的特性, 这些特点对于我们信号分析的特点, 傅立叶分析并不适合去做这种分析,而短时傅里叶变换则可以。

如上图所示,最上边的是频率始终不变的平稳信号。而下边两个则是频率随着时间改变的非平稳信号,它们同样包含和最上信号相同频率的四个成分。做FFT后,我们发现这三个时域上有巨大差异的信号,频谱(幅值谱)却非常一致。尤其是下边两个非平稳信号,我们从频谱上无法区分它们,因为它们包含的四个频率的信号的成分确实是一样的,只是出现的先后顺序不同。

可见,傅里叶变换处理非平稳信号有天生缺陷。它只能获取一段信号总体上包含哪些频率的成分,但是对各成分出现的时刻并无所知。因此时域相差很大的两个信号,可能频谱图一样。

然而平稳信号大多是人为制造出来的,自然界的大量信号几乎都是非平稳的,所以在比如生物医学信号分析等领域的论文中,基本看不到单纯傅里叶变换这样naive的方法。

2.短时傅里叶变换(Short-time Fourier Transform,STFT)

一个简单可行的方法就是——加窗。 “把整个时域过程分解成无数个等长的小过程,每个小过程近似平稳,再傅里叶变换,就知道在哪个时间点上出现了什么频率了。”这就是短时傅里叶变换。

3.spectrogram函数

      [S,F,T,P]=spectrogram(x,window,noverlap,nfft,fs) %有返回值
      spectrogram(x,window,noverlap,nfft,fs,'yaxis')     %无返回值调用,直接输出频谱图

matlab中的spectrogram函数来做短时傅里叶变换,下面是其参数的解释。

语法:

[S,F,T,P]=spectrogram(x,window,noverlap,nfft,fs)

[S,F,T,P]=spectrogram(x,window,noverlap,F,fs)

说明:当使用时无输出参数,会自动绘制频谱图;有输出参数,则会返回输入信号的短时傅里叶变换。当然也可以从函数的返回值S,F,T,P绘制频谱图,具体参见例子。

参数:

x---输入信号的向量。默认情况下,即没有后续输入参数,x将被分成8段分别做变换处理,

如果x不能被平分成8段,则会做截断处理。默认情况下,其他参数的默认值为

window---窗函数,默认为nfft长度的海明窗Hamming

noverlap---每一段的重叠样本数,默认值是在各段之间产生50%的重叠

nfft---做FFT变换的长度,默认为256和大于每段长度的最小2次幂之间的最大值。

fs---采样频率,默认值归一化频率 .

Window---窗函数,如果window为一个整数,x将被分成window段,每段使用Hamming窗函数加窗。

如果window是一个向量,x将被分成length(window)段,每一段使用window向量指定的

窗函数加窗。所以如果想获取specgram函数的功能,只需指定一个256长度的Hann窗.

4.注意事项

nfft越大,频域的分辨率就越高(分辨率=fs/nfft),但离瞬时频率就越远;

noverlap影响时间轴的分辨率,越接近nfft,分辨率越高,相应的冗余就越多,计算量越大,但计算机只要能承受,问题不大。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI炮灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值