matlab 离散傅里叶变换_深入理解离散傅里叶变换(DFT)(续)

ec304862380e8bbc678565e3a9df5f9c.png

之前写过一篇文章:furious:深入理解离散傅里叶变换(DFT),这里再在其基础上探讨DFT的另外一些东西。

  1. 离散傅里叶变换(DFT)和离散时间傅里叶变换(DTFT)以及离散傅里叶级数(DFS)到底是啥区别?
     Name                  Time                  Frequency
Fourier Transform    continous/aperiodic     continous/aperiodic 
Fourier Series       continous/periodic      discrete/aperiodic 
Discrete Time FT     discrete/aperiodic      continous/periodic
DFT                  discrete/periodic       discrete/periodic
DFS                  discrete/periodic       discrete/periodic

上面这个表是傅里叶变换家族的几种不同变换名称以及它们在时域和频域的区别。DFT和DTFT的区别很好理解,因为DTFT转换后的频域是连续的,而DFT频域也是离散的。但是DFT和DFS是什么区别呢?它们在时域和频域都是离散周期的!

我们把DFS和DFT的变换式都写在这里。先是DFT:

,其中

,其中

再是DFS:

因为是周期的,所以这里的

是N个连续的整数,比如可以是0,1,2,3,...,N-1,也可以是3,4,5,...,N+2。

仔细观察DFS和DFT的式子,其实它们本质是一样的东西,只不过DFT把DFS的

改了一下位置,而且对DFS的
取了(0,1,2,...,N-1)的结果。所以之前那个表应该把DFS和DFT归到一处(DFS or DFT)。

似乎更好的名称应该为

     Name                  Time                  Frequency
Fourier Transform    continous/aperiodic     continous/aperiodic 
Fourier Series       continous/periodic      discrete/aperiodic 
Discrete FT          discrete/aperiodic      continous/periodic
Discrete FS          discrete/periodic       discrete/periodic

但是由于历史原因,这些名字已经用了多年,不会再改了。所以上面这个表看看就好了,当我没说。。。要记住的是第一个表。

综上,计算机拿来计算的DFT实际上是把采样的N点有限序列想象成这N点采样点不断重复的周期序列,这N点采样值是想象的这个无穷序列的一个周期而已,从而得出这个周期序列的傅里叶级数

2. 引出问题2,把采样的N点有限序列想象成这N点采样点不断重复的周期序列的一个周期,会有哪些影响?

看下图的例子:

4a1633be4b4e1586e0ec5a8d743aa3c2.png

上面这幅图中,原来的信号是一个周期的信号。上一个采样是N=12点的采样,控制好采样频率使这N点采样的总长时间刚好是原来信号周期的一个周期(或是原周期的整数倍,但注意最后一点,采样值不在0上的),那么有

,即由这N点“想象”出来的周期和原信号是刚好符合的,
即想象出来的离散周期信号确实是原信号的采样。下一个采样的采样频率一样,但是采了N=15个点,那么做15点DFT的时候“想象”出来的信号比实际的一个周期多了3个点的“尾巴”,当然这个“尾巴”也是周期重复的,那么这里可以看到此时 想象出来的离散周期信号和原信号已经有失真了。这就是需要注意的地方。

假如只关注采样的这些点,或信息只有这些点(比如一副N x M的二维图像),就没有所谓原来的信号,也不必关心原信号。大部分的工程应用都是如此,所以都不会有什么问题。

我们再以一个实际例子看一下这种“失真”带来的影响。

假设原始信号还是 furious:深入理解离散傅里叶变换(DFT) 里面的

,即40Hz和90Hz两个正弦信号的叠加,但是把初始相位改了一下。

先看0.2秒内采样200点的结果,采样频率为 200/0.2=1000Hz。由于

以及

所以这个200点采样“想象”后扩展成周期序列和原信号是一致的,即上文所说的第一种情况,我们来看这200点的DFT(FFT)的结果。

