• 傅里叶级数与傅里叶变换_Part7_离散傅里叶变换的性质


    傅里叶级数与傅里叶变换_Part7_离散傅里叶变换的性质

    0、Part6 内容复习

    离散傅里叶变换/逆变换的公式如下:

    X ( n ) = ∑ k = 0 N − 1 x ( k ) e − i n 2 π k N X\left( n \right) = \sum\limits_{k = 0}^{N - 1} {x\left( k \right){e^{ - in\frac{{2\pi k}}{N}}}} X(n)=k=0N1x(k)einN2πk

    x ( m ) = 1 N ∑ n = 0 N − 1 [ X ( n ) ⋅ e i n 2 π m N ] x\left( m \right) = \frac{1}{N}\sum\limits_{n = 0}^{N - 1} {\left[ {X\left( n \right) \cdot {e^{in\frac{{2\pi m}}{N}}}} \right]} x(m)=N1n=0N1[X(n)einN2πm]

    换换符号,等价重写一下

    X ( k ) ≜ ∑ n = 0 N − 1 x ( n ) e − i k 2 π n N X\left( k \right) \triangleq \sum\limits_{n = 0}^{N - 1} {x\left( n \right){e^{ - ik\frac{{2\pi n}}{N}}}} X(k)n=0N1x(n)eikN2πn

    x ( n ) = 1 N ∑ k = 0 N − 1 [ X ( k ) ⋅ e i k 2 π n N ] x\left( n \right) = \frac{1}{N}\sum\limits_{k = 0}^{N - 1} {\left[ {X\left( k \right) \cdot {e^{ik\frac{{2\pi n}}{N}}}} \right]} x(n)=N1k=0N1[X(k)eikN2πn]

    1、共轭性质

    1.1 原理证明

    X ( k ) ≜ ∑ n = 0 N − 1 x ( n ) e − i k 2 π n N X\left( k \right) \triangleq \sum\limits_{n = 0}^{N - 1} {x\left( n \right){e^{ - ik\frac{{2\pi n}}{N}}}} X(k)n=0N1x(n)eikN2πn

    X ( N − k ) = ∑ n = 0 N − 1 x ( n ) e − i ( N − k ) 2 π n N = ∑ n = 0 N − 1 x ( n ) e − i ( 2 π n − k 2 π n N ) X\left( {N - k} \right) = \sum\limits_{n = 0}^{N - 1} {x\left( n \right){e^{ - i\left( {N - k} \right)\frac{{2\pi n}}{N}}}} = \sum\limits_{n = 0}^{N - 1} {x\left( n \right){e^{ - i\left( {2\pi n - k\frac{{2\pi n}}{N}} \right)}}} X(Nk)=n=0N1x(n)ei(Nk)N2πn=n=0N1x(n)ei(2πnkN2πn)

    根据欧拉公式, e − i θ = cos ⁡ θ − j sin ⁡ θ {e^{ - i\theta }} = \cos \theta - j\sin \theta eiθ=cosθjsinθ

    X ( N − k ) = ∑ n = 0 N − 1 x ( n ) e − i ( 2 π n + k 2 π n N ) = ∑ n = 0 N − 1 x ( n ) [ cos ⁡ ( 2 π n − k 2 π n N ) − j sin ⁡ ( 2 π n − k 2 π n N ) ] X\left( {N - k} \right) = \sum\limits_{n = 0}^{N - 1} {x\left( n \right){e^{ - i\left( {2\pi n + k\frac{{2\pi n}}{N}} \right)}}} = \sum\limits_{n = 0}^{N - 1} {x\left( n \right)\left[ {\cos \left( {2\pi n - k\frac{{2\pi n}}{N}} \right) - j\sin \left( {2\pi n - k\frac{{2\pi n}}{N}} \right)} \right]} X(Nk)=n=0N1x(n)ei(2πn+kN2πn)=n=0N1x(n)[cos(2πnkN2πn)jsin(2πnkN2πn)]

    因为cos和sin函数都是以2Π为周期的函数,因此

    X ( N − k ) = ∑ n = 0 N − 1 x ( n ) [ cos ⁡ ( − k 2 π n N ) − j sin ⁡ ( − k 2 π n N ) ] = ∑ n = 0 N − 1 x ( n ) [ cos ⁡ ( k 2 π n N ) + j sin ⁡ ( k 2 π n N ) ] = ∑ n = 0 N − 1 x ( n ) cos ⁡ ( k 2 π n N ) + ∑ n = 0 N − 1 x ( n ) sin ⁡ ( k 2 π n N ) ⋅ j = a k + b k j

    X(Nk)=n=0N1x(n)[cos(k2πnN)jsin(k2πnN)]=n=0N1x(n)[cos(k2πnN)+jsin(k2πnN)]=n=0N1x(n)cos(k2πnN)+n=0N1x(n)sin(k2πnN)j=ak+bkj" role="presentation" style="position: relative;">X(Nk)=n=0N1x(n)[cos(k2πnN)jsin(k2πnN)]=n=0N1x(n)[cos(k2πnN)+jsin(k2πnN)]=n=0N1x(n)cos(k2πnN)+n=0N1x(n)sin(k2πnN)j=ak+bkj
    X(Nk)=n=0N1x(n)[cos(kN2πn)jsin(kN2πn)]=n=0N1x(n)[cos(kN2πn)+jsin(kN2πn)]=n=0N1x(n)cos(kN2πn)+n=0N1x(n)sin(kN2πn)j=ak+bkj


    X ( k ) = ∑ n = 0 N − 1 x ( n ) e − i k 2 π n N = ∑ n = 0 N − 1 x ( n ) [ cos ⁡ ( k 2 π n N ) − j sin ⁡ ( k 2 π n N ) ] = ∑ n = 0 N − 1 x ( n ) cos ⁡ ( k 2 π n N ) − ∑ n = 0 N − 1 x ( n ) sin ⁡ ( k 2 π n N ) ⋅ j = a k − b k j

    X(k)=n=0N1x(n)eik2πnN=n=0N1x(n)[cos(k2πnN)jsin(k2πnN)]=n=0N1x(n)cos(k2πnN)n=0N1x(n)sin(k2πnN)j=akbkj" role="presentation" style="position: relative;">X(k)=n=0N1x(n)eik2πnN=n=0N1x(n)[cos(k2πnN)jsin(k2πnN)]=n=0N1x(n)cos(k2πnN)n=0N1x(n)sin(k2πnN)j=akbkj
    X(k)=n=0N1x(n)eikN2πn=n=0N1x(n)[cos(kN2πn)jsin(kN2πn)]=n=0N1x(n)cos(kN2πn)n=0N1x(n)sin(kN2πn)j=akbkj

    因此可得, X ( N − k ) = X ∗ ( k ) X\left( {N - k} \right) = {X^*}\left( k \right) X(Nk)=X(k)

    1.2 MatLAB小实验

    x = 1000 +500* sin(2 * pi * 50 * t + pi/6) + 250 * sin(2 * pi * 150 * t + pi/4) + 100 * sin(2 * pi * 250 * t+pi/3); 
    
    • 1

    其中 T = 0.001; N = 2000; t = (1:N)*dt;
    对序列进行x(n)离散傅里叶变换,可得X(k)的幅值和相位图
    在这里插入图片描述
    在这里插入图片描述
    从实验结果确实来看,离散傅里叶变换的对称位置,幅值相等,相位相反。确实的共轭的。即 X ( N − k ) = X ∗ ( k ) , k ∈ { 0 , 1 , 2 , ⋯   , N − 1 } X\left( {N - k} \right) = {X^*}\left( k \right),k \in \left\{ {0,1,2, \cdots ,N - 1} \right\} X(Nk)=X(k),k{0,1,2,,N1}

    MatLAB代码附在文末4.4中。

    X(k)对应的频率

    注意到4.4附录的MatLAB代码有一行,单独拎出来进行解释解释。

    figure(2); plot((0:N)/N/dt,abs(X)/N,'b','LineWidth',1.5);
    
    • 1

    (0:N)/N/dt相当于 F ( k ⋅ 2 π N T ) F\left( {k \cdot \frac{{2\pi }}{{NT}}} \right) F(kNT2π)中的 k ⋅ 1 N T k \cdot \frac{1}{{NT}} kNT1,为什么没有 × 2 π \times 2\pi ×2π,如果 × 2 π \times 2\pi ×2π,频率单位就是弧度制rad/s, 如果没有 × 2 π \times 2\pi ×2π ,频率单位就是Hz。
    也就是说 X(k)对应的频率是 2 π k N T \frac{{2\pi k}}{{NT}} NT2πk (rad/s) | k N T \frac{{ k}}{{NT}} NTk (Hz)。

    2、幅值相位性质

    2.1 原理证明

    X ( 0 ) = ∑ n = 0 N − 1 x ( n ) e − i 0 = ∑ n = 0 N − 1 x ( n ) X\left( 0 \right) = \sum\limits_{n = 0}^{N - 1} {x\left( n \right){e^{ - i0}}} = \sum\limits_{n = 0}^{N - 1} {x\left( n \right)} X(0)=n=0N1x(n)ei0=n=0N1x(n) 没有虚部,是直流分量, 假设 N N N是偶数。

    X ( N 2 ) = ∑ n = 0 N − 1 x ( n ) e − i N 2 2 π n N = ∑ n = 0 N − 1 x ( n ) e − i n π = ∑ n = 0 N − 1 x ( n ) cos ⁡ ( n π ) − ∑ n = 0 N − 1 x ( n ) sin ⁡ ( n π ) j = ∑ n = 0 N − 1 x ( n ) cos ⁡ ( n π ) X\left( {\frac{N}{2}} \right) = \sum\limits_{n = 0}^{N - 1} {x\left( n \right){e^{ - i\frac{N}{2}\frac{{2\pi n}}{N}}}} = \sum\limits_{n = 0}^{N - 1} {x\left( n \right){e^{ - in\pi }}} = \sum\limits_{n = 0}^{N - 1} {x\left( n \right)\cos \left( {n\pi } \right)} - \sum\limits_{n = 0}^{N - 1} {x\left( n \right)\sin \left( {n\pi } \right)} j = \sum\limits_{n = 0}^{N - 1} {x\left( n \right)\cos \left( {n\pi } \right)} X(2N)=n=0N1x(n)ei2NN2πn=n=0N1x(n)einπ=n=0N1x(n)cos()n=0N1x(n)sin()j=n=0N1x(n)cos()

    X ( N 2 ) X\left( {\frac{N}{2}} \right) X(2N)也没有虚部,也是直流分量。

    下面考虑 x ( n ) x\left( n \right) x(n) ,仍然假设 N N N 是偶数

    N × x ( n ) = N × 1 N ∑ k = 0 N − 1 [ X ( k ) ⋅ e i k 2 π n N ] = X ( 0 ) + X ( 1 ) e i 2 π n N + X ( 2 ) e i 2 2 π n N + ⋯ + X ( N 2 ) cos ⁡ ( n π ) + X ( N 2 + 1 ) e i ( N 2 + 1 ) 2 π n N + ⋯ + X ( N − 1 ) e i ( N − 1 ) 2 π n N

    N×x(n)=N×1Nk=0N1[X(k)eik2πnN]=X(0)+X(1)ei2πnN+X(2)ei22πnN++X(N2)cos(nπ)+X(N2+1)ei(N2+1)2πnN++X(N1)ei(N1)2πnN" role="presentation" style="position: relative;">N×x(n)=N×1Nk=0N1[X(k)eik2πnN]=X(0)+X(1)ei2πnN+X(2)ei22πnN++X(N2)cos(nπ)+X(N2+1)ei(N2+1)2πnN++X(N1)ei(N1)2πnN
    N×x(n)=N×N1k=0N1[X(k)eikN2πn]=X(0)+X(1)eiN2πn+X(2)ei2N2πn++X(2N)cos()+X(2N+1)ei(2N+1)N2πn++X(N1)ei(N1)N2πn

    定义直流分量 A 0 = X ( 0 ) + X ( N 2 ) cos ⁡ ( n π ) {A_0} = X\left( 0 \right) + X\left( {\frac{N}{2}} \right)\cos \left( {n\pi } \right) A0=X(0)+X(2N)cos() , 根据傅里叶变换的共轭性质设 X ( N − k ) = a k + b k j X\left( {N - k} \right) = {a_k} + {b_k}j X(Nk)=ak+bkj, X ( k ) = a k − b k j X\left( k \right) = {a_k} - {b_k}j X(k)=akbkj

    X ( k ) e i k 2 π n N + X ( N − k ) e i ( N − k ) 2 π n N = ( a k + b k j ) [ cos ⁡ ( k 2 π n N ) + sin ⁡ ( k 2 π n N ) j ] + ( a k − b k j ) [ cos ⁡ ( 2 π n − k 2 π n N ) + sin ⁡ ( 2 π n − k 2 π n N ) j ] = ( a k + b k j ) [ cos ⁡ ( k 2 π n N ) + sin ⁡ ( k 2 π n N ) j ] + ( a k − b k j ) [ cos ⁡ ( k 2 π n N ) − sin ⁡ ( k 2 π n N ) j ]

    X(k)eik2πnN+X(Nk)ei(Nk)2πnN=(ak+bkj)[cos(k2πnN)+sin(k2πnN)j]+(akbkj)[cos(2πnk2πnN)+sin(2πnk2πnN)j]=(ak+bkj)[cos(k2πnN)+sin(k2πnN)j]+(akbkj)[cos(k2πnN)sin(k2πnN)j]" role="presentation" style="position: relative;">X(k)eik2πnN+X(Nk)ei(Nk)2πnN=(ak+bkj)[cos(k2πnN)+sin(k2πnN)j]+(akbkj)[cos(2πnk2πnN)+sin(2πnk2πnN)j]=(ak+bkj)[cos(k2πnN)+sin(k2πnN)j]+(akbkj)[cos(k2πnN)sin(k2πnN)j]
    X(k)eikN2πn+X(Nk)ei(Nk)N2πn=(ak+bkj)[cos(kN2πn)+sin(kN2πn)j]+(akbkj)[cos(2πnkN2πn)+sin(2πnkN2πn)j]=(ak+bkj)[cos(kN2πn)+sin(kN2πn)j]+(akbkj)[cos(kN2πn)sin(kN2πn)j]

    = a k cos ⁡ ( k 2 π n N ) + [ a k sin ⁡ ( k 2 π n N ) + b k cos ⁡ ( k 2 π n N ) ] j − b k sin ⁡ ( k 2 π n N ) + a k cos ⁡ ( k 2 π n N ) − [ a k sin ⁡ ( k 2 π n N ) + b k cos ⁡ ( k 2 π n N ) ] j − b k sin ⁡ ( k 2 π n N ) = 2 a k cos ⁡ ( k 2 π n N ) − 2 b k sin ⁡ ( k 2 π n N )

    =akcos(k2πnN)+[aksin(k2πnN)+bkcos(k2πnN)]jbksin(k2πnN)+akcos(k2πnN)[aksin(k2πnN)+bkcos(k2πnN)]jbksin(k2πnN)=2akcos(k2πnN)2bksin(k2πnN)" role="presentation" style="position: relative;">=akcos(k2πnN)+[aksin(k2πnN)+bkcos(k2πnN)]jbksin(k2πnN)+akcos(k2πnN)[aksin(k2πnN)+bkcos(k2πnN)]jbksin(k2πnN)=2akcos(k2πnN)2bksin(k2πnN)
    =akcos(kN2πn)+[aksin(kN2πn)+bkcos(kN2πn)]jbksin(kN2πn)+akcos(kN2πn)[aksin(kN2πn)+bkcos(kN2πn)]jbksin(kN2πn)=2akcos(kN2πn)2bksin(kN2πn)

    = ( 2 a k ) 2 + ( 2 b k ) 2 × [ 2 a k ( 2 a k ) 2 + ( 2 b k ) 2 cos ⁡ ( k 2 π n N ) − 2 b k ( 2 a k ) 2 + ( 2 b k ) 2 sin ⁡ ( k 2 π n N ) ] = 2 a k 2 + b k 2 × [ cos ⁡ φ k cos ⁡ ( k 2 π n N ) − sin ⁡ φ k sin ⁡ ( k 2 π n N ) ] = 2 a k 2 + b k 2 cos ⁡ ( k 2 π n N + φ k ) = A k cos ⁡ ( k 2 π n N + φ k ) , A k = 2 a k 2 + b k 2 , φ k = arctan ⁡ b k a k

    =(2ak)2+(2bk)2×[2ak(2ak)2+(2bk)2cos(k2πnN)2bk(2ak)2+(2bk)2sin(k2πnN)]=2ak2+bk2×[cosφkcos(k2πnN)sinφksin(k2πnN)]=2ak2+bk2cos(k2πnN+φk)=Akcos(k2πnN+φk),Ak=2ak2+bk2,φk=arctanbkak" role="presentation" style="position: relative;">=(2ak)2+(2bk)2×[2ak(2ak)2+(2bk)2cos(k2πnN)2bk(2ak)2+(2bk)2sin(k2πnN)]=2ak2+bk2×[cosφkcos(k2πnN)sinφksin(k2πnN)]=2ak2+bk2cos(k2πnN+φk)=Akcos(k2πnN+φk),Ak=2ak2+bk2,φk=arctanbkak
    =(2ak)2+(2bk)2 ×[(2ak)2+(2bk)2 2akcos(kN2πn)(2ak)2+(2bk)2 2bksin(kN2πn)]=2ak2+bk2 ×[cosφkcos(kN2πn)sinφksin(kN2πn)]=2ak2+bk2 cos(kN2πn+φk)=Akcos(kN2πn+φk),Ak=2ak2+bk2 ,φk=arctanakbk

    在这里插入图片描述
    N × x ( n ) = X ( 0 ) + X ( N 2 ) cos ⁡ ( n π ) + ∑ k = 1 N 2 − 1 [ X ( k ) e i k 2 π n N + X ( N − k ) e i ( N − k ) 2 π n N ] = A 0 + A 1 cos ⁡ ( 1 2 π n N + φ 1 ) + A 2 cos ⁡ ( 2 2 π n N + φ 2 ) + ⋯ + A N 2 − 1 cos ⁡ ( ( N 2 − 1 ) 2 π n N + φ N 2 − 1 )

    N×x(n)=X(0)+X(N2)cos(nπ)+k=1N21[X(k)eik2πnN+X(Nk)ei(Nk)2πnN]=A0+A1cos(12πnN+φ1)+A2cos(22πnN+φ2)++AN21cos((N21)2πnN+φN21)" role="presentation" style="position: relative;">N×x(n)=X(0)+X(N2)cos(nπ)+k=1N21[X(k)eik2πnN+X(Nk)ei(Nk)2πnN]=A0+A1cos(12πnN+φ1)+A2cos(22πnN+φ2)++AN21cos((N21)2πnN+φN21)
    N×x(n)=X(0)+X(2N)cos()+k=12N1[X(k)eikN2πn+X(Nk)ei(Nk)N2πn]=A0+A1cos(1N2πn+φ1)+A2cos(2N2πn+φ2)++A2N1cos((2N1)N2πn+φ2N1)

    根据上述推导的结论,已经可以给出我们启示。下面用MatLAB实验进行分析和探讨。

    2.2 MatLAB小实验

    还是用1.2使用的序列进行分析

    x = 1000 +500* sin(2 * pi * 50 * t + pi/6) + 250 * sin(2 * pi * 150 * t + pi/4) + 100 * sin(2 * pi * 250 * t+pi/3);
    
    • 1

    其中 T = 0.001; N = 2000; t = (1:N)*dt;

    对序列进行x(n)离散傅里叶变换,可得X(k)的幅值和相位图

    在这里插入图片描述
    在这里插入图片描述
    在我们给出的信号当中,存在一个频率为50Hz的信号500* sin(2 * pi * 50 * t + pi/6)分量,显然它的幅值是500,相位是30°
    但在离散傅里叶变换的结果中,却是250的幅值,-60°的相位。 这是为什么呢? 下面进行详细分析。

    幅值性质分析

    找到50Hz的信号对应的 X ( k ) , X ( N − k ) X\left( k \right),X\left( {N - k} \right) X(k),X(Nk)

    X(k) = 2.5000e+05 - 4.3301e+05i

    X(N-k) = 2.5000e+05 + 4.3301e+05i

    在本例中 N = 2000

    我先给 X(k)和X(N-k)来一个1/N

    X(k) = 125 - 216.5i
    = ak + bki
    X(N-k) = 125 + 216.5i
    = ak - bki
    根据2.1的推导结论可知,在离散傅里叶逆变换的时, X ( k ) , X ( N − k ) X\left( k \right),X\left( {N - k} \right) X(k),X(Nk) 会产生一个 A k cos ⁡ ( k 2 π n N + φ k ) {A_k}\cos \left( {k\frac{{2\pi n}}{N} + {\varphi _k}} \right) Akcos(kN2πn+φk) 信号。

    其中, A k = 2 a k 2 + b k 2 = 2 × 125 2 + ( − 216.5 ) 2 = 499 . 989 {A_k} = 2\sqrt {a_k^2 + b_k^2} = 2 \times \sqrt {{{125}^2} + {{\left( { - 216.5} \right)}^2}} = {\rm{499}}{\rm{.989}} Ak=2ak2+bk2 =2×1252+(216.5)2 =499.989

    到这里,就可以解释信号明明是500的振幅,离散傅里叶变换却产生的是两个幅值为250的复数。

    应用:要得到一个频率点的振幅, 离散傅里叶变换之后, 先/N,再*2。

    相位性质分析

    延续上述的分析,重点关注相位, φ k = arctan ⁡ b k a k = arctan ⁡ − 216.5 125 = arctan ⁡ ( − 1 . 732 ) = − 6 0 o {\varphi _k} = \arctan \frac{{{b_k}}}{{{a_k}}} = \arctan \frac{{ - 216.5}}{{125}} = \arctan \left( {{\rm{ - 1}}{\rm{.732}}} \right) = - {60^o} φk=arctanakbk=arctan125216.5=arctan(1.732)=60o

    cos ⁡ ( k 2 π n N + φ k ) = sin ⁡ [ 90 o + ( k 2 π n N + φ k ) ] = sin ⁡ ( k 2 π n N + 30 o ) \cos \left( {k\frac{{2\pi n}}{N} + {\varphi _k}} \right) = \sin \left[ {{{90}^o} + \left( {k\frac{{2\pi n}}{N} + {\varphi _k}} \right)} \right] = \sin \left( {k\frac{{2\pi n}}{N} + {{30}^o}} \right) cos(kN2πn+φk)=sin[90o+(kN2πn+φk)]=sin(kN2πn+30o)

    👉 给点小提示 sin ⁡ ( 90 o + θ ) = sin ⁡ [ 90 − ( − θ ) ] = cos ⁡ ( − θ ) = cos ⁡ θ \sin \left( {{{90}^o} + \theta } \right) = \sin \left[ {90 - \left( { - \theta } \right)} \right] = \cos \left( { - \theta } \right) = \cos \theta sin(90o+θ)=sin[90(θ)]=cos(θ)=cosθ

    到这里,就能解释给定正弦信号的相位明明是30°,离散傅里叶变换产生的相位却是-60°了。

    应用:要得到一个频率点的sin相位, 离散傅里叶变换之后, +90°。

    进一步分析,假设我把原始信号换成如下的信号呢?

    x = 1000 +500* cos(2 * pi * 50 * t + pi/6) + 250 * cos(2 * pi * 150 * t + pi/4) + 100 * cos(2 * pi * 250 * t+pi/3);
    
    • 1

    结果如下

    在这里插入图片描述
    在这里插入图片描述
    仍然只关注50Hz处,结果可以看出相位是30°与给定相位符和。 因为给定的原始信号本身就是余弦信号,所以不需要+90°就能得到余弦的相位。

    3、周期性质

    3.1 原理证明

    下面从理论上去证明离散傅里叶变换的周期性质。
    X ( N + k ) = ∑ n = 0 N − 1 x ( n ) e − i ( 2 π n + k 2 π n N ) = ∑ n = 0 N − 1 x ( n ) e − i ( 2 π n + k 2 π n N ) = ∑ n = 0 N − 1 x ( n ) [ cos ⁡ ( 2 π n + k 2 π n N ) − j sin ⁡ ( 2 π n + k 2 π n N ) ]

    X(N+k)=n=0N1x(n)ei(2πn+k2πnN)=n=0N1x(n)ei(2πn+k2πnN)=n=0N1x(n)[cos(2πn+k2πnN)jsin(2πn+k2πnN)]" role="presentation" style="position: relative;">X(N+k)=n=0N1x(n)ei(2πn+k2πnN)=n=0N1x(n)ei(2πn+k2πnN)=n=0N1x(n)[cos(2πn+k2πnN)jsin(2πn+k2πnN)]
    X(N+k)=n=0N1x(n)ei(2πn+kN2πn)=n=0N1x(n)ei(2πn+kN2πn)=n=0N1x(n)[cos(2πn+kN2πn)jsin(2πn+kN2πn)]

    同用到cos和sin函数都是以2Π为周期的函数,因此

    X ( N + k ) = ∑ n = 0 N − 1 x ( n ) [ cos ⁡ ( 2 π n + k 2 π n N ) − j sin ⁡ ( 2 π n + k 2 π n N ) ] = ∑ n = 0 N − 1 x ( n ) [ cos ⁡ ( k 2 π n N ) − j sin ⁡ ( k 2 π n N ) ] = ∑ n = 0 N − 1 x ( n ) e − i k 2 π n N = X ( k )

    X(N+k)=n=0N1x(n)[cos(2πn+k2πnN)jsin(2πn+k2πnN)]=n=0N1x(n)[cos(k2πnN)jsin(k2πnN)]=n=0N1x(n)eik2πnN=X(k)" role="presentation" style="position: relative;">X(N+k)=n=0N1x(n)[cos(2πn+k2πnN)jsin(2πn+k2πnN)]=n=0N1x(n)[cos(k2πnN)jsin(k2πnN)]=n=0N1x(n)eik2πnN=X(k)
    X(N+k)=n=0N1x(n)[cos(2πn+kN2πn)jsin(2πn+kN2πn)]=n=0N1x(n)[cos(kN2πn)jsin(kN2πn)]=n=0N1x(n)eikN2πn=X(k)

    X ( N + k ) = X ( k ) X\left( {N + k} \right) = X\left( k \right) X(N+k)=X(k)这说明了离散傅里叶变换是以 N N N为周期的周期函数。

    3.1 MatLAB小实验

    把X(k) | X(N+k) | X(2N+k)全部都画出来了。【代码,将上述MatlLAB的num赋值为3即可】

    在这里插入图片描述
    从图中可以看出离散傅里叶变换是周期性质的,其中每个周期开始的第一个值,是直流分量。用下图用红色方框分别构框住了三个周期。

    在这里插入图片描述

    4、附录:MatLAB代码

    close all;  clear all;  clc;
     
    dt = 0.001;
    N = 2000;
    t = (1:N)*dt;
    x = 1000  + 500 * sin(2 * pi * 50 * t + pi/6) + 250 * sin(2 * pi * 150 * t + pi/4) + 100 * sin(2 * pi * 250 * t+pi/3);
    % x = 1000 +500* cos(2 * pi * 50 * t + pi/6) + 250 * cos(2 * pi * 150 * t + pi/4) + 100 * cos(2 * pi * 250 * t+pi/3);
    figure(1);plot(t,x,'r','LineWidth',1.5);grid on; hold on; title('生成的离散信号');
    xlabel('时间 T / s');
     
    num = 1;
    % num = 3;
    % DFT
    X = zeros(1,num*N+1);
    for k=1:num*N
        for n = 1:N
            X(k) =  X(k) + x(n)*exp((-(k-1)*2*pi*n/N)*1i);
        end
    end
    figure(2);plot((0:num*N)/(N*dt),abs(X)/N,'b','LineWidth',1.5);grid on; hold on; title('离散傅里叶变换-幅值'); xlabel('频率f / Hz');
    
    axis([-100,num*1000+100,-500,1500]);
     
     
    P = angle(X)*180/pi;
    P1 = zeros(1,N+1);
    P1(0+1)=P(0+1);
    P1(100+1)=P(100+1);
    P1(300+1)=P(300+1);
    P1(500+1)=P(500+1);
     
    P1(N+1-0)=P(N+1-0);
    P1(N+1-100)=P(N+1-100);
    P1(N+1-300)=P(N+1-300);
    P1(N+1-500)=P(N+1-500);
     
    figure(3);plot((0:N)/(N*dt),P1,'b','LineWidth',1.5);grid on; hold on; title('离散傅里叶变换-相位(仅提取了关注的位置)');
    xlabel('频率f / Hz');
    axis([-100,1100,-180,180]);
     
    %IDFT
    y = zeros(1,N);
    for n=1:N
        for k = 1:N
            y(n) =  y(n) + (1/N)*X(k)*exp(((k-1)*2*pi*n/N)*1i);
        end
    end
    figure(4);plot(t,y,'k','LineWidth',1.5);grid on; hold on; title('离散傅里叶逆变换');
    xlabel('时间 T / s');
     
    figure(5);plot(t,x-y,'g','LineWidth',1.5);grid on; hold on; title('误差');
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52

    系列学习链接:欢迎大家点赞、收藏、留言讨论。

    傅里叶级数与傅里叶变换_Part0_欧拉公式证明+三角函数和差公式证明

    傅里叶级数与傅里叶变换_Part1_三角函数系的正交性

    傅里叶级数与傅里叶变换_Part2_周期为2Π的函数展开为傅里叶级数

    傅里叶级数与傅里叶变换_Part3_周期为2L的函数展开为傅里叶级数

    傅里叶级数与傅里叶变换_Part4_傅里叶级数的复数形式

    傅里叶级数与傅里叶变换_Part5_傅里叶级数推导傅里叶变换

    傅里叶级数与傅里叶变换_Part6_离散傅里叶变换推导

    傅里叶级数与傅里叶变换_Part7_离散傅里叶变换的性质

  • 相关阅读:
    java毕业设计宠物商城网站系统Mybatis+系统+数据库+调试部署
    主席树(可持久化权值线段树)的相关知识
    (UE4升级UE5)Selected Level Actor节点升级到UE5
    Linux 基础命令&进阶
    Windows内存管理总结
    【集训DAY N】函数【数学】
    淘宝API详情接口调用示例
    ERP系统开发需要多少钱?
    自然语言处理技术之词向量:GloVe单词表示的全局向量(glove.840B.300d、glove.6B)
    【Linux进阶之路】Socket —— “UDP“ && “TCP“
  • 原文地址:https://blog.csdn.net/heqiunong/article/details/125889046