FFT相关学习记录

以下都是自己学习的心得,有不对的地方,欢迎指出交流

1 FFT和圆周卷积是什么关系

下面这个图可以这么理解,DTFT,就是对连续时间非周期信号进行抽样(乘积),得到的离散时间非周期信号再求傅里叶变换的过程就是DTFT,DFS时域是周期离散信号,频域也是周期离散的信号,而DFT是DFS取主值区间的结果,讨论FFT等价于讨论DFT. DFT和圆周卷积没有本质的联系,两个说的不是一个事,也就是圆周卷积不是用来做DFT的,两者的联系在于,2个有限长序列的圆周卷积,计算量很大,可以将其转换到频域,就变成两个有限长序列傅里叶变换的乘积,二两个有限长序列的的傅里叶变换,就可以用DFT来做。
https://zhuanlan.zhihu.com/p/415814805
在这里插入图片描述

2 FT, DFT, DTFT, DFS之间的关系

https://blog.csdn.net/qq_53277015/article/details/127260433

**
对一个连续的非周期序列,做傅里叶变换,频域是连续的,也就是说,连续非周期序列的傅里叶变换时域和频域都是连续的
对连续非周期信号在时域进行采样,得到DTFT,时域变成离散的,频域是连续的,计算机无法处理,计算机只能处理频域和时域都离散的数据
进一步对频域采样,也即频域乘以一个采样函数(或者对时域卷积),使得频域也离散,得到DFS,时域和频域都是离散且是周期函数
对DFS取主值区间,得到的有限长序列,对应的频谱也是有限长的频谱,也即将DFS用于有限长序列,就变成了DFT**

3 什么时候要用卷积?卷积计算量如何?如何用fft来减小计算量?

最好理解也是很常见的的例子,就是假设现在有一个系统h(n),有一个输入信号x(n),要滤除掉信号里面的某些信息,这个过程就是用卷积来实现。

当序列长度很长时,卷积的计算量是非常大的 。。。。待续。。。。

4 为什么绘制FFT的频谱时,幅值要除以N/2

https://www.jianshu.com/p/78043f8f8306?ivk_sa=1024320u
https://zhuanlan.zhihu.com/p/137433994
https://blog.csdn.net/seekyong/article/details/104434128/
https://blog.csdn.net/weixin_32161697/article/details/113717962

结合以上链接和我自己的理解:
在这里插入图片描述
在这里插入图片描述
先知道几个定义(对FFT来说):
频谱密度:
DFT是对有限长的离散信号做,有限长的信号,也就是这个信号是能量信号,能量信号是指能量有限(也即是积分是有确切结果的)的信号,能量信号的傅里叶变换结果就是能量信号的频谱密度

频谱宽度:
https://blog.csdn.net/qq_35538845/article/details/78552888

5 增加采样点数可以增加分辨率的理解

Fn=(n-1)*Fs/N

假设采样频率为Fs,信号频率F,采样点数为N。那么FFT之后结果就是一个为N点的复数。每一个点就对应着一个频率点。这个点的模值,就是该频率值下的幅度特性。具体跟原始信号的幅度有什么关系呢?假设原始信号的峰值为A,那么FFT的结果的每个点(除了第一个点直流分量之外)的模值就是A的N/2倍。而第一个点就是直流分量,它的模值就是直流分量的N倍。而每个点的相位呢,就是在该频率下的信号的相位。第一个点表示直流分量(即0Hz),而最后一个点N的再下一个点(实际上这个点是不存在的,这里是假设的第N+1个点,也可以看做是将第一个点分做两半分,另一半移到最后)则表示采样频率Fs,这中间被N-1个点平均分成N等份,每个点的频率依次增加。例如某点n所表示的频率为:Fn=(n-1)*Fs/N。由上面的公式可以看出,Fn所能分辨到频率为为Fs/N,如果采样频率Fs为1024Hz,采样点数为1024点,则可以分辨到1Hz。1024Hz的采样率采样1024点,刚好是1秒,也就是说,采样1秒时间的信号并做FFT,则结果可以分析精确到1Hz,如果采样2秒时间的信号并做FFT,则结果可以分析精确到0.5Hz。如果要提高频率分辨率,则必须增加采样点数,也即采样时间。频率分辨率和采样时间是倒数关系。

