之前写过一篇文章:furious:深入理解离散傅里叶变换(DFT),这里再在其基础上探讨DFT的另外一些东西。
- 离散傅里叶变换(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:
因为是周期的,所以这里的
仔细观察DFS和DFT的式子,其实它们本质是一样的东西,只不过DFT把DFS的
似乎更好的名称应该为:
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点采样点不断重复的周期序列的一个周期,会有哪些影响?
看下图的例子:
上面这幅图中,原来的信号是一个周期的信号。上一个采样是N=12点的采样,控制好采样频率使这N点采样的总长时间刚好是原来信号周期的一个周期(或是原周期的整数倍,但注意最后一点,采样值不在0上的),那么有
假如只关注采样的这些点,或信息只有这些点(比如一副N x M的二维图像),就没有所谓原来的信号,也不必关心原信号。大部分的工程应用都是如此,所以都不会有什么问题。
我们再以一个实际例子看一下这种“失真”带来的影响。
假设原始信号还是 furious:深入理解离散傅里叶变换(DFT) 里面的
先看0.2秒内采样200点的结果,采样频率为 200/0.2=1000Hz。由于
所以这个200点采样“想象”后扩展成周期序列和原信号是一致的,即上文所说的第一种情况,我们来看这200点的DFT(FFT)的结果。
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的结果
然后我们把采样的点稍微改一下,按上文所说的第二种情况,来看“想象”失真的情况。还是1000Hz的采样频率,然后采了205点,多了5点的尾巴。下面是这205点DFT的结果。
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)
全文完。欢迎讨论。