离散复指数信号的重复性

由于ej(w0+2π)n=ej2πnejw0n=ejw0ne^{j(w_0+2\pi)n}=e^{j2\pi n}e^{jw_0n}=e^{jw_0n},所以具有频率w0w_0w0±2π,w0±4π,...w0±2kπw_0\pm2\pi, w_0\pm4\pi,...w_0\pm2k\pi的复指数信号完全一致

离散复指数信号的周期性

由于离散信号仅在整数点有值,要使ejw0ne^{jw_0n}为周期信号,周期NN必须为波形周期的整数倍,即N=m2πw0,m=1,2,...N=m\frac{2\pi}{w_0}, m=1,2,...,此时的基波频率w=w0mw0=mN2πw = \frac{w_0}{m},w_0=\frac mN 2\pi

离散复指数信号的谐波

考虑一组成谐波关系的周期离散信号,其公共周期为NN,基波频率为2πN\frac{2\pi}{N}
ϕk[n]=ejk2πNn,k=0,±1,...\phi_k[n] = e^{jk\frac{2\pi}{N}n}, k=0, \pm1, ...
考虑离散复指数信号的重复性,
ϕk+N[n]=ej(k+N)2πNn=ejk2πNnej2πn=ejk2πNn=ϕk[n]\phi_{k+N}[n] = e^{j(k+N)\frac{2\pi}{N}n}=e^{jk\frac{2\pi}{N}n}e^{j2\pi n}=e^{jk\frac{2\pi}{N}n}=\phi_k[n]

离散周期信号傅里叶级数

考虑一个周期为NN的离散周期信号,用谐波的线性组合来表示
x[n]=k=<N>akejk2πNnx[n] = \sum_{k=<N>} a_ke^{jk\frac{2\pi}{N}n}
两边各乘ejr2πNne^{-jr\frac{2\pi}{N}n},在周期内求和得到:
n=<N>x[n]ejr2πNn=n=<N>k=<N>akejk2πNnejr2πNn=k=<N>akn=<N>ej(kr)2πNn\sum_{n=<N>}x[n]e^{-jr\frac{2\pi}{N}n} = \sum_{n=<N>}\sum_{k=<N>}a_ke^{jk\frac{2\pi}{N}n}e^{-jr\frac{2\pi}{N}n} = \sum_{k=<N>}a_k\sum_{n=<N>}e^{j(k-r)\frac{2\pi}{N}n}
由于ej(kr)2πNn={Nr=k,k±N,k±2N,...0othere^{j(k-r)\frac{2\pi}{N}n}=\left\{ \begin{aligned} N && r = k, k\pm N, k\pm 2N,...\\ 0 && other\\ \end{aligned} \right.
ak=ak±N=...=1Nn=<N>x[n]ejk2πNna_k = a_{k\pm N} = ... = \frac 1N \sum_{n=<N>}x[n]e^{-jk\frac{2\pi}{N}n}

x[n]=k=<N>akejk2πNnak=ak±mN=1Nn=<N>x[n]ejk2πNn{\boxed{x[n] = \sum_{k=<N>} a_ke^{jk\frac{2\pi}{N}n} \qquad a_k = a_{k\pm mN} = \frac 1N \sum_{n=<N>}x[n]e^{-jk\frac{2\pi}{N}n}}}

numpy.fft

可以使用numpy.fft求傅里叶级数,但是要注意求和周期是从0开始,并且没有1N\frac 1N系数。在求傅里叶级数时,仅需要输入一个周期的信号。
ak=n=0N1x[n]ejk2πNn,k=0,1,...,n1a_k = \sum_{n=0}^{N-1}x[n]e^{-jk\frac{2\pi }{N}n}, k = 0, 1, ..., n-1

  • 例1:求信号x[n]=cos(w0n)x[n]=cos(w_0n)的傅里叶级数
    仅当2πw0=Nm\frac{2\pi}{w_0}=\frac Nm为一有理数时,信号才是周期信号。
    x[n]=12(ej2πmNn+ej2πmNn)x[n] = \frac 12 (e^{j\frac{2\pi m}{N}n} + e^{-j\frac{2\pi m}{N}n}),所以am=am=12a_m = a_{-m} = \frac 12
    使用numpy.fft求解:
    离散时间周期信号傅里叶级数
  • 例2:求周期为N的方波信号的傅里叶级数
    在一个周期内,N1nN1-N1 \leq n \leq N1内,x[n]=1x[n]=1
    求得一个周期内的系数:
    a0=2N1+1Na_0 = \frac{2N1+1}{N}
    ak=1Nsin[2πk(N1+12)/N]sin(πk/N)a_k = \frac 1N \frac{sin[2\pi k(N1+\frac 12)/N]}{sin(\pi k/N)}
    离散时间周期信号傅里叶级数
    使用numpy.fft求解:
    若定义0n<2N1+10\leq n < 2N1 + 1时,x[n]=1x[n]=1,此时相当于上面输入右移了3,可以使用傅里叶级数的时移性质来还原:
    x[nn0]=>akejk2πNn0x[n - n_0] => a_ke^{-jk\frac{2\pi}{N}n_0}
    离散时间周期信号傅里叶级数

相关文章:

  • 2022-12-23
  • 2021-09-19
  • 2021-11-20
  • 2021-07-09
  • 2021-10-02
  • 2022-01-01
猜你喜欢
  • 2021-05-07
  • 2021-10-07
  • 2021-05-22
  • 2021-05-21
  • 2021-05-20
  • 2022-12-23
  • 2021-09-01
相关资源
相似解决方案