2ddfe723de700d77fb876d8b82b9e042.png
原始的0~0.2s的信号

3b3334a0ffe88ff12861e1467bfd7fd5.png
FFT结果

6b117a18658304490f737242371701e4.png
Value at index:  0 (1.7763568394002505e-14+0j)
Value at index 1:       (1.8569633000363936e-14+2.2252547978440843e-14j)
Value at index 199:     (1.8569633000363942e-14-2.2252547978440853e-14j)
Value at index 2:       (9.547918011776346e-15+2.5299207173645755e-14j)
Value at index 198:     (1.1886220707651997e-14-2.4050571444046535e-14j)
Value at index 3:       (-9.693514351633312e-15+3.490491273678388e-14j)
Value at index 197:     (-9.693514351633318e-15-3.490491273678389e-14j)
Value at index 6:       (4.551914400963142e-15+4.263256414560601e-14j)
Value at index 194:     (7.064251276911843e-15-4.3066997108967254e-14j)
Value at index 7:       (-8.476078683850144e-14-2.2348486787440525e-14j)
Value at index 193:     (-8.476078683850144e-14+2.234848678744052e-14j)
Value at index 8:       (70.71067811865467-70.71067811865483j)
Value at index 192:     (70.71067811865467+70.71067811865481j)
Value at index 9:       (3.508813072816526e-14-1.215592597591943e-13j)
Value at index 191:     (3.5088130728165266e-14+1.2155925975919434e-13j)
Value at index 10:      (8.650050970685519e-14-1.3987942513896568e-14j)
Value at index 190:     (9.086399079714617e-14+1.3862209280074106e-14j)
Value at index 11:      (6.340996313142325e-14-2.7527850486775756e-14j)
Value at index 189:     (6.340996313142323e-14+2.7527850486775753e-14j)
Value at index 12:      (5.220963443671392e-14-3.811367089091572e-15j)
Value at index 188:     (5.2209634436713917e-14+3.811367089091572e-15j)
Value at index 13:      (2.5053185950527098e-14-1.9269983332352148e-14j)
Value at index 187:     (2.5053185950527105e-14+1.9269983332352144e-14j)
Value at index 17:      (8.642153846944123e-14-2.3128957114594817e-14j)
Value at index 183:     (8.642153846944124e-14+2.3128957114594826e-14j)
Value at index 18:      (43.30127018922197-24.99999999999993j)
Value at index 182:     (43.30127018922197+24.99999999999993j)
Value at index 19:      (-8.0252920392197e-14+4.388609799770803e-14j)
Value at index 181:     (-8.0252920392197e-14-4.3886097997708017e-14j)
Value at index 20:      (4.745282733354273e-14-1.7615725461739818e-14j)

furious:深入理解离散傅里叶变换(DFT) 里面已经提到,DFT的结果

代表的是频率为
的频率“分量”,
的模与辐角表征了
的频率“分量”的幅度与相位。仔细看上面的结果,由于原始信号本来就由两个正弦信号叠加,40Hz对应的是
, 90Hz对应的
,FFT结果中第8点和18点的结果已经说明了原始信号的这两个组成,幅度与相位都不差!

然后我们把采样的点稍微改一下,按上文所说的第二种情况,来看“想象”失真的情况。还是1000Hz的采样频率,然后采了205点,多了5点的尾巴。下面是这205点DFT的结果。

17c4b0cbc40a1372865670325cf46527.png
0~0.2s又多了点尾巴

7062cd340111bbdc02fc4b1911d9a13a.png
FFT结果不像200点的图那么尖锐了,表明有了“杂”的频谱分量

