3 周期信号的傅立叶变换

1,919 阅读6分钟

上一章发现把一个信号表示为单位冲激的线性组合,在LTI系统的分析中会很有用。但是单位冲激有个小问题,就是系统对单位冲击的响应的形式是不确定的,有没有可能类似线性代数找特征向量那样,找到一组基信号,使得系统响应之后还是基信号的形式,只是系数变了呢?答案是有,那就是利用谐波作为基,不过谐波是在周期信号的语境下才有的,所以本章考虑周期信号的复指数信号基表示。

连续情况

LTI对复指数的响应还是复指数,所以可作为基信号

这个很简单,比如一个复指数信号x(t)=Aeiωtx(t)=Ae^{i\omega t},那么设LTI对单位冲激的响应为h(t)h(t),那么LTI的输出可以表示为y(t)=x(tτ)h(τ)dτ=Aeiωteiωτh(τ)dτ=Aeiωteiωτh(τ)dτ=H(ω)Aeiωty(t)=\int_{-\infty}^\infty x(t-\tau)h(\tau)d\tau=\int_{-\infty}^\infty Ae^{i\omega t}e^{-i\omega\tau} h(\tau)d\tau =Ae^{i\omega t} \int_{-\infty}^\infty e^{-i\omega\tau}h(\tau)d\tau=H(\omega)Ae^{i\omega t},说明周期复指数信号在LTI的输出还是周期复指数信号,只是系数变了。

离散情况完全一样y[n]=k=Aznkδ[k]=Aznk=zkδ[k]=H(α)Azny[n] = \sum_{k=-\infty}^\infty A z^{n-k}\delta[k]=Az^n\sum_{k=\infty}^\infty z^{-k}\delta[k]=H(\alpha)Az^{n}

remark: 这里假设了积分和求和是收敛的。

上面的结果启发我们,如果能够把一个信号表示为一系列复指数信号的和,那么经过LTI可以分别求出对每一个复指数信号的响应(很容易依据LTI对单位脉冲的响应计算出对复指数信号基的响应),然后求和。接下来的问题在于,如何把一个周期信号表示成一组复指数信号。

如何用复指数表示一个信号

对于形式比较简单的信号,也许可以利用欧拉关系变成eiωte^{i\omega t}的形式,那相当于直接表示了。对于更一般情况,如果信号的基波频率和基波周期是ω,T\omega, T,那么傅里叶级数的表示是使用这个基波的谐波求和来表示这个信号,即

x(t)=k=akejω0ktx(t) = \sum_{k=-\infty}^{\infty} a_k e^{j\omega_0kt}

能不能写成这个形式是下一章讨论的内容,假设能写成这个形式,那么系数如何确定呢?这里的思路如下: 两侧同乘ejω0nte^{-j\omega_0 nt},在基波周期内积分。

Tejω0ntx(t)dt=Tejω0ntk=akejω0ktdt=akk=Tejω0(kn)tdt=akk=Tcos(ω0(kn)t)+jsin(ω0(kn)t)dt\int_{T} e^{-j\omega_0 nt} x(t) dt = \int_{T} e^{-j\omega_0 nt} \sum_{k=-\infty}^{\infty} a_k e^{j\omega_0kt} dt \\ =a_k \sum_{k=-\infty}^{\infty} \int_{T}e^{j\omega_0(k-n)t}dt \\ = a_k \sum_{k=-\infty}^{\infty} \int_{T}\cos(\omega_0 (k-n)t) + j\sin(\omega_0(k-n)t) dt

当k = n时,等号右边的积分是TT,不等于n的时候,频率是基波频率的整倍数,而三角函数一个周期的积分是0,所以整倍数积分也是0,因此系数求解的重要公式就得到了。

an=1TTejω0ntx(t)dta_n = \frac{1}{T}\int_T e^{-j\omega_0 nt} x(t) dt

这个公式配合前面x(t)=k=akejω0ktx(t)=\sum_{k=-\infty}^{\infty} a_k e^{j\omega_0kt}就是傅立叶变换了。

这个表示的可行性

定义误差

首先要定义傅立叶变换和原始信号之间的误差,很自然想到均方误差,因为是周期信号只需要考虑一个周期内部,因此定义: e(N)=Tx(t)k=NNakejω0t2dte(N) = \int_T |x(t) - \sum_{k=-N}^N a_k e^{j\omega_0 t}|^2 dt