6 采样频率在重建里面的应用,以及滤波器的频率上限设置问题

投影数据的最高采样频率是由探测器间隔决定的,一排探测器,相当于对投影连续信号的采样,探测器宽度也就是抽样里面的采样间隔T,1/T对应的就是当前采样的堆高采样频率fs = 1/T, 根据奈奎斯特采样定理,要求采样频率大于信号最高频率fm的两倍,投影里面信号的最高频率fm(也即是图像的最高频率)是难以确定的,目前认为探测器采样能满足绝大部分情况,暂时不用管这个信号的最高采样频率。但是在某些应用场景,会发现明显探测器的采样不足信号的最高频率,从而导致混叠,如人体的骨头,人体骨头的像素值的亮度梯度比较大,因而大致信号频率比较高,但是探测器采样不足骨头频率的2倍,导致总能在骨头边缘发现混叠的产生。

关于斜坡滤波器里面的频率上线,针对斜坡滤波器,通常是是直接给出频域的解析表达式,简单直接,|w|,也就是类似于y= x的一个形式,确定滤波器的宽度,那么滤波器的幅值也就确定了,如何确定滤波器的宽度呢?假设探测器的宽度是Nc = 880,对应的|w|的的绝对值的取值范围就应该是-Nc/2+0.5:Nc/2-0.5,这里是想对投影数据做滤波,也就是需要用卷积来实现,如果要用FFT,那么就要求两个序列的长度是一致的,才能做圆周卷积,而圆周卷积可以用DFT(也即是FFT)来实现,这就是为什么滤波器的长度要和投影数据的长度取一直的原因?

7 冲击函数

https://blog.csdn.net/qq_45732223/article/details/106443845
周期为△T的冲激串的傅里叶变换还是冲激串,其周期为1/△T,所谓周期,也就是两个冲击函数之间的间隔

8 希尔伯特变换对数据相移90有什么用

https://blog.csdn.net/weixin_44982036/article/details/108858194
相移90°,怎么就等效于在做滤波?
这个逻辑有问题,是1/pit和信号的卷积,在频域里面的体现是相移了90的效果,而不是为了相位移动90°去做的卷积
现实中存在的信号都是实信号,但是为了在信号处理中分析方便,就会将信号变为相应的复信号
在这里插入图片描述
在这里插入图片描述
所谓解析信号,就是只有正频率部分,没有负频率部分
由上图中看出,解析信号只包含正频率,没有负频率,也就是说如果一个信号只在频率大于零的时候有分量,则这个信号一定能写成解析信号的形式,对这个信号求其 实部 一定就是 f(t) ,虚部一定就是 f(t) 的希尔伯特变换。将实数信号变换成解析信号的结果就是,把一个一维的信号变成了二维复平面上的信号,复数的模和幅角代表了信号的幅度和相位。
在这里插入图片描述
希尔伯特变换的物理意义就是把信号从双边谱变成单边谱,避免频谱浪费

希尔伯特变换,本质是在做卷积,卷积等效于做傅里叶域的乘积,在傅里叶域里面,已经是在复频域里面了,复频域包含傅里叶域,还构建解析信号做什么
构建解析信号是希尔伯特的一种用途,不是一定要做在希尔伯特里面用这个

10 什么时候会用到圆周卷积,圆周卷积和DFT是什么关系?

其实圆周运算是针对周期序列而言的,由于周期序列在每一个周期内的取值都相同,所以我们只关注它的主值区间,比如,如果一个序列的长度为N
的话,那么它的主值区间就是0≤n≤N−1。虽然圆周运算是源自于对周期信号的处理,但是经过一般化的扩展之后,对有限长序列也可以进行圆周运算。具体就是,你可以把有限长序列以它的长度为周期,进行周期延拓成一个周期序列,然后进行运算,然后取其主值区间进行观察得到的结果。

