离散时间信号的傅里叶变换和离散傅里叶变换摘要本文主要介绍了离散时间信号的离散时间傅里叶变换及离散傅里叶变换,说明其在频域的具体表示和分析,并通过定义的方法和矩阵形式的表示来给出其具体的计算方法。
同时还介绍了与离散时间傅里叶变换(DTFT )和离散傅里叶变换(DFT )相关的线性卷积与圆周卷积,并讲述它们之间的联系,从而给出了用圆周卷积计算线性卷积的方法,即用离散傅里叶变换实现线性卷积。
1. 离散时间傅里叶变换1.1离散时间傅里叶变换及其逆变换离散时间傅里叶变换为离散时间序列x[n]的傅里叶变换,是以复指数序列{n j e ω-}的序列来表示的(可对应于三角函数序列),相当于傅里叶级数的展开,为离散时间信号和线性时不变系统提供了一种频域表示,其中ω是实频率变量。
时间序列x[n]的离散时间傅里叶变换)(ωj e X 定义如下:∑∞-∞=-=nnj j e n x e X ωω][)( (1.1)通常)(ωj e X 是实变量ω的复数函数同时也是周期为π2的周期函数,并且)(ωj e X 的幅度函数和实部是ω的偶函数,而其相位函数和虚部是ω的奇函数。
这是由于:)()()(tan )()()()(sin )()()(cos )()(222ωωωωωωωωωωθωθωθj re j im j im j re j j j im j j re e X e X e X e X e X e X e X e X e X =+=== (1.2)由于式(1.1)中的傅里叶系数x[n]可以用下面给出的傅里叶积分从)(ωj e X 中算出:ωπωππωd e eX n x n j j )(21][⎰-=(1.3)故可以称该式为离散时间傅里叶逆变换(IDTFT ),则式(1.1)和(1.3)构成了序列x[n]的离散时间傅里叶变换对。
上述定义给出了计算DTFT 的方法,对于大多数时间序列其DTFT 可以用收敛的几何级数形式表示,例如序列x[n]=n α,此时其傅里叶变换可以写成简单的封闭形式。
而一个序列x[n]的DTFT 存在的充要条件是其为绝对可和序列,即:∞<∑∞-∞=nn x ][此时对于所有ω值有:∞<≤=∑∑∞-∞=∞-∞=-nnnj j n x e n x e X ][][)(ωω1.2 离散时间傅里叶变换的性质与线性卷积序列x[n]的离散时间傅里叶变换的一般性质包括线性、时移、频移、频域微分、调制及卷积等。
其中卷积性质可表示为如下形式:)()(][][)(][)(][ωωωωj j j j e H e G n h n g e H n h e G n g ↔⊗↔↔一般来说,序列x[n]和h[n]的卷积和可以定义为如下形式:∑∞-∞=-=kk n h k x n y ][][][,或 ∑∞-∞=-=kk h k n x n y ][][][卷积和运算满足交换率、结合率以及分配率,可以对卷积和作如下解释:先将序列h[k]反转得到h[-k],然后将h[-k]平移(如果n>0,右移n 个抽样周期;如果n<0,左移n 个抽样周期)形成序列h[n-k]。
然后形成乘积序列v[k]=x[k]h[n-k],把v[k]的全部样本求和即得到卷积和y[n]的第n 个样本。
上述过程可用下图表示:卷积和运算的示意图离散时间傅里叶变换的卷积性质表明,序列g[n]和h[n]的线性卷积y[n]的离散时间傅里叶变换)(ωj e Y 可以简单地由它们各自的离散时间傅里叶变换)(ωj e G 和)(ωj e H 的积给出。
这就为我们提供了一种计算序列g[n]和h[n]的线性卷积y[n]的重要方法:可先计算g[n]和h[n]的离散时间傅里叶变换)(ωj e G 和)(ωj e H ,然后将)(ωj e G 和)(ωj e H 相乘得到)(ωj e Y ,最后作)(ωj e Y 的离散时间傅里叶逆变换,而逆变换的结果就是y[n]序列。
在一些应用中,特别是序列为无限长序列时,基本离散时间傅里叶变换的方法可能比直接卷积计算起来更加方便,尤其是在快速傅里变换技术的应用以后。
在Matlab 软件中函数fregz 可以用来计算序列的离散时间傅里叶变换在给定离散频率点上的值,其变换序列是以ωj e 的有理函数来描述的,使用形式为:H=fregz(num,den,w),其中返回值H 表示频率响应值,num 和den 为变换序列的有理函数的分母、分子系数向量(按ωj e -升幂排列),w 为0到π之间指定的频率点向量。
为得到准确的图形,需要选择大量的频率点。
2. 离散傅里叶变换2.1 离散傅里叶变换及其计算已知定义在10-≤≤N n 的有限长序列x[n]及其离散时间傅里叶变换)(ωj e X ,通过在ω轴上(πω20≤≤),对)(ωj e X 均匀抽样得到(抽样点为N k k /2πω=,10-≤≤N k ): 10,][|)(][1/2/2-≤≤==∑-=-=N k e n x e X k X N nNkn j N k j ππωω(2.1)式中所得X[k]为频域上的有限长序列,长度为N ,称为时间序列x[n]的离散傅里叶变换(DFT )。
若令 N j N e W /2π-=,则DFT 的定义式可表达为:10,][][1-≤≤=∑-=N k W n x k X N nkn N (2.2)而与此相对,X[k]的离散傅里叶逆变换(IDFT )为:10,][1][1-≤≤=--=∑N n W k X Nn x kn N N k(2.3)对于序列x[n]的离散傅里叶变换的计算,可以直接用上述定义式计算其N 点DFT ,也可利用定义的矩阵形式进行计算。
由于式(2.2)可用矩阵的形式表示为:x D X N= (2.4)其中X是N 个离散傅里叶变换抽样的向量,T N X X X X ]]1[]1[]0[[-= ,而x 是N 个输入抽样的向量,T N x x x x ]]1[]1[]0[[-=,矩阵N D 是大小为N ×N的离散傅里叶变换矩阵,形式如下:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=-⨯-----)1()1()1(21)1(2421211111111N N N N N N N N NN N N N N N NW W W W W W W W W D 通过这种矩阵形式的表示来计算序列x[n]的N 点DFT 将会变得更加直观,并且可通过观察矩阵N D 的规律来达到简化计算的目的。
与DFT 的矩阵计算方法相对应,IDFT 也有类似的矩阵计算:X D x N1-= (2.5)与式(2.4)不同的是矩阵1-N D 为:*-=N N D ND 11,其中*N D 表示矩阵N D 的共轭。
当然,如果借助Matlab 软件来计算DFT 和IDFT 将会变得更简便。
常用的函数是:fft(x)和ifft(X),用来计算时间序列x[n]的DFT 及离散傅里叶抽样序列X[k]的IDFT 。
在上述函数中可指定输出序列的长度,一般缺省时输出长度与输入序列相等,若指定长度小于输入长度时原序列将被截短易出现错误,而大于时,输入序列将用零填充,这在利用圆周卷积计算线性卷积时会用到(需先对待卷积的两个序列补零)。
2.2 离散时间傅里叶变换与离散傅里叶变换的关系一方面,从DFT 的定义即式(2.1)可知,长为N 的时间序列x[n]的N 点离散傅里叶变换X[k]是其离散时间傅里叶变换)(ωj e X 在N 个均匀间隔频率点上的抽样,10,/2-≤≤==N k N k k πωω。
若给定一个长为N 的序列x[n]的N 点离散傅里叶变换X[k],则可通过IDFT 确定x[n],从而计算其DTFT ,即从DFT 通过内插得到DTFT ,具体表示为下式:∑∑∑∑∑-=---=--=-=--=-=⎥⎦⎤⎢⎣⎡==1)/2(110101][1][1][)(N nnN k j N k nj N n N k kn N N nnj j e k X Ne W k X N e n x e X πωωωω(2.6) 另一方面,从时间序列x[n]的离散时间傅里叶变换的N 个等间隔点10,/2-≤≤==N k N k k πωω抽样生成N 个频率样本,可将其看作一个N 点的离散傅里叶变换Y[k],而Y[k]的IDFT 为序列y[n],经推导可得到如下关系:∑∞-∞=-≤≤+=mN n mN n x n y 10,)(][ (2.7)这表明,经x[n]的频域抽样所恢复的序列y[n]是将x[n]平移并无限次叠加对原x[n]上得到的,每次复制移动的距离为N ,最后的叠加结果取10-≤≤N n 区间。
即频域采样造成时域周期延拓,对于非有限长序列周期延拓后混叠,而对于M 点的有限长序列,频域抽样不失真的条件是频域抽样点数N 大于M ,此时有y[n]=x[n],否则用x[n]的样本产生y[n]时会有时域混叠,不能从y[n]恢复。
2.3 离散傅里叶变换的性质与序列的圆周卷积离散傅里叶变换的一些性质与离散时间傅里叶变换的性质相似,如线性、循环时移、循环频移、对偶、N 点循环卷积、调制等。
在这些性质中涉及到循环移位的概念,而在DTFT 性质中是没有的。
序列的循环移位是为了使一个定义在10-≤≤N n 的序列在移位之后仍旧位于10-≤≤N n 范围中,为此引入模运算来定义这样一种平移:][][0Nc n n x n x -= (2.8)相当于将长度为N 的序列以N 个等间隔点放在一个圆柱体的圆周上,按顺时针或逆时针旋转0n 个空间点。
接下来对循环卷积给出定义:对于两个长度为N 的序列g[n]和h[n],其N 点循环卷积为:∑-=-=1][][][N mNC m n h m g n y (2.9)根据离散傅里叶变换的性质,两个长度为N 的序列的循环卷积也可通过计算它们的N 点离散傅里叶变换的积后,运用离散傅里叶逆变换计算得到。
类似前面用矩阵的形式直观地计算序列的离散傅里叶变换及逆变换,式(2.9)所示的循环卷积也可用如下的矩阵形式计算:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡-⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡------=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡-]1[]2[]1[]0[]0[]3[]2[]1[]3[]0[]1[]2[]2[]1[]0[]1[]1[]2[]1[]0[]1[]2[]1[]0[N g g g g h N h N h N h h h h h h N h h h h N h N h h N y y y y C C C C2.4 用离散傅里叶变换实现线性卷积由于两个有限长序列的线性卷积,如长度为N 的序列g[n]和长度为M 的序列h[n],等于长度为N+M-1的两个序列][n g e (g[n]序列后补M-1个零)和][n h e (h[n]序列后补N-1个零)的圆周卷积。