这也是能量的定义,其实衡量两个分布我们可能也会想到用KL散度等其他度量,但是这里使用能量是更具有现实意义的,因为物理世界的信号处理系统通常都是根据能量处理。

系数合理的条件

为了保证傅立叶变换的可行性,首先需要保证系数是合理的值,这要求积分Tejω0ntx(t)dt\int_T e^{-j\omega_0 nt} x(t) dt收敛,这个很容易保证。只要Tx(t)2dt\int_T |x(t)|^2 dt收敛即可。

从实用性的角度,这个条件是很容易满足而且很好验证的,只要输入信号在一个周期内能量有限即可。严格的数学证明可以保证,N趋于无穷的时候满足这个条件的信号e(N)e(N)趋于0,说明从能量的角度这个表示是有意义的。(注意并不是说所有的点取值都相等,而是说一个周期内能量相等)

更严格的条件

狄利克雷发现了更严格的条件,满足这个条件的信号,其傅立叶级数保证在连续点上值等于原始信号,而不连续的点值等于两侧极限的平均值。这个条件有三个:1)周期内绝对可积(Tx(t)dt<\int_T |x(t)|dt<\infty),2)周期内最大值和最小值数量有限(不会无限震荡),3)有限区间内的不连续点有限且值有限。

这三个条件现实中的信号也几乎都满足,因此傅立叶变换在多数情况下不仅可以保证能量相等,在连续部分取值也是相等的。这就非常强了。

吉布斯现象:在收敛的过程中,不连续点处会出现高频起伏和超量,峰值大小保持不变。一个例子就是理想低通滤波器,它对于所有ω\omega并不是一致收敛的,并且在ωc\omega_c处震荡起伏。

傅立叶变换的性质

  • 线性:如果x(t)x(t)y(t)y(t)的傅立叶系数分别为ak,bka_k,b_k,周期相同,那么Ax(t)+By(t)Ax(t)+By(t)的系数为Aak+BbkAa_k+Bb_k
  • 时移性质:x(t)x(t)傅立叶系数为aka_k,那么x(tt0)x(t-t_0)的系数为ejω0kt0ake^{-j\omega_0 k t_0}a_k,模不变。往右平移后,原本t时刻的值变成了之前的值,所以相位要往回拨
  • 时间反转:x(t)FS:akx(-t) FS: a_{-k}
  • 频率伸缩:系数不变,但是那一组复信号基变了
  • 相乘:x(t)y(t)FS:hk=l=albklx(t)y(t) FS: h_k = \sum_{l=-\infty}^\infty a_l b_{k-l}
  • 取共轭:x(t)FS:bk=akx^*(t) FS: b_k = a^*_{-k}
  • 奇偶性:实偶信号ak=aka_k=a_{-k}且为实,实奇信号ak=aka_k = -a_{-k}且纯虚
  • 帕斯瓦尔定理:1TTx(t)2dt=ak2\frac{1}{T}\int_T |x(t)|^2 dt = \sum |a_k|^2,这个展开成傅立叶求积分很容易证。他的意义是,信号的总平均功率等于所有谐波分量平均功率的和。从傅立叶系数求解的公式可以看到,这个系数本身就是某个谐波的周期平均功率。
  • 导数:dx(t)dtFS:jω0kak\frac{dx(t)}{dt} FS: j\omega_0k a_k
  • 积分:tx(t)dtFS:1jkω0ak\int_{-\infty}^t x(t)dt FS: \frac{1}{jk\omega_0}a_k 需要满足a0=0a_0=0保证周期性和有限,使傅立叶变换有意义。
  • 周期卷积:Tx(τ)y(tτ)dτFS:ck=Takbk\int_T x(\tau)y(t-\tau)d\tau FS:c_k = Ta_kb_k

利用上述性质求解傅立叶系数

比如先求方波信号,在利用时移变换、求导得到其他方波和三角波周期信号

离散

傅立叶变换

在第一章就发现,离散信号要想有周期,他的频率应该是π\pi的有理数倍,并且他的谐波是有限的,这是因为超过N就会和之前某一个刚好差2π2\pi,因此对于基波周期为N的信号,他的一组谐波为ϕk[n]=ejω0kn=ej(2π/N)kn\phi_k[n] = e^{j\omega_0kn}=e^{j(2\pi/N)kn},这里k取0, ..., N-1。

