缘奇科普-奇怪的知识又增加了

离散傅立叶变换(离散傅立叶变换)_百科

原创版权 老爸评测作者: 字体大小选择: [ ]

离散傅立叶变换(DFT(离散傅立叶变换))

离散傅立叶变换(离散傅立叶变换)

DFT(离散傅立叶变换)一般指本词条

离散傅立叶变换(Discrete Fourier Transform,DFT)傅立叶分析方法是信号分析的最基本方法,傅立叶变换是傅立叶分析的核心,通过它把信号从时间域变换到频率域,进而研究信号的频谱结构和变化规律。

基本介绍

  • 中文名:离散傅立叶变换
  • 外文名:Discrete Fourier Transform,DFT
  • 时域信号:离散时间傅立叶变换
  • 计算:快速傅立叶变换
  • 套用学科:通信
  • 特点:傅立叶、离散

定义

离散傅立叶变换(DFT),是傅立叶变换在时域和频域上都呈现离散的形式,将时域信号的採样变换为在离散时间傅立叶变换(DTFT)频域的採样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作经过周期延拓成为周期信号再作变换。在实际套用中通常採用快速傅立叶变换以高效计算DFT。

物理意义

(1)物理意义
设x(n)是长度为N的有限长序列,则其傅立叶变换,Z变换与离散傅立叶变换分别用以下三个关係式表示
X(e^jω)= ∑n={0,N-1}x(n) e^j-ωn
X(z)= ∑n={0,N-1}x(n)z^-n
X(k)= ∑n={0,N-1}x(n) e^-j2πkn/N
单位圆上的Z变换就是序列的傅立叶变换
离散傅立叶变换是x(n)的频谱X(ejω)在[0,2π]上的N点等间隔採样,也就是对序列频谱的离散化,这就是DFT的物理意义.

基本性质

1.线性性质
如果X1(n)和X2(N)是两个有限长序列,长度分别为N1和N2,且Y(N)=AX1(N)+BX2(N)
式中A,B为常数,取N=max[N1,N2],则Y(N)地N点DFT为
Y(K)=DFT[Y(N)]=AX1(K)+BX2(K), 0≤K≤N-1;
2.循环移位特性
设X(N)为有限长序列,长度为N,则X(N)地循环移位定义为
Y(N)=X((N+M))下标nR(N)
式中表明将X(N)以N为周期进行周期拓延得到新序列X'(N)=X((N))下标n,再将X'(N)左移M位,最后取主值序列得到循环移位序列Y(N)

隐含的周期性

DFT的一个重要特点就是隐含的周期性,从表面上看,离散傅立叶变换在时域和频域都是非周期的,有限长的序列,但实质上DFT是从DFS引申出来的,它们的本质是一致的,因此DTS的周期性决定DFT具有隐含的周期性。可以从以下三个不同的角度去理解这种隐含的周期性
(1)从序列DFT与序列FT之间的关係考虑X(k)是对频谱X(ejω)在[0,2π]上的N点等间隔採样,当不限定k的取值範围在[0,N-1]时,那幺k的取值就在[0,2π]以外,从而形成了对频谱X(ejω)的等间隔採样。由于X(ejω)是周期的,这种採样就必然形成一个周期序列
(2)从DFT与DFS之间的关係考虑。X(k)= ∑n={0,N-1}x(n) WNexp^nk,当不限定N时,具有周期性
(3)从WN来考虑,当不限定N时,具有周期性

用DFT对模拟信号进行谱分析

在工程实际中经常遇到的模拟信号xn(t),其频谱函式Xn(jΩ)也是连续函式,为了利用DFT对xn(t)进行谱分析,对xn(t)进行时域採样得到x(n)= xn(nT),再对x(n)进行DFT,得到X(k)则是x(n)的傅立叶变换X(ejω)在频率区间[0,2π]上的N点等间隔採样,这里x(n)和X(k)都是有限长序列
然而,傅立叶变换理论证明,时间有限长的信号其频谱是无限宽的,反之,弱信号的频谱有限宽的则其持续时间将为无限长,因此,按採样定理採样时,採样序列应为无限长,这不满足DFT的条件。实际中,对于频谱很宽的信号,为防止时域採样后产生‘频谱混叠’,一般用前置滤波器滤除幅度较小的高频成分,使信号的频宽小于摺叠频率;同样对于持续时间很长的信号,採样点数太多也会导致存储和计算困难,一般也是截取有限点进行计算。上述可以看出,用DFT对模拟信号进行谱分析,只能是近似的,其近似程度取决于信号频宽、採样频率和截取长度
模拟信号xn(t)的傅立叶变换对为
X(jΩ)={-∞,+∞}x(t)*exp^-jΩt dt
x(t)=1/2π{-∞,+∞} X(JΩ)*e^jΩt dt
用DFT方法计算这对变换对的方法如下:
(a)对xn(t)以T为间隔进行採样,即xn(t)|t=nT= xa(nT)= x(n),由于
t→nT,dt→T, {-∞,+∞}→∑n={-∞,+∞}
因此得到
X(jΩ)≈∑n={-∞,+∞}x(nT)*exp^-jΩnT*T
x(nT)≈1/2π{0, Ωs} X(JΩ)*e^jΩnT Dω
(b)将序列x(n)= xn(t)截断成包含有N个抽样点的有限长序列
X(jΩ)≈T∑n={0,N-1}x(nT)*exp^-jΩnT*T
由于时域抽样,抽样频率为fs=1/T,则频域产生以fs为周期的周期延拓,如果频域是带限信号,则有可能不产生频谱混叠,成为连续周期频谱序列,频谱的周期为fs=1/T
(c)为了数值计算,频域上也要抽样,即在频域的一个周期中取N个样点,fs=NF0,每个样点间隔为F0,频域抽样使频域的积分式变成求和式,而在时域就得到原来已经截断的离散时间序列的周期延拓,时间周期为T0=1/F0。因此有
Ω→kΩ0,dΩ→Ω0,{-∞,+∞} dΩ→∑n={-∞,+∞}Ω0
T0=1/F0=N/fs=NT
Ω0=2ΠF0
Ω0T=Ω0/fs=2π/N
X(jkΩ0)≈T∑n={0,N-1}x(nT)*exp^-jkΩ0nT

