FFT相关知识

本文深入解析FFT(快速傅里叶变换)的原理及其在信号处理中的应用,涵盖傅里叶变换的基本概念、离散傅里叶变换的形式、FFT算法的优势及其实现方法,同时讨论了STFT(短时傅里叶变换)在处理非平稳信号时的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FFT

参考链接

以下两blog是验证傅里叶变换对频谱的分析作用

TIMIT原始数据未必是wav格式的文件,可能需要转换一下

暂时不理解的

为什么 FFT变换后幅值与时域幅值 不相等 为什么要除N/2???

未抽出时间来看的链接

FFT重要概念以及知识点

傅立叶原理:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。
根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、 振幅和相位。
和傅立叶变换算法对应的是反傅立叶变换算法,该反变换从本质上说也是一种累加处理,这样就可以将单独改变的正弦波信号转换成一个信号。

四种傅里叶变换形式

  • 非周期性连续信号 傅立叶变换(Fourier Transform)
  • 周期性连续信号 傅立叶级数(Fourier Series)
  • 非周期性离散信号 离散时域傅立叶变换(Discrete Time Fourier Transform)
  • 周期性离散信号 离散傅立叶变换(Discrete Fourier Transform)
    在计算机中处理的是离散傅里叶变换,其他类型的更多的是在数学上推算。这里所说的傅里叶变换是数学意义上的变换,但跟函数变换是不同的,函数变换是符合一一映射准则的,对于离散数字信号处理(DSP),有许多的变换:傅立叶变换、拉普拉斯变换、Z变换、希尔伯特变换、离散余弦变换等,这些都扩展了函数变换的定义,允许输入和输出有多种的值,简单地说变换就是把一堆的数据变成另一堆的数据的方法。
    傅里叶变换在物理学、数论、组合数学、信号处理、概率、统计、密码学、声学、光学等领域都有着广泛的应用。
    对于一个长度为N的时域信号,实数傅里叶变换得到的结果是N/2个长度;复数傅里叶变换之后得到的长度是N。
    FFT是离散傅立叶变换的快速算法,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多 信号分析采用FFT变换的原因。另外,FFT可以将一个信号的频谱提取出来,这在频谱分析方面也是经常用的。
    FFT中的一些要素:主要摘自为什么要进行傅立叶变换
  • 一个模拟信号,经过ADC采样之后,就变成了数字信号。奈奎斯特采样定理告诉我们,采样频率要大于信号频率的两倍。
  • 采样得到的数字信号,就可以做FFT变换了。N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。
  • 假设采样频率为Fs,信号频率F,采样点数为N。
  • 信号长度M点,假设采样频率为Fs,采样点数为N。(我们会要求)做FFT之后,某点n(n从1开始)表示的频率为: ( n − 1 ) F s N \frac{(n-1)Fs}{N} N(n1)Fs;相邻谱线之间的距离是 F s N \frac{Fs}{N} NFs,Fn所能分辨到频率为为 F s N \frac{Fs}{N} NFs
  • 在FFT中,信号长度为M,做N点FFT时,我们会要求N > M,多的部分用0补齐,如果N < M 就直接截断语音信号,numpy.fft.fft()scipy.fftpack.fft效果是相同的。librosa的fft还没有实验,但估计都是一样的。
  • 该点的模( a 2 + b 2 \sqrt{ a^{2}+b^{2} } a2+b2 )复数 z = a + b i z = a + bi z=a+bi值除以 N 2 \frac{N}{2} 2N就是对应该频率下的信号的幅度(对于直流信号是除以N); 该点的相位即是对应该频率下的信号的相位。(在matlab、numpy.fft.fft以及scipy.fftpack.fft都是这样的)相位的计算可用函数atan2(b,a)计算。atan2(b,a)是求坐标为(a,b)点的角度值,范围从-pi到pi。要精确到xHz,则需要采样长度为1/x秒的信号,并做FFT。
  • 要提高频率分辨率,就需要增加采样点数,这在一些实际的应用中是不现实的,需要在较短的时间内完成分析。解决这个问题的方法有频率细分法,比较简单的方法是采样比较短时间的信号,然后在后面补充一定数量的0,使其长度达到需要的点数,再做FFT,这在一定程度上能够提高频率分辨力。具体的频率细分法可参考相关文献。
  • 假设FFT之后某点n用复数 z = a + b i z = a + bi z=a+bi表示,那么这个复数的模就是 A n = a 2 + b 2 An = \sqrt{a^{2}+b^{2}} An=a2+b2 ,相位是 P n = a t a n 2 ( b , a ) Pn = atan2(b,a) Pn=atan2(b,a)`,直流信号没有相位可言
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值