那么,如果x[n]=k=0N1akϕk[n]x[n] = \sum_{k=0}^{N-1}a_k\phi_k[n],其实可以通过取x[0],...,x[N1]x[0], ..., x[N-1]联立方程组求解。如果延续和连续时间信号一致的思路,那应该考虑对这个等式左右两侧乘ejω0rne^{-j\omega_0rn},再在一个周期内求和。于是

n=0N1x[n]ejω0rn=akn=0N1k=0N1ejω0(kr)n=k=0N1akn=0N1ejω0(kr)n\sum_{n=0}^{N-1} x[n] e^{-j\omega_0rn} = a_k \sum_{n=0}^{N-1} \sum_{k=0}^{N-1} e^{j\omega_0(k-r)n} \\ = \sum_{k=0}^{N-1} a_k \sum_{n=0}^{N-1} e^{j\omega_0(k-r)n}

对右侧,如果r=kr=k,那么很明显右侧就是NakNa_k,而对rkr\ne kn=0N1ejω0(kr)n=0\sum_{n=0}^{N-1} e^{j\omega_0(k-r)n} = 0。 所以可以得到离散傅立叶变换形式

x[n]=k=0N1akϕk[n]ak=1Nn=0N1x[n]ejω0knx[n] = \sum_{k=0}^{N-1} a_k \phi_k[n] \\ a_k = \frac{1}{N} \sum_{n=0}^{N-1}x[n]e^{-j\omega_0kn}

这就很好了,因为aka_k有限,所以不存在误差,只要能求出来肯定就是准的。不需要讨论收敛问题。

性质

多数和连续的一样

  • 线性:如果x[n]x[n]y[n]y[n]的傅立叶系数分别为ak,bka_k,b_k,周期相同,那么Ax[n]+By[n]Ax[n]+By[n]的系数为Aak+BbkAa_k+Bb_k
  • 时移性质:x[n]x[n]傅立叶系数为aka_k,那么x[nn0]x[n-n_0]的系数为ejω0kn0ake^{-j\omega_0 k n_0}a_k,模不变。
  • 频移:x[n]x[n]变为ejMω0nx[n]e^{jM\omega_0 n}x[n], aka_k变为akMa_{k-M}
  • 时间反转:x[n]FS:akx[-n] FS: a_{-k}
  • 频率伸缩:x(m)[n]x_{(m)}[n],相当于x[n/m]x[n/m],如果不整除则取值为0。此时bk=ak/mb_k=a_{k}/m
  • 相乘:x[t]y[t]FS:hk=l=0N1albklx[t]y[t] FS: h_k = \sum_{l=0}^{N-1} a_l b_{k-l}
  • 取共轭:x[n]FS:bk=akx^*[n] FS: b_k = a^*_{-k}
  • 奇偶性:实偶信号ak=aka_k=a_{-k}且为实,实奇信号ak=aka_k = -a_{-k}且纯虚
  • 帕斯瓦尔定理:1Nr=0N1x[r]2=k=0N1ak2\frac{1}{N}\sum_{r=0}^{N-1} |x[r]|^2 = \sum_{k=0}^{N-1} |a_k|^2,注意系数求和只是一个周期内部
  • 一阶差分:x[n]x[n1]FS:(1ejkω0)akx[n] - x[n-1] FS: (1-e^{-jk\omega_0})a_k
  • 求和:r=nx[r]FS:11ejkω0ak\sum_{r=-\infty}^n x[r] FS: \frac{1}{1 - e^{-jk\omega_0}}a_k 需要满足a0=0a_0=0保证周期性和有限,使傅立叶变换有意义。
  • 周期卷积:z[n]=r=0N1x[r]y[nr]FS:ck=Nakbkz[n] = \sum_{r=0}^{N-1} x[r]y[n-r] FS:c_k = Na_kb_k

LTI下的傅立叶级数响应

  • 连续:H(s)=h(τ)esτdτH(s)=\int_{-\infty}^\infty h(\tau)e^{-s\tau}d\tau
  • 离散:H(z)=k=h[k]zkH(z)=\sum_{k=-\infty}^\infty h[k]z^{-k}