判断方法

判断系统是否为最小相位系统的简单方法是:如果两个系统的传递函式分子和分母的最高次数都分别是m,n,则频率ω趋于无穷时,两个系统的对数幅频曲线斜率均为-20(n-m)dB/dec但对数相频曲线却不同:最小相位系统趋于-90°(n-m),而非最小相位系统却不这样。

注意事项

(1)时域和频域混叠
根据採样定理,只有当採样频率大于信号最高频率的两倍时,才能避免频域混叠。实际信号的持续时间是有限的,因而从理论上来说,其频谱宽度是无限的,无论多 大的採样频率也不能满足採样定理。但是超过一定範围的高频分量对信号已没有多大的影响,因而在工程上总是对信号先进行低通滤波
另一方面,DFT得到的频率函式也是离散的,其频域抽样间隔为F0,即频率分辨力。为了对全部信号进行採样,必须是抽样点数N满足条件
N=T0/T=fs/F0
从以上两个公式来看,信号最高频率分量fc和频率分辨力F0有矛盾。若要fc增加,则抽样间隔T就要减小,而FS就要增加,若在抽样点数N不变的情况下,必然是F0增加,分辨力下降。唯一有效的方法是增加记录长度内的点数N,在fc和F0给定的条件下,N必须满足
N>2fc/F0
(2)截断效应
在实际中遇到的序列x(n),其长度往往是有限长,甚至是无限长,用DFT对其进行谱分析时,必须将其截断为长度为N的有限长序列
Y(n)=x(n).RN(n)
根据频率卷积定理
Y(e)=1/2Πx(e)*H(e)
|ω|<2π/N叫做主瓣,其余部分叫做旁瓣
(3)频谱泄露
原序列x(n)的频谱是离散谱线,经截断后使每根谱线都带上一个辛格谱,就好像使谱线向两边延申,通常将这种是遇上的截断导致频谱展宽成为泄露,泄露使得频谱变得模糊,解析度降低
(4)谱间干扰
因截断使主谱线两边形成许多旁瓣,引起不同分量间的干扰,成为谱间干扰,这不仅影响频谱解析度,严重时强信号的旁瓣可能湮灭弱信号的主谱线。
截断效应是无法完全消除的,只能根据要求折中选择有关参量。
(5)栅栏效应
N点DFT是在频率区间[0,2π]上对信号的频谱进行N点等间隔採样,得到的是若干个离散点X(k),且它们之限制为基频F0的整数倍,这部好像在栅栏的一边通过缝隙看另一边的景象,只能在离散点的地方看到真实的景象,其余部分频谱成分被遮拦,所以称为栅栏效应。
减小栅栏效应,可以在时域数据末端增加一些零值点,是一个周期内的点数增加
(6)信号长度的选择
在时域内对信号长度的选择会影响DFT运算的正确性。实际的信号往往是随机的,没有确定的周期,因此在实际中,应经可能估计出几个典型的、带有一定周期性的信号区域进行频谱分析,然后在取其平均值,从而得到合理的结果。

基本性质

1.线性性质
如果X1(n)和X2(N)是两个有限长序列,长度分别为N1和N2,且Y(N)=AX1(N)+BX2(N)
式中A,B为常数,取N=max[N1,N2],则Y(N)地N点DFT为
Y(K)=DFT[Y(N)]=AX1(K)+BX2(K), 0≤K≤N-1;
2.循环移位特性
设X(N)为有限长序列,长度为N,则X(N)地循环移位定义为
Y(N)=X((N+M))下标nR(N)
式中表明将X(N)以N为周期进行周期拓延得到新序列X'(N)=X((N))下标n,再将X'(N)左移M位,最后取主值序列得到循环移位序列Y(N)

计算机代码

1.C语言实现代码
int DFT(int dir,int m,double *x1,double *y1){    long i,k;    double arg;    double cosarg,sinarg;    double *x2=NULL,*y2=NULL;    x2=malloc(m*sizeof(double));    y2=malloc(m*sizeof(double));    if(x2==NULL||y2==NULL)return(FALSE);    for(i=0;i<m;i++)    {        x2[i]=0;        y2[i]=0;        arg=-dir*2.0*3.141592654*(double)i/(double)m;        for(k=0;k<m;k++)        {            cosarg=cos(k*arg);            sinarg=sin(k*arg);            x2[i]+=(x1[k]*cosarg-y1[k]*sinarg);            y2[i]+=(x1[k]*sinarg+y1[k]*cosarg);        }    }/*Copythedataback*/    if(dir==1)    {        for(i=0;i<m;i++)        {            x1[i]=x2[i]/(double)m;            y1[i]=y2[i]/(double)m;        }    }    else    {        for(i=0;i<m;i++)        {            x1[i]=x2[i];            y1[i]=y2[i];        }    }    free(x2);    free(y2);    return(TRUE);}

发表评论 (已有 条评论)

  

评论列表

    快来评论,快来抢沙发吧~