991790db079c5946f5bcb61d576150a3.png
有了“杂”的频谱分量
Sample size:  205
Value at index:  0 (5.957087957548413+0j)
Value at index 1:       (6.030068228433837-0.015272157358793836j)
Value at index 204:     (6.030068228433839+0.015272157358794392j)
Value at index 2:       (6.262358768548947-0.037822084360654484j)
Value at index 203:     (6.262358768548943+0.03782208436065382j)
Value at index 3:       (6.700836287229996-0.07779935562844609j)
Value at index 202:     (6.70083628722998+0.07779935562844753j)
Value at index 4:       (7.4538392106248335-0.15350591251718748j)
Value at index 201:     (7.453839210624833+0.1535059125171872j)
Value at index 5:       (8.778440924568487-0.3056151540138314j)
Value at index 200:     (8.778440924568487+0.3056151540138314j)
Value at index 6:       (11.410771310874255-0.6496193957963805j)
Value at index 199:     (11.410771310874257+0.6496193957963781j)
Value at index 7:       (18.552598401300198-1.6904049339564933j)
Value at index 198:     (18.552598401300198+1.6904049339564908j)
Value at index 8:       (97.46791507224313-14.077921066784947j)
Value at index 197:     (97.4679150722431+14.077921066784949j)
Value at index 9:       (-20.89528658860018+4.807051901715209j)
Value at index 196:     (-20.895286588600182-4.807051901715209j)
Value at index 10:      (-7.688078109981043+2.888490068466027j)
Value at index 195:     (-7.688078109981043-2.888490068466027j)
Value at index 11:      (-3.8351478276217286+2.5000447095661973j)
Value at index 194:     (-3.8351478276217286-2.500044709566197j)
Value at index 12:      (-1.9041258847014007+2.486432545198113j)
Value at index 193:     (-1.9041258847014007-2.48643254519812j)
Value at index 13:      (-0.6320986607985866+2.6857740236564736j)
Value at index 192:     (-0.6320986607985901-2.6857740236564736j)
Value at index 14:      (0.41611572198835933+3.101754264112672j)
Value at index 191:     (0.41611572198836155-3.101754264112672j)
Value at index 15:      (1.510656587049075+3.8485563697540526j)
Value at index 190:     (1.510656587049075-3.8485563697540526j)
Value at index 16:      (3.0247939620528115+5.280488038038734j)
Value at index 189:     (3.024793962052807-5.280488038038731j)
Value at index 17:      (6.115611597887165+8.768440845412808j)
Value at index 188:     (6.115611597887168-8.768440845412806j)
Value at index 18:      (21.83877024187418+27.930832903711135j)
Value at index 187:     (21.83877024187418-27.930832903711135j)
Value at index 19:      (-18.985858515202462-22.684103724754106j)
Value at index 186:     (-18.985858515202466+22.68410372475411j)
Value at index 20:      (-6.974700029701168-8.012988665076517j)
Value at index 185:     (-6.974700029701168+8.012988665076517j)
Value at index 21:      (-4.313637637529757-4.858616286490589j)
Value at index 184:     (-4.313637637529757+4.8586162864905855j)
Value at index 22:      (-3.114226813389685-3.4863564644399414j)
Value at index 183:     (-3.114226813389683+3.4863564644399387j)
Value at index 23:      (-2.4199924255412038-2.7199767563742294j)
Value at index 182:     (-2.419992425541205+2.719976756374227j)
Value at index 24:      (-1.9621906686302601-2.2312478392964694j)
Value at index 181:     (-1.9621906686302597+2.23124783929647j)
Value at index 25:      (-1.6352450971121604-1.8925441210847886j)
Value at index 180:     (-1.6352450971121604+1.8925441210847886j)
Value at index 26:      (-1.3889295242790403-1.6439541090078476j)
Value at index 179:     (-1.388929524279041+1.643954109007846j)

以及
,40Hz和90Hz的点的index已经不是整数值了,仔细看上面的结果值,峰值还是在8和18点,但是7,9,17,19 等这些点都有了较大的值,表明这些频谱分量也有值,
而且辐角更是和原信号的那两个初始相位没关系了多出的那点尾巴使得DFT计算表征的原信号已经和真正的原始信号出现失真,显然带入了其他的频率分量。这便是回答了问题2。

全文完。欢迎讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值