其实圆周卷积就是卷积运算的一种,前面第3点也描述了,什么时候要用到卷积,一个信号要被一个系统处理的时候,比如滤波,就要用到卷积运算,圆周卷积只不过是线性卷积的一种特殊情况,当这个信号是有限长信号的时候,和系统卷积,就可以用圆周卷积来处理,圆周卷积的实现是通过所谓的圆周位移来实现的。而DFT可以对有限长的离散信号做傅里叶变换,且时域卷积等于频域的乘积,圆周卷积就可以用DFT,将信号从时域变到频域,然后卷积运算变成了频域的点对点的乘法运算。
在这里插入图片描述

11 fft补0到底有什么用?栅栏效应?频谱泄露?

https://blog.csdn.net/u012444155/article/details/40107483
离散傅里叶变换(DFT)的输入是一组离散的值,输出同样是一组离散的值。在输入信号而言,相邻两个采样点的间隔为采样时间Ts。在输出信号而言,相邻两个采样点的间隔为频率分辨率fs/N,其中fs为采样频率,其大小等于1/Ts,N为输入信号的采样点数。这也就是说,DFT的频域分辨率不仅与采样频率有关,也与信号的采样点数有关。那么,如果保持输入信号长度不变,但却对输入信号进行补零,增加DFT的点数,此时的分辨率是变还是不变?

答案是此时分辨率不变。进行zero padding只是增加了数据的长度,而不是原信号的长度。就好比本来信号是一个周期的余弦信号,如果又给它补了9个周期长度的0,那么信号并不是10个周期的余弦信号,而是一个周期的余弦加一串0,补的0并没有带来新的信息。其实zero padding等价于频域的sinc函数内插,而这个sinc函数的形状(主瓣宽度)是由补0前的信号长度决定的,补0的作用只是细化了这个sinc函数,并没有改变其主瓣宽度。增加0可以更细致观察频域上的信号,但不会增加频谱分辨率。

频谱分辨率:
在这里插入图片描述

总结:
https://blog.csdn.net/xingsongyu/article/details/103390317
在时域补0,对分辨率是没有影响的,分辨率的直接决定因素是采样频率fs = 1/T,T为采样间隔,对应的频域信号相邻两个采样点的间隔为频率分辨率 fs/N,N对应时域的数据点数,时域补0,也即是增大N,会减小 fs/N,也即频域的采样点之间的间隔会减小,也即频域的点的分布会变密集,但是频域内点的分布总宽度是不变的,如果将频域离散的点连接起来,看到的就是曲线变光滑了

栅栏效应:
对信号进行DFT将得到离散的频谱值,因此信号频谱也会受到“栅栏效应”的约束。经过这种采样所显示出来的频谱仅在各采样点上,而不在此类点上的频谱都显示不出来,即使在其他点上有重要的峰值也会被忽略,这就是栅栏效应。这一效应对于周期信号尤为重要,因其频谱是离散的,如处理不当这些离散谱线可能不被显示
不管是时域采样还是频域采样,都有相应的栅栏效应。只是当时域采样满足采样定理时,栅栏效应不会有什么影响。而频域采样的栅栏效应则影响很大,“挡住”或丢失的频率成分有可能是重要的或具有特征的成分,使信号处理失去意义。
减小栅栏效应可用提高采样间隔也就是频率分辨力的方法来解决。间隔小,频率分辨力高,被“挡住”或丢失的频率成分就会越少。但会增加采样点数,使计算工作量增加。

频谱泄露:
产生原因:http://www.360doc.com/content/21/0221/08/42387867_963129244.shtml
在这里插入图片描述

泄漏与窗函数频谱的两侧旁瓣有关,如果两侧p旁瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。 低旁瓣会减少FFT的泄漏,但是增加主瓣的带宽。
在这里插入图片描述
其中“栅栏效应”更关心的是信号做DFT计算得到的离散频谱的视觉效果,也就是所谓的“计算分辨率”;频谱分辨率则是更加基础的概念,指的是DTFT区分谱峰的能力,也就是“物理分辨率”。在不增加数据信息的前提下,采用任何算法只能改善频谱的视觉效果,规避“栅栏效应”。原信号尾端补零,再进行fft,和直接进行频域插值理论上是等效的

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值