matlab图像频谱分析代码_傅里叶公式总结及基于Julia的FFT代码实战

一、目的
鉴于傅里叶变换在信号处理频域空间处理的重要位置,而且内容繁多,这里总结记录各种傅里叶变换的形式、公式便于今后的使用。

二、
常用信号分为四种:
连续周期信号,连续非周期信号,离散周期信号,离散非周期信号
按能量和功率可分类:
周期信号为功率信号,能量无限;非周期信号为能量信号,功率为0
其中:周期信号存在傅里叶级数,非周期信号存在傅里叶变换

5f1a51ac0ca50992be44da7be13018bc.png

1、连续周期信号的傅里叶级数
其中,F0为信号的周期

ac17aa0551a196263d627f39655ad998.png

信号的功率谱密度Sxx和平均功率Px如下:

3e457d6eaea6f9b753081bc7cd9f438c.png

示例:周期矩形脉冲串

0e3eeaed39680f1f2f4b7ea84e9245f5.png

b6297d61a4e3e5d91ee72be31f7e70d9.png


2、连续非周期信号的傅里叶变换

e8e172fb194bca2999e7f913e0585732.png

信号的能量谱密度和总能量为

378bcc32e64701674b60109fbe394674.png

示例:单个矩形脉冲

f16d74ec932d2f323f16fd8719b01ea1.png

3、连续时间信号傅里叶级数和傅里叶变换的关系
以示例的矩形脉冲信号为例

47f09a4de9ce0a46b89bd6ceaff0e172.png

由上式可看出:非周期信号的傅里叶频谱是对应周期信号傅里叶级数的包络线,傅里级数是对应傅里叶变换的采样值。
4、离散周期信号的傅里叶级数

bfc712a1830d533a114ae82ed1886439.png

功率密度谱,平均功率和单个周期信号的能量为

f9c9f095b0fcff7d2203374c34755a5d.png

示例:x(n)={1,1,0,0},周期N=4

df677ea7c928e1205bf9f279f0020342.png

d3cdacbfad214316d547659e1a565685.png


5、离散非周期信号

3f4db550f79cc6cf6745080ba2107683.png

能量密度谱和信号总能量为:

65105bb9bc647a1dda61ec5b29c233d6.png

示例:

57638e1fd82615b6218fd481af227889.png

d885304d01a620123f29824a5ecb81cb.png

6、离散时间信号傅里叶级数和傅里叶变换的关系
以矩形脉冲串为例:

f1e3c51d19f1deb43c340a806091581e.png

矩形脉冲的傅里叶变换在频率 w = 2*pi / N, k =0, 1, .., N-1上值只在在相应频率上周期矩形脉冲串的傅里叶系统 Ck的倍数, 而这个矩阵脉冲等同于周期矩形脉冲串的单个周期。
7、总结

6eb1fe70c464fc606e7a1039eef74bcd.png

8、对称性

45b9ebdf27f1b6cf33cdff094ef61c8b.png

9、带限信号的采样与重建

e22a0e59cfa4b6f55f17e2f3c26197d6.png

9c1acf8a139d2808b117b83f61526042.png

9、离散傅里叶变换DFT
DFT与DTFT(离散时间序列的傅里叶变换)的区别:DFT是一种对DTFT生成的连续频谱的采样,便于在计算机内处理的计算工具。

00373e1785ad136f03345562d515bb8c.png
公式22、23

公式22为频谱系数,公式23为重建后的原信号。由公式可以,原信号共有M个样本值,同理,频谱系数也有M个。
同时卷积定理也修改为:

87272880d2f9f7ca69d0e4795f090377.png

下面举一个例子进行说明:

已知f(t)如下图左,取样后如下面右,

6bdaa50bce3702602c7d7e30dedd15aa.png

先由公式22,23进行计算出傅里叶变换值

008f00c389028fe852b5f23ad88b1bdc.png

使用matlab做出幅值(|F(u)|)图像如下:

e4d82e1c179c5df49fea7e5a036de3f3.png

上面是对书本的总结,以下针对几个重要的内容加入自己的观点:

一、时域采样对频域的影响

32883a83e5db7eb068f70bc440a6f397.png

如上图所示,时域采样会引起频域的周期延拓,同时幅值缩放T,横轴也进行了缩放。

二、DTFT和DFT的关系

a5688efa3bb0bf4f9dd15cff34429445.png

DFT是对DTFT频谱在

内的采样。由于DTFT的频率是连续函数,所以无法用计算机求解,通过对频谱的M点采样可得到DFT。

对N点有限长序列x(n)的M点(

)DFT X(k)是对x(n)的DTFT频谱在
内以M点采样的值。对M点X(k)进行IDFT变换可得到x(n),前提是要求 (
)。

使用Julia代码验证如下:

using 

f01306b5e35af44daa5a2affcd08b3c4.png

三、线性卷积和圆周卷积

a013030792541c54a7ff45a8ca24525c.png

简单总结一下:滤波器的输出是输入信号与滤波器冲激响应的线性卷积,但是由于计算量太大,所以想要使用FFT计算输出信号的频谱(FFT是DFT的一种快速算法)。但是使用DFT求解的却是圆周卷积,因此,需要找到一种方法利用圆周卷积求解线性卷积。

四、用圆周卷积求解线性卷积

1、两个有限长序列的线性卷积

c9f0fadc5338d6ae53d6df1df8864e3d.png

2、有限长序列和无限长序列的线性总卷积

可使用重叠相加法(对应matlab函数fftfilt)和重叠保留法计算。

五、周期信号的频谱

以余弦信号为例:单边频谱和双边频谱

81cd445655c543f120c1253f8c2f4363.png

六、用DFT做连续信号的频谱分析(继续在一的讨论)

ca4535bc95b7fd3add6c032096eb5d76.png

1、非周期无限长时域信号

在截短部分会产生频谱的泄露,栅栏效应。无限长序列x(n)与加窗函数Rn(n)的时域乘积会引起频域的卷积。

2、周期时域信号(以余弦信号为例)

先上一个 Julia代码

#= 

结果如下图所示:

099ff9627827e472981ca928d7eda80c.png

4bff28256e3f0d4f84ad3c0844ef72ef.png

理论看起来简单,但是真正用代码实现起来还是要花费一些功夫。理论余弦信号的频谱如下图所示:

81cd445655c543f120c1253f8c2f4363.png

周期信号和非周期信号分析有一些要点:

  • https://blog.csdn.net/wordwarwordwar/article/details/62078726 这里说明了采样周期和采样点数的重要性
  • fftshift函数详解 - limanjihe - 博客园 解释了横轴频率缩放的原理,其中fftfreq函数可实现同样的功能,但是使用起来却更加简单

建议看到这里的把代码自己输入实现一遍。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值