谱分析——离散傅里叶级数

离散傅里叶级数

[!] 以下笔记内容可能会出现部分错误的地方,恳请各位师生批评指正,谢谢!

部分内容摘录自Wiki


离散傅里叶级数

  • 在实际中,我们往往不能直接得到关于 f ( t ) f(t) f(t)的表达式,或者我们在得到了 f ( t ) f(t) f(t)的表达式后,也无法将连续的值输入到计算机中进行分析。但我们可以采集到不同时刻的函数值 { f ( t 0 ) , f ( t 1 ) , ⋯   , f ( t N − 1 ) } \{f(t_0),f(t_1),\cdots,f(t_{N-1})\} { f(t0),f(t1),,f(tN1)}
  • 我们可以根据这些离散的函数值来得到它的频谱特性,这种方法就是离散傅里叶级数(与后面会介绍到的离散傅里叶变换)。

1 推导

  • 由上文可知,离散傅里叶级数通过由函数中得到的离散值进行分析,对于连续傅里叶级数,有 f ( t ) = ∑ n = − ∞ + ∞ c n e i n ω 0 t (1-1) f(t)=\sum^{+\infin}_{n=-\infin}c_ne^{in\omega_0t}\tag{1-1} f(t)=n=+cneinω0t(1-1)
  • 由函数和子数列关系易得,若存在一个子数列 { f ( t 0 ) , f ( t 1 ) , ⋯   , f ( t N − 1 ) } \{f(t_0),f(t_1),\cdots,f(t_{N-1})\} { f(t0),f(t1),,f(tN1)}同样满足公式(1-1),即 f ( t k ) = ∑ n = − ∞ + ∞ c n e i n ω 0 t k (1-2) f(t_k)=\sum^{+\infin}_{n=-\infin}c_ne^{in\omega_0t_k}\tag{1-2} f(tk)=n=+cneinω0tk(1-2)数列的取法是任意的。
  • 对于满足狄利克雷条件周期函数 f ( t ) f(t) f(t),我们按照等间隔的时刻在一个周期内采样N个点(假设N足够多),则有:
    { f ( t k + T ) = f ( t ) t 0 = 0 t k = t o + k τ = k τ , k = 0 , 1 , ⋯   , N − 1 \begin{cases} f(t_k+T)=f(t)\\ t_0=0\\ t_k=t_o+k\tau=k\tau,k=0,1,\cdots,N-1 \end{cases} f(tk+T)=f(t)t0=0tk=to+kτ=kτ,k=0,1,,N1其中 T T T为周期, τ \tau τ为采样周期。据此能够得出基频 ω 0 = 2 π T = 2 π N τ \omega_0=\frac{2\pi}{T}=\frac{2\pi}{N\tau} ω0=T2π=Nτ2π
  • 将上述条件代入到(1-2),即有 f ( k τ ) = ∑ n = − ∞ + ∞ c n e i n ω 0 k τ f(k\tau)=\sum^{+\infin}_{n=-\infin}c_ne^{in\omega_0k\tau} f(kτ)=n=+cneinω0kτ根据 f ( t k + T ) = f ( t ) f(t_k+T)=f(t) f(tk+T)=f(t),能够将该级数拆分成无穷个周期之和,即 f ( k τ ) = ⋯ + ∑ n = 0 N − 1 c n − N e i ( n − N ) ω 0 k τ + ∑ n = 0 N − 1 c n e i n ω 0 k τ + ∑ n = 0 N − 1 c n + N e i ( n + N ) ω 0 k τ + ⋯ f(k\tau)=\cdots+\sum^{N-1}_{n=0}c_{n-N}e^{i(n-N)\omega_0k\tau}+\sum^{N-1}_{n=0}c_{n}e^{in\omega_0k\tau}+\sum^{N-1}_{n=0}c_{n+N}e^{i(n+N)\omega_0k\tau}+\cdots f(kτ)=+n=0N1cnNei(nN)ω0kτ+n=0N1cneinω0kτ+n=0N1cn+Nei(n+N)ω0kτ+ = ⋯ + e − i N ω 0 k τ ∑ n = 0 N − 1 c n − N e i n ω 0 k τ + ∑ n = 0 N − 1 c n e i n ω 0 k τ + e i N ω 0 k τ ∑ n = 0 N − 1 c n + N e i n ω 0 k τ + ⋯ (1-3) =\cdots+e^{-iN\omega_0k\tau}\sum^{N-1}_{n=0}c_{n-N}e^{in\omega_0k\tau}+\sum^{N-1}_{n=0}c_{n}e^{in\omega_0k\tau}+e^{iN\omega_0k\tau}\sum^{N-1}_{n=0}c_{n+N}e^{in\omega_0k\tau}+\cdots\tag{1-3} =+eiNω0kτn=0N1cnNeinω0kτ+n=0N1cneinω0kτ+eiNω0kτn=0N1cn+Neinω0kτ+(1-3)
  • 因为 e i a N ω 0 k τ = e i a N 2 π N τ k τ = e i a 2 π k = 1 , a ∈ Z e^{iaN\omega_0k\tau}=e^{iaN\frac{2\pi}{N\tau}k\tau}=e^{ia2\pi k}=1,a\in Z eiaNω0kτ=eiaNNτ2πkτ=eia2πk=1,aZ代入到(1-3),有 f ( k τ ) = ∑ n = 0 N − 1 ( ⋯ + c n − N + c n + c n + N + ⋯   ) e i n ω 0 k τ f(k\tau)=\sum^{N-1}_{n=0}(\cdots+c_{n-N}+c_n+c_{n+N}+\cdots)e^{in\omega_0k\tau} f(kτ)=n=0N1(+cnN+cn+cn+N+)einω0kτ = ∑ n = 0 N − 1 c n ˉ e i n ω 0 k τ (1-4) =\sum^{N-1}_{n=0}\bar{c_n}e^{in\omega_0k\tau}\tag{1-4} =n=0N1cnˉeinω0kτ(1-4)其中 c n ˉ = ⋯ + c n − N + c n + c n + N + ⋯ \bar{c_n}=\cdots+c_n-N+c_n+c_{n+N}+\cdots cnˉ=+cnN+cn+cn+N+(1-4)即为离散傅里叶级数的公式。

2 系数求解

  • 得到一般形式后,我们需要确定 c n ˉ \bar{c_n} cnˉ
  • 对于连续傅里叶级数的系数 c n c_n cn,有 c n = 1 T ∫ 0 T f ( t ) e − i n ω 0 t d t (2-1) c_n=\frac{1}{T}\int^{T}_0f(t)e^{-in\omega_0t}dt\tag{2-1} cn=T10Tf(t)einω0tdt(2-1)很自然的想到, c n ˉ \bar{c_n} cnˉ也有与该公式相同的形式。
  • 在这里使用一种比较简单且不那么严谨的方法。1对于定积分的定义,可以理解为在一个区间内取无穷多个离散的函数值进行的累加和,从中任意若干个等间隔的离散点也依旧成立。
  • 因此对于等间隔 { f ( t 0 ) , f ( t 1 ) , ⋯   , f ( t N − 1 ) } \{f(t_0),f(t_1),\cdots,f(t_{N-1})\} { f(t0),f(t1),,f(tN1)},有 c n ′ = 1 N ∑ n = 0 N − 1 f ( k τ ) e − i n ω 0 k τ (2-2) c_n'=\frac{1}{N}\sum^{N-1}_{n=0}f(k\tau)e^{-in\omega_0k\tau}\tag{2-2} cn=N1n=0N1f(kτ)einω0kτ(2-2)经数学计算验证后,能够得到 c n ˉ = c n ′ = 1 N ∑ n = 0 N − 1 f ( k τ ) e − i n ω 0 k τ \bar{c_n}=c_n'=\frac{1}{N}\sum^{N-1}_{n=0}f(k\tau)e^{-in\omega_0k\tau} cnˉ=cn=N1n=0N1f(kτ)einω0kτ

3 采样条件

  • 在上述推导过程中,我们假设的采样点为足够大的有限整数 N N N,而在实际工程中,为了不失真地恢复信号,采样频率应该大于模拟信号频谱中最高频率的2倍,即 f s > 2 f m a x f_s>2f_{max} fs>2fmax其中 f s = 1 τ f_s=\frac{1}{\tau} fs=τ1称为采样频率,这个条件称为香农采样定理
  • 若不满足上述条件,则会使得重建的信号出现混叠现象。此时重建的时域周期延拓信号将会出现相互交叠的现象。

离散傅里叶级数与连续傅里叶级数的异同

  • 与连续傅里叶级数最大的不同,就是在于离散傅里叶级数的系数是周期的:
  • 连续傅里叶级数的形式为 f ( t ) = ∑ n = − ∞ + ∞ c n e i n ω 0 t f(t)=\sum^{+\infin}_{n=-\infin}c_ne^{in\omega_0t} f(t)=n=+cneinω0t
  • 离散傅里叶级数的形式为 f ( k τ ) = ∑ n = 0 N − 1 c n ˉ e i n ω 0 k τ f(k\tau)=\sum^{N-1}_{n=0}\bar{c_n}e^{in\omega_0k\tau} f(kτ)=n=0N1cnˉeinω0kτ
  • 这意味着离散傅里叶级数的精度是有限的,而连续傅里叶级数可以达到任意精度。(我们也可以通过增加采样点来提高精度,这和我们的生活经验相符)

  1. 最多让你在需要用的时候能够快速推导出来,真正严格的推导过程需要很复杂的数学计算。 ↩︎

猜你喜欢

转载自blog.csdn.net/NikkiElwin/article/details/106930796
今日推荐