精华内容
下载资源
问答
  • 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是,傅里叶分析的公式看起来太复杂了,所以很多大一新生上来就懵圈并从此对它深恶痛绝。老实说,这么有意思的东西居然成...
  • 斯坦福大学关于傅里叶变换的讲课的讲义,是傅里叶变换的权威讲稿,高质量的清晰版。
  • MATLAB 离散傅里叶变换及应用 一 DFT 与 IDFT DFS DTFT 的联系 1 序列的傅里叶变换 (DFT) 和逆变换 (IDFT) 在实际中常常使用有限长序列 如果有限长序列信号为 x(n) 则该序列的离散傅里叶变换对可以表示为 N 1 nk X(k...
  • 傅里叶变换.pdf傅里叶变换.pdf傅里叶变换.pdf傅里叶变换.pdf
  • 讲解非常好,基本每一步都在进行数学推导。同时给出热力学,光学,成像的具体应用实例。
  • 斯坦福大学教材,傅里叶变换及其应用。更好的理解傅里叶变换
  • 傅里叶变换及其应用自学
  • 傅立叶变换,表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅立叶变换具有多种不同的变体形式,如连续傅立叶变换和离散傅立叶变换。最初傅立叶...
  • 分数阶傅里叶变换及其应用 文献

    热门讨论 2011-09-26 15:48:13
    本文介绍了一种崭新的信号分析工具—分数阶...介绍了分数阶傅里叶变换的几种不同的引人途径和其基本性质之后, 在时一频平面对分数阶傅里叶变换进行了研究, 用经典的傅里叶变换变换的观点对分数阶傅里叶变换进行了解释。
  • 短时傅里叶变换的FPGA实现及其应用.pdf
  • 傅里叶变换及其应用》-[美]罗纳德N.布拉斯维尔 中文版 很难找的资料
  • GPU平台二维快速傅里叶变换算法实现及应用.pdf
  • 快速傅里叶变换FFT及其应用 pdf论文
  • Fourier transform as a limiting case of fourier series.it Fourier series,a kind of periodic phenomena Fourier series techniques is identified with the analysis of non periodic phenomena. ...

    Fourier transform as a limiting case of fourier series.it

    Fourier series,a kind of periodic phenomena

    Fourier series techniques is identified with the analysis of non periodic phenomena.

    Analysis:[Function(signal)]:break up a signal into simple constituent parts.

    Synthesis(合成):reassembling a signal or reassembling a function from its constituent parts.

    Linear operations:integrals and series

    Periodic phenomena often are either periodicity in time,a pattern repeats in time over and over again,as harmonic motion,or periodicity in space some object in space,one dimension,two dimensions.periodicity  arises from the symmetry,

     

    E.g,Heat on a circular ring:temperature on the ring,it’s periodic in the space.

     

    Symmetry

     

    The theory of groups

    Periodicity in time :frequency,the number of repetitions

    Periodicity in space:period

     

    In th case of wave motion,there is a relationship between the frequency and the wavelength determined by the velocity,that can be two different phenomenon.periodicity in time and periodicity in space may not have anything to do with each other,but if you have a wave traveling,if you have a regularly repeating pattern over time,then they di have something to do with each other.

     

    展开全文
  • 工大出版社小波 小波变换与分数傅里叶变换理论与应用(清样).pdf 电子版教材【非常完整】
  • 针对基于感兴趣区域的有损视频压缩在低码率编码条件下容易产生明显的编码人工痕迹,提出一种基于注意力权重矩阵的四元傅里叶变换的视觉显著性视频编码模型。该方法引入人眼视觉注意力权重矩阵对不同区域图像四元数...
  • 实验二 傅里叶分析及应用 一实验目的 一掌握使用 Matlab 进行周期信号傅里叶级数展开和频谱分析 1学会使用 Matlab 分析傅里叶级数展开深入理解傅里叶级数的物理含义 2学会使用 Matlab 分析周期信号的频谱特性 二掌握...
  • 本文档中包含了常用的傅里叶变换公式,在学习时可供查阅
  • 提出一种基于傅里叶变换的指纹图像增强方法,通过对图像分块进行傅里叶变换,用求期望值的方法获取指纹图像的频率、方向以及能量分布,在此基础上根据指纹纹线的分布在脊线方向变化剧烈的特殊性,采用在径向滤波器...
  • 滚动轴承是旋转机械中应用最广泛的机械零件,也是最易损坏的元件之一,旋转机械的许多故障都与滚动轴承有关。滚动轴承的常见故障有: 破碎、裂纹、压痕、磨损、点蚀、摩擦伤痕、锈蚀、保持架损坏等。据统计,在旋转...

    滚动轴承是旋转机械中应用最广泛的机械零件,也是最易损坏的元件之一,旋转机械的许多故障都与滚动轴承有关。滚动轴承的常见故障有: 破碎、裂纹、压痕、磨损、点蚀、摩擦伤痕、锈蚀、保持架损坏等。据统计,在旋转机械的故障中,有3 0% 是由滚动轴承引起的,因此,对滚动轴承进行适时监测与故障诊断,就显得非常重要。滚动轴承在工作时,一般是外圈与轴承座或机壳相联接,固定或相对固定,内圈与机械的传动轴相连接,随轴一起转动。在机械运转时,由于轴承本身的结构特点,加工装配误差及运行过程中出现的故障等内部因素,以及传动轴上其它零件的运动和力的作用等外部因素,当轴以一定的速度并在一定载荷下运转时对轴承和轴承座或外壳组成的振动系统产生激励,使该系统振动,人们可以通过传感器检测振动信号并记录下来。在轴承外圈上安装振动传感器,并将传感器输出信号进行放大和模数转换处理,就能获得离散的轴承振动信号。

    利用已经学过的信号分析方法对给出的轴承振动信号数据进行分析。

    常用的信号分析方法有:时域分析、幅值分析和频域分析。

    结合一个轴承振动信号数据,首先通过信号的时域和幅值分析来判断轴承的好坏,然后再进一步通过信号的频谱分析来判断轴承出现的故障原因。

    一、轴承信号的预处理

    假设给出的轴承振动信号是在轴承平稳运转条件下记录下来的,因此,可以将此信号看成是具有各态历经特性的平稳随机信号,这样,我们可以利用一次测量获得的信号数据通过时间平均来代替统计平均对信号进行分析和计算。

    在信号分析之前,我们需要对信号数据进行预处理。

    9afe5308cd9a3d254a138a8e54401070.png

    0709316cddc8409777c78629f36d5c4e.png

    1d6bc0cc7e67da5b938f93b3e5b4dabf.png

    这里给大家留一个问题:为什么要对数据进行去均值处理?

    预处理源程序

    #include <stdio.h>

    #include <stdlib.h>

    #include <math.h>

    #define N 2048

    #define pi 3.1415926

    void main(void)

    {

    FILE *fp;

    float x[N],y[N],Xmax, c,t,Xp,a;

    float jf=0.0, m=0.0, Xq=0.0;

    int i,j,n;

    if((fp=fopen("c:6310.dat","r"))==NULL) /*打开C盘根目录下的数据文件*/

    {

    printf("can't open the file.n");

    exit(1);

    }

    if(!feof(fp))

    {

    for(n=0;n<=N-1;n++) /*读取 个数据*/

    fscanf(fp,"%f",&x[n]);

    }

    fclose(fp); /*关闭数据文件*/

    }

    for(n=0;n<N;n++)

    {

    m=m+x[n]; /*求均值*/

    }

    m/=N;

    for(n=0;n<N;n++)

    x[n]-=m; /*去均值处理*/

    Xmax=fabs(x[0]);

    for(i=1;i<N;i++)

    if(fabs(x[i])>Xmax)

    {

    Xmax=fabs(x[i]); /*数据绝对值的最大值*/

    }

    for(n=0;n<N;n++)

    x[n]/=Xmax; /*归一化*/

    }

    程序很简单,都是单循环的程序。

    6310.dat数据文件见《信号与系统分析和应用》书上。

    二、轴承信号的时域和幅值分析

    1.时域分析

    时域分析主要可以观察时间历程信号,通过时间历程信号可以清楚地识别信号的性质,即信号的瞬态性、随机性以及周期性等。如图所示是信号取1024点的信号波形(归一化)。可以看到,这个信号具有很强的脉动性。

    2986bbb2673a7ece5275e0fe9a28e56c.png
    图1 轴承振动信号

    2.幅值分析-参数计算

    幅值分析包括信号的峰值大小、均方根值、峰值因子、峭度等。由于经过抽样得到的是离散数据,对有限长的离散数据(信号)进行计算所得到的结果实际是估计值。估计值与实际值之间的偏差问题这里不做讨论。

    f2250033285cad7c30c29dd17262ecab.png

    峰值因子(二阶矩的量)是峰值与均方根值的比值。

    峰值因子是噪声或振动信号的脉动性的度量,当涉及冲击、脉冲噪声和短暂过程时经常用到它。正弦波的峰值因子是1.414,而真正的随机信号的峰值因子一般都小于3。峰值因子常用来发现由损伤的轴承所产生的脉动振动。根据经验,良好轴承具有振动峰值因子大约2.5到3.5。在轴承彻底失效之前,有时可以记录到高达7左右的峰值因子。峰值因子只是在信号有明显的脉动性时才可靠(此时,轴承可能出现点蚀等轻度损伤)。一般来说,高于3.5的峰值因子即预示着轴承的损伤。

    峭度(峰态系数---四阶矩的量):

    峭度对于发现信号中的脉动是很有用的。它广泛的应用于检测滚动轴承的离散性、冲击性故障。好的轴承一般具有3左右的峭度值,而带有冲击性缺陷的轴承的峭度值一般要高些(通常大于4)。峭度在使用时受到一定限制,因为当轴承的损伤发展成为分布性的,此时尽管信号振幅比较大,但是信号的脉动成分则减弱,峭度值也随之下降。

    492453ff26d2153713e0a7559fc98e6e.png
    图2 疲劳试验机上轴承振动信号的峭度曲线

    峭度也只是在信号有明显的脉动性时才可靠。

    一般来说,峭度的变化紧跟峰值因子的变化,唯一的差别是数字量值的变化,即峭度提供更宽的“动态范围”。

    通常,高于4的峭度值即预示着损伤。和峰值因子一样,轴承振动信号的峭度不受速度和载荷变化的影响。

    因为峭度是以检测脉动性为依据的,所以它也受到与峰值因子同样的局限。

    计算峰值因子与峭度的源程序如下:

    for(n=0;n<N;n++)

    jf+=x[n]*x[n];

    jf/=N;

    jf=sqrt(jf);

    for(n=0;n<N;n++)

    Xq+=x[n]*x[n]*x[n]*x[n];

    Xq=Xq/(N*jf*jf*jf*jf);

    a=fabs(x[0]);

    for(i=0;i<N-1;i++)

    if(fabs(x[i])>a)

    a=fabs(x[i]);

    Xp=a;

    c=Xp/jf;

    printf("最大值=%ft峰值=%ft均方根值=%ft峰值因子=%ft峭度=%fn",Xmax,Xp,jf,c,Xq);

    3.幅值分析和时域分析结合的案例

    轴承振动信号测量仪如图3所示,这款测量仪用表头指示振动信号的有效值,但是,这里存在一个问题,就是一个好的轴承和一个有点蚀等轻微损伤的轴承振动信号的有效值大小差别很小,仅凭表头很难发现轴承的轻微损伤,因此,在测量仪上用示波器监测轴承振动信号的波形,测量人员用眼睛能看到信号是否有脉动。

    dd4526da4655f4c4a4b20d91d5c211d4.png
    图3 轴承振动测量仪

    利用幅值和时域分析,能判断轴承是否发生损伤,但是,这台轴承振动测量仪,它不能判断轴承的损伤是由轴承的哪个部位引起的,要想知道是哪个部位引起的,则需要对轴承振动信号进行频域分析。

    注意:轴承稳定旋转时测量才能有效(这个轴承振动信号是平稳的)。

    三、轴承信号的频域分析

    1.信号频谱分析与倒频谱分析

    频谱分析在数字信号处理中用途广泛: 如通过语言信号的频谱分析实现语音通讯的频带压缩、声纳信号的频谱分析用以区分水面与水下目标等。

    平稳随机信号的频谱分析主要是功率谱。功率谱表示信号功率随频率的分布情况, 物理意义直观、清楚。

    频谱分析的目的是把复杂的时间历程, 经傅立叶变换分解为若干单一的谐波分量, 以获得信号各谐波幅值、相位、功率等与频率的关系。

    利用信号的功率谱和功率倒频谱技术对信号进行分析。

    c34f8016f9382b7c6c3bd5e1bcb32a8e.png

    轴承信号的频谱分析是最有用的诊断与故障检测方法,但这种方法需要知道关于轴承几何结构和运行状态的细节。

    倒频谱定义为对数功率谱的傅立叶反变换, 即对对数功率谱做进一步谱分析得到的谱图。

    倒谱是基于原始的时域信号进行变换的,它能有效地处理非线性叠加的信号。倒谱在物理上的意义实际是对频谱特性再进行一次频谱分析,这样,频谱上的周期成分将会十分明显地在倒谱上表示出来。

    倒频谱能较好地检测出功率谱上的周期成分,通常在功率谱上无法对边频的总体水平做出估计,而倒频谱则具有“概括”能力,能较明显地显示出功率谱上的周期成分,使之定量化。

    当轴承等发生故障时,振动频谱具有的边频带一般都具有等间隔( 故障频率) 的结构,利用倒频谱的这个优点,可以检测出功率谱中难以辨识的周期性成分。

    由于传递路径不同,不同测点的功率谱也不同。但在倒频谱上,由于信号源的振动效应和传递途径的效应分离开来,代表轴承振动的倒频谱分量几乎完全相同,只是低频率段存在由于传递函数的差异而产生的影响。由此可见,在进行倒频谱分析时,可以不必考虑信号测取时的衰减和传输路径传递函数所带来的影响。

    倒频谱分析需要对信号功率谱取对数,取对数的意义包括以下两点:

    (1)扩大频谱的动态范围,提高再变换的精度;

    (2)取对数具有解卷积的作用,便于分离和提取目标信号,并且倒频谱还能区别出因调制而引起的功率谱中的周期分量。

    功率倒频谱是时间信号功率谱对数的傅立叶逆变换。

    功率倒频谱用来识别频谱的周期性,正如频谱用来识别一个信号的时间历程的周期性一样。

    倒频谱分析还能把轴承内部的振动与到测量传感器路径的传递函数分离开来。

    倒频谱分析能将振动信号功率谱图上的众多边频谱线简化为单根谱线,便于观察与分析。

    倒频谱分析能提取振动信号的周期特征,即对谱图进行频谱分析,故可识别周期特征。 对于没有故障的滚动轴承来说,倒频谱中将不会有谱峰出现。

    用倒频谱分析轴承信号的特征

    通常测得的信号是振动信号x(t)与由轴承内部滚动体、内外圈等元件组成的系统传递函数h(t)卷积后的信号。但在倒频谱中,由于倒频谱的解卷积作用,使得原本x(t)h(t)的卷积关系变为加法关系,这使得对信号的分离变得较为简单,所以倒频谱中可保留滚动轴承故障信号,同时消除了传递系统函数和噪声信号的影响。

    倒频谱分析能将振动信号功率谱图上的众多边频谱线简化为单根谱线,便于观察与分析。倒频谱分析能提取振动信号的周期特征,即对谱图进行频谱分析,故可识别周期特征。 对于没有故障的滚动轴承来说,倒频谱中将不会有谱峰出现。

    2.轴承故障诊断

    (1)轴承特征频率

    轴承产生故障时,其内、外滚道、滚动体和保持架可能会有缺陷。

    当滚动体通过缺陷位置时,将发生冲击而产生周期性故障冲击脉冲,从而引起轴承振动。

    而冲击脉冲的周期T是由产生缺陷的部位决定的,其周期的倒数为fi,它反映了故障特征,称fi为轴承的特征频率。当机器在匀速状态下运行时,若轴承出现故障,则在其振动频谱中会出现特征频率的谱峰(振幅增大)。因此,可以用故障的特征频率作为诊断特征。当滚动轴承元件出现局部损伤,轴承的内外圈或滚动体出现疲劳剥落,机器在运转时就会产生相应的振动频率,即故障特征频率或通过频率。各元件的故障特征频率分别计算如下:

    068b3e1f3e02645f9bd5e3d660904976.png

    24d4707849bac7592289b477574462ff.png

    24983feffae0b25cf2efd306c54133f0.png

    cf12e25cee1e2f51a9152203811cbb39.png

    22216cffe34167bb480c49a6746f8a6f.png

    f6ec3a364d12e4ca2b4cc283094b0f17.png

    00096a5e3d30bef67017efad38f36005.png

    81f925052403c515d0637945ed3c1c83.png

    798c0998cb97bfc6dac9f7ed93ffaa25.png

    949cdecfed673456b7647c0161d8c4f1.png

    67455fd764f6145dbdb4167447816ad2.png

    7cbdaf5adeedc719c8da0ffee383faa6.png

    87cc533928b3e766f557b8dac66dd84f.png

    计算倒谱源程序代码

    #include <stdio.h>

    #include <stdlib.h>

    #include <math.h>

    #define N 2048

    #define pi 3.1415926

    void DFT(float x[],float y[]);

    void IDFT(float yi[N]);

    void main(void)

    {

    FILE *fp;

    float x[N],y[N],Xmax,m=0.0,t,Xp,a;

    float jf=0.0,c,Xq=0.0;

    int i,j,n;

    if((fp=fopen("c:6310.dat","r"))==NULL)

    {

    printf("can't open the file.n");

    exit(1);

    }

    if(!feof(fp))

    {

    for(n=0;n<=N-1;n++)

    fscanf(fp,"%f",&x[n]);

    }

    fclose(fp);

    Xmax=fabs(x[0]);

    for(n=0;n<N;n++)

    {

    m=m+x[n];

    }

    m/=N;

    for(n=0;n<N;n++)

    x[n]-=m;

    for(i=1;i<N;i++)

    if(fabs(x[i])>Xmax)

    {

    Xmax=fabs(x[i]);

    }

    for(n=0;n<N;n++)

    x[n]/=Xmax;

    for(n=0;n<N;n++)

    jf+=x[n]*x[n];

    jf/=N;

    jf=sqrt(jf);

    for(n=0;n<N;n++)

    Xq+=x[n]*x[n]*x[n]*x[n];

    Xq=Xq/(N*jf*jf*jf*jf);

    a=fabs(x[0]);

    for(i=0;i<N-1;i++)

    if(fabs(x[i])>a)

    a=fabs(x[i]);

    Xp=a;

    c=Xp/jf;

    printf("最大值=%ft峰值=%ft均方根值=%ft峰值因子=%ft峭度=%fn",Xmax,Xp,jf,c,Xq);

    DFT(x,y);

    IDFT(y);

    }

    void DFT(float x[],float y[])

    {

    FILE *fp;

    float XI[N]={0.0},XQ[N]={0.0},PI[N],PQ[N],w[N];

    int n,k;

    for(n=0;n<N;n++)

    {

    PQ[n]=0.0;

    PI[n]=x[n];

    w[n]=0.54-0.46*cos(2*pi*n/(N-1));

    PI[n]=PI[n]*w[n];

    }

    for(k=0;k<N;k++)

    {

    for(n=0;n<N;n++)

    {

    XI[k]+=PI[n]*cos(2*pi/N*n*k)+PQ[n]*sin(2*pi/N*n*k);

    XQ[k]+=PQ[n]*cos(2*pi/N*n*k)-PI[n]*sin(2*pi/N*n*k);

    }

    y[k]=XI[k]*XI[k]+XQ[k]*XQ[k];

    y[k]=log10(y[k]);

    }

    }

    void IDFT(float yi[])

    {

    FILE *fp;

    float pI[N]={0.0},pq[N]={0.0},yq[N]={0.0};

    int n,k;

    FILE *fp;

    for(n=0;n<N;n++)

    {

    for(k=0;k<N;k++)

    {

    pI[n]+=yi[k]*cos(2*pi/N*n*k)-yq[k]*sin(2*pi/N*n*k);

    pq[n]+=yq[k]*cos(2*pi/N*n*k)+yi[k]*sin(2*pi/N*n*k);

    }

    pI[n]/=N;

    pq[n]/=N;

    pI[n]=sqrt(pI[n]*pI[n]+pq[n]*pq[n]);

    }

    if((fp=fopen("c:zh.dat","w"))==NULL)

    {

    printf("can't open the file.n");

    exit(1);

    }

    for(k=0;k<N;k++)

    fprintf(fp,"%d%fn",k,pI[k]*1000);

    fclose(fp);

    }

    直接利用离散傅里叶变换公式的程序是二重循环的。你也可以用FFT来实现,FFT程序是三重循环的程序。

    结束语:傅里叶变换的应用领域非常广,我这里只想通过几篇文章把傅里叶变换的理论到应用简单做个归纳和总结,希望对网友能有帮助。

    展开全文
  • 及其快速算法(FFT) 33.11 离散傅里叶变换的定义物理意义离散傅里叶变换的定义物理意义 3.2 DFT的主要性质 3.3 频域采样 3.4 DFT的快速算法快速傅里叶变换(FFT) 33.55 DFT(FFT)DFT(FFT)应用举例应用举例 ...
  • 《小波变换分数傅里叶变换理论及应用》 哈尔滨工业大学出版社 重点介绍小波分析基本方法、基本思想、基本工具和它的几个典型的应用领域。内容包括小波分析与傅里叶分析的对比,积分小波变换,正交多尺度分析及正交小...
  • 傅里叶变换&短时傅里叶变换&小波变换

    万次阅读 多人点赞 2016-05-03 11:26:36
    傅里叶变换&短时傅里叶变换&小波变换

    一、傅里叶变换
    关于傅里叶变换的基本概念在此我就不再赘述了,默认大家现在正处在理解了傅里叶但还没理解小波的道路上。(在第三节小波变换的地方我会再形象地讲一下傅里叶变换)

    下面我们主要将傅里叶变换的不足。即我们知道傅里叶变化可以分析信号的频谱,那么为什么还要提出小波变换?答案就是方沁园所说的,“对非平稳过程,傅里叶变换有局限性”。看如下一个简单的信号:做完FFT(快速傅里叶变换)后,可以在频谱上看到清晰的四条线,信号包含四个频率成分。做完FFT(快速傅里叶变换)后,可以在频谱上看到清晰的四条线,信号包含四个频率成分。

    一切没有问题。但是,如果是非平稳信号呢?

    如上图,最上边的是频率始终不变的平稳信号。而下边两个则是频率随着时间改变的非平稳信号,它们同样包含和最上信号相同频率的四个成分。
    做FFT后,我们发现这三个时域上有巨大差异的信号,频谱却非常一致。尤其是下边两个非平稳信号,我们从频域上无法区分它们,因为它们包含的四个频率的信号的成分确实是一样的,只是出现的先后顺序不同。

    可见,傅里叶变换处理非平稳信号有天生缺陷。它只能获取一段信号总体上包含哪些频率的成分,但是对各成分出现的时刻并无所知。因此时域相差很大的两个信号,可能频谱图一样。

    然而平稳信号大多是人为制造出来的,自然界的大量信号几乎都是非平稳的,所以在比如生物医学信号分析等领域的papers中,基本看不到单纯傅里叶变换这样naive的方法。
    上图所示的是一个正常人的事件相关电位。对于这样的非平稳信号,只知道包含哪些频率成分是不够的,我们还想知道上图所示的是一个正常人的事件相关电位。对于这样的非平稳信号,只知道包含哪些频率成分是不够的,我们还想知道各个成分出现的时间。知道信号频率随时间变化的情况,各个时刻的瞬时频率及其幅值——这也就是时频分析。


    二、短时傅里叶变换(Short-time Fourier Transform, STFT)
    一个简单可行的方法就是——加窗。我又要套用方沁园同学的描述了,“把整个时域过程分解成无数个等长的小过程,每个小过程近似平稳,再傅里叶变换,就知道在哪个时间点上出现了什么频率了。”这就是短时傅里叶变换。
    看图:
    时域上分成一段一段做FFT,不就知道频率成分随着时间的变化情况了吗!时域上分成一段一段做FFT,不就知道频率成分随着时间的变化情况了吗!
    用这样的方法,可以得到一个信号的时频图了:
    ——此图像来源于“THE WAVELET TUTORIAL” ——此图像来源于“THE WAVELET TUTORIAL”
    图上既能看到300Hz, 200 Hz, 100 Hz, 50 Hz四个频域成分,还能看到出现的时间。两排峰是对称的,所以大家只用看一排就行了。

    是不是棒棒的?时频分析结果到手。但是STFT依然有缺陷。

    使用STFT存在一个问题,我们应该用多宽的窗函数?
    窗太宽太窄都有问题:
    窗太窄,窗内的信号太短,会导致频率分析不够精准,频率分辨率差。窗太宽,时域上又不够精细,时间分辨率低。窗太窄,窗内的信号太短,会导致频率分析不够精准,频率分辨率差。窗太宽,时域上又不够精细,时间分辨率低。
    (这里插一句,这个道理可以用海森堡不确定性原理来解释。类似于我们不能同时获取一个粒子的动量和位置,我们也不能同时获取信号绝对精准的时刻和频率。这也是一对不可兼得的矛盾体。我们不知道在某个瞬间哪个频率分量存在,我们知道的只能是在一个时间段内某个频带的分量存在。 所以绝对意义的瞬时频率是不存在的。)

    看看实例效果吧:
    ——此图像来源于“THE WAVELET TUTORIAL” ——此图像来源于“THE WAVELET TUTORIAL”
    上图对同一个信号(4个频率成分)采用不同宽度的窗做STFT,结果如右图。用窄窗,时频图在时间轴上分辨率很高,几个峰基本成矩形,而用宽窗则变成了绵延的矮山。但是频率轴上,窄窗明显不如下边两个宽窗精确。

    所以窄窗口时间分辨率高、频率分辨率低宽窗口时间分辨率低、频率分辨率高。对于时变的非稳态信号,高频适合小窗口,低频适合大窗口。然而STFT的窗口是固定的,在一次STFT中宽度不会变化,所以STFT还是无法满足非稳态信号变化的频率的需求。


    三、小波变换

    那么你可能会想到,让窗口大小变起来,多做几次STFT不就可以了吗?!没错,小波变换就有着这样的思路。
    但事实上小波并不是这么做的(关于这一点,方沁园同学的表述“小波变换就是根据算法,加不等长的窗,对每一小部分进行傅里叶变换”就不准确了。小波变换并没有采用窗的思想,更没有做傅里叶变换。)
    至于为什么不采用可变窗的STFT呢,我认为是因为这样做冗余会太严重,STFT做不到正交化,这也是它的一大缺陷。

    于是小波变换的出发点和STFT还是不同的。STFT是给信号加窗,分段做FFT;而小波直接把傅里叶变换的基给换了——将无限长的三角函数基换成了有限长的会衰减的小波基。这样不仅能够获取频率,还可以定位到时间了~

    【解释】
    来我们再回顾一下傅里叶变换吧,没弄清傅里叶变换为什么能得到信号各个频率成分的同学也可以再借我的图理解一下。
    傅里叶变换把无限长的三角函数作为基函数:

    这个基函数会伸缩、会平移(其实是两个正交基的分解)。缩得窄,对应高频;伸得宽,对应低频。然后这个基函数不断和信号做相乘。某一个尺度(宽窄)下乘出来的结果,就可以理解成信号所包含的当前尺度对应频率成分有多少。于是,基函数会在某些尺度下,与信号相乘得到一个很大的值,因为此时二者有一种重合关系。那么我们就知道信号包含多少该频率的成分。

    (看,这两种尺度能乘出一个大的值,所以信号包含较多的这两个频率成分,在频谱上这两个频率会出现两个峰)(看,这两种尺度能乘出一个大的值,所以信号包含较多的这两个频率成分,在频谱上这两个频率会出现两个峰)

    以上,就是粗浅意义上傅里叶变换的原理。




    如前边所说,小波做的改变就在于,将无限长的三角函数基换成了有限长的会衰减的小波基。
    这就是为什么它叫“小波”,因为是很小的一个波嘛~这就是为什么它叫“小波”,因为是很小的一个波嘛~


    从公式可以看出,不同于傅里叶变换,变量只有频率ω,小波变换有两个变量:尺度a(scale)和平移量 τ(translation)。尺度a控制小波函数的伸缩平移量τ控制小波函数的平移尺度就对应于频率(反比),平移量 τ就对应于时间



    当伸缩、平移到这么一种重合情况时,也会相乘得到一个大的值。这时候和傅里叶变换不同的是,这不仅可以知道信号有这样频率的成分,而且知道它在时域上存在的具体位置。

    而当我们在每个尺度下都平移着和信号乘过一遍后,我们就知道信号在每个位置都包含哪些频率成分

    看到了吗?有了小波,我们从此再也不害怕非稳定信号啦!从此可以做时频分析啦!

    做傅里叶变换只能得到一个频谱,做小波变换却可以得到一个时频谱
    ↑:时域信号 ↑:时域信号
    ↑:傅里叶变换结果↑:傅里叶变换结果

    ——此图像来源于“THE WAVELET TUTORIAL” ——此图像来源于“THE WAVELET TUTORIAL”
    ↑:小波变换结果

    小波还有一些好处:
    1. 我们知道对于突变信号,傅里叶变换存在吉布斯效应,我们用无限长的三角函数怎么也拟合不好突变信号:
    然而衰减的小波就不一样了:然而衰减的小波就不一样了:



    2. 小波可以实现正交化,短时傅里叶变换不能。


    以上,就是小波的意义。

    -----------------------------------------------------------------------------------------------------------

    以上只是用形象地给大家展示了一下小波的思想,希望能对大家的入门带来一些帮助。毕竟如果对小波一无所知,直接去看那些堆砌公式、照搬论文语言的教材,一定会痛苦不堪。
    在这里推荐几篇入门读物,都是以感性介绍为主,易懂但并不深入,对大家初步理解小波会很有帮助。文中有的思路和图也选自于其中:
    1. THE WAVELET TUTORIAL (强烈推荐,点击链接:INDEX TO SERIES OF TUTORIALS TO WAVELET TRANSFORM BY ROBI POLIKAR)
    2. WAVELETS:SEEING THE FOREST AND THE TREES
    3. A Really Friendly Guide to Wavelets
    4. Conceptual wavelets

    但是真正理解透小波变换,这些还差得很远。比如你至少还要知道有一个“尺度函数”的存在,它是构造“小波函数”的关键,并且是它和小波函数一起才构成了小波多分辨率分析,理解了它才有可能利用小波做一些数字信号处理;你还要理解离散小波变换、正交小波变换、二维小波变换、小波包……这些内容国内教材上讲得也很糟糕,大家就一点一点啃吧~有问题欢迎私信我。水平有限,但一定帮助。

    第一次在知乎写这么长的回答,多数图都是用MATLAB和PPT自己画出来的,都是利用实验室搬完砖之余的时间一点点弄的,欢迎分享,如转载还请跟我说一声哈~










    -------------------------------------------------------------------------------------------------------------------------
    2015.3.26
    评论中的一些问题的回答:
    1. 关于海森堡不确定性原理
    不确定性原理,或者叫测不准原理,最早出自量子力学,意为在微观世界,粒子的位置与动量不可同时被确定。但是这个原理并不局限于量子力学,有很多物理量都有这样的特征,比如能量和时间、角动量和角度。体现在信号领域就是时域和频域。不过更准确一点的表述应该是:一个信号不能在时空域和频域上同时过于集中;一个函数时域越“窄”,它经傅里叶变换的频域后就越“宽”。
    如果有兴趣深入研究一下的话,这个原理其实非常耐人寻味。信号处理中的一些新理论在根本上都和它有所相连,比如压缩感知。如果你剥开它复杂的数学描述,最后会发现它在本质上能实现就源于不确定性原理。而且大家不觉得这样一些矛盾的东西在哲学意义上也很奇妙吗,世界观感觉就此被改变了。。


    2. 关于正交化
    什么是正交化?为什么说小波能实现正交化是优势?
    简单说,如果采用正交基,变换域系数会没有冗余信息,等于是用最少的数据表达最大的信息量,利于数值压缩等领域。JPEG2000压缩就是用正交小波变换。
    比如典型的正交基:二维笛卡尔坐标系的(1,0)、(0,1),用它们表达一个信号显然非常高效,计算简单。而如果用三个互成120°的向量表达,则会有信息冗余,有重复表达。
    但是并不意味着正交一定优于不正交。比如如果是做图像增强,有时候反而希望能有一些冗余信息,更利于对噪声的抑制和对某些特征的增强。

    3. 关于瞬时频率
    原问题:图中时刻点对应一频率值,一个时刻点只有一个信号值,又怎么能得到他的频率呢?
    很好的问题。如文中所说,绝对意义的瞬时频率其实是不存在的。单看一个时刻点的一个信号值,当然得不到它的频率。我们只不过是用很短的一段信号的频率作为该时刻的频率,所以我们得到的只是时间分辨率有限的近似分析结果。这一想法在STFT上体现得很明显。小波等时频分析方法,如用衰减的基函数去测定信号的瞬时频率,思想也类似。

    4. 关于小波变换的缺点
    这要看和谁比了。
    A.作为图像处理方法,和多尺度几何分析方法(超小波)比:
    对于图像这种二维信号的话,二维小波变换只能沿2个方向进行,对图像中点的信息表达还可以,但是对线就比较差,这时候ridgelet(脊波), curvelet(曲波)等多尺度几何分析方法就更有优势了。
    B. 作为时频分析方法,和HHT比:
    相比于HHT等时频分析方法,小波依然没脱离海森堡测不准原理的束缚,某种尺度下,不能在时间和频率上同时具有很高的精度;以及小波是非适应性的,基函数选定了就不改了。
    知识有限,暂时想到的有这些,欢迎补充。


    网友方沁园[短时傅里叶变换]能不能通俗的讲解下傅立叶分析和小波分析之间的关系?给出的答复:
    两句话:
    傅里叶变换:知道一段时间内,信号的各个频率分量有分别多少。
    小波变换:知道一段时间内,信号的各个频率分量有分别多少,以及他们都是什么时候出现的。


    解释:
    傅里叶变换是把时域的函数比作无数不同频率的余弦函数的叠加,计算每个频率分量有多少,形成频谱。
    出现了问题: 如果每个频率分量都在整个时间域上持续,没问题。
    但如果有些频率分量可能一开始没有,只在某一段时间范围内出现(非平稳过程)。频谱图上看不出来。
    也就是说,时域相差很大的两个信号,可能频谱图一样!
    所以,对非平稳过程,傅里叶变换有局限性!!

    于是出现了短时傅里叶变换STFT--把整个时域过程分解成无数个等长的小过程,每个小过程近似平稳,再傅里叶变换,就知道在哪个时间点上出现了什么频率了。

    其实“等长小过程”还是有局限性。如果根据某些原理,分解成不等长的小过程,就被优化了。--小波变换。就是根据算法,加不等长的窗,对每一小部分进行傅里叶变换。结果就是更更准确的知道在哪个时间点出现什么频率了。


    网友蒙面大侠[短时傅里叶变换]能不能通俗的讲解下傅立叶分析和小波分析之间的关系?给出的答复:
    建议参考matlab里的wave toolbox(命令行里输入‘wavemenu’),然后参照Matlab小波工具箱的使用1_了凡春秋和Matlab小波工具箱的使用2_了凡春秋,基本上大概可以弄懂小波分析大概是干什么的,对于具体的理论细节如:小波基的选取,尺度的确定,阀值的选定等, 可以慢慢通过相关的书籍了解.

    PS:有傅里叶分析基础理解起来比较快.大概应用的思路就是:把原始信号变换到一个特定的域里(傅里叶变化就是频域,小波变化姑且称之为小波域),在这个小波域中,可以反映出在原始信号在时域中并不明显的特征,加以阀值或其他相关的处理,再重构回时域.(以除白噪声为例,白噪声时域小波域里都是均匀分布的,而有用的纯净信号变换到了小波域不同尺度中的特性不同,利用这个特征设定相应阀值,重构回时域.可以去除原始信号中的白噪声

    时频结合多分辨率是小波分析的优势.


    网友xinqing moyi[短时傅里叶变换]能不能通俗的讲解下傅立叶分析和小波分析之间的关系?给出的答复:
    谢谢
    傅立叶变换 有局限性:只能知道频域上的事情
    而小波变换 利用窗函数 既可以知道频域上的事 也可以知道时间域上的事

    傅立叶变换 可以让你知道发生了一件事情 它有多厉害
    而小波变换 不仅可以让你知道这件事有多厉害 还可以让你知道这件事情什么时候发生的


    网友蒙面大侠[短时傅里叶变换]能不能通俗的讲解下傅立叶分析和小波分析之间的关系?给出的答复:
    说到底都是在搞基,只是基不同而已


    网友杨硕[短时傅里叶变换]能不能通俗的讲解下傅立叶分析和小波分析之间的关系?给出的答复:
    借这个地方写个笑话,文科生也能看懂。
    -----------------------------------------------------------------------------------------------------------------------------------------
    我没有认真学过wavelet,因为当时有人给我推荐了一个很好的教材,文章名字是这样的:

    看了几页就哭了:我真是连kids都不如啊……
    ------------------------------------------------------------------------------------------------------------------------------------------

    这篇文章链接在此:http://gtwavelet.bme.gatech.edu/wp/kidsA.pdf

    这篇文章是Google能找到citation最多的关于wavelet的tutorial,热心网友一致好评:


    网友傻妹妹牌炸酱面[短时傅里叶变换]能不能通俗的讲解下傅立叶分析和小波分析之间的关系?给出的答复:
    两者基函数不同。傅里叶是固定基函数,小波则是尺度和平移可变的基函数


    网友张生[短时傅里叶变换]能不能通俗的讲解下傅立叶分析和小波分析之间的关系?给出的答复:
    看了本文你还不懂傅里叶变换,那就来掐死我吧,相当好


    网友荔枝[短时傅里叶变换]能不能通俗的讲解下傅立叶分析和小波分析之间的关系?给出的答复:
    麻省理工开放课程_线性代数
    Lec31_基变换及图像压缩
    教授讲的很有意思,也许对你有所帮助教授讲的很有意思,也许对你有所帮助

    展开全文
  • 小波变换及其应用

    2013-09-13 08:31:20
    本文详细的介绍了小波变换在土木工程中的应用,通过本文可以了解小波变换傅里叶变换的区别。
  • 小波变换及其在信号消噪中的应用,金美华,宋万杰,本文在分析傅里叶变换的基础上,总结其在噪声消除方面的不足,并由此引出小波变换在信号消噪处理中的作用。最后应用MATLAB给出仿真
  • 为了提高秘密信息传输的安全性,将离散四元数傅里叶变换(DQFT)应用于彩色图像的信息隐藏技术中,提出了一种在彩色图像中嵌入秘密信息的新技术。应用四元数理论把彩色图像作为一个整体进行傅里叶变换,在彩色宿主图像...
  • 四元数通用傅里叶描述子及其应用研究,李衡,刘志文,傅里叶变换被广泛应用于图像处理和机器视觉领域中,本文结合四元数理论,提出一种针对彩色图像分析的四元数通用傅里叶描述子。本
  • 本文结合July、dznlong 两位大神的博客文章内容加上自己的理解与阐述,介绍了傅里叶变换的基础内容以及实数形式离散傅里叶变换的理解。

    如何理解离散傅里叶变换(一)

    ——实数形式傅里叶变换

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    本文作者:随煜而安  二零一五年五月二十三日

    原创作者:July、dznlong  

    推荐阅读:

    1.The Scientist and Engineer's Guide to Digital Signal Processing,By Steven W. Smith, Ph.D。http://www.dspguide.com/pdfbook.htm

    2.July大神博客  点击打开链接

    3.dznlong大神博客   点击打开链接

    4.高等数学/数学分析中关于傅里叶级数,三角函数正交系的部分内容

    5.深入浅出的讲解傅里叶变换(个人感觉讲的一般,但是配图很形象帮助理解)  点击打开链接

    说明:

    I、本文中阐述的离散傅里叶变换方法是July、dznlong 两位根据此书:The Scientist and Engineer's Guide to Digital Signal Processing,By Steven W. Smith, Ph.D.而翻译而成的,此书地址:http://www.dspguide.com/pdfbook.htm

    II、同时,有相当一部分内容编辑整理自dznlong、July两位的博客,本文是根据两人文章的思路添加上一些个人的想法以及补充一些细节的成果。上面也贴出了其博客地址,向原创的作者表示致敬。

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    谈谈傅里叶变换

    开始进入正题:

    关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶变换的描述,但是大都是些故弄玄虚的文章,太过抽象,尽是一些让人看了就望而生畏的公式的罗列,让人很难能够从感性上得到理解”---dznlong,

    那么,到底什么是傅里叶变换算法?傅里叶变换所涉及到的公式具体有多复杂列?这篇文章我借鉴两位大神的思路,并且先不列出一些复杂的公式,一步一步的引出我们要研究的东西,尽量做到通俗易懂。

    傅里叶变换(Fourier transform)是一种线性的积分变换。因其基本思想首先由法国学者傅里叶系统地提出,所以以其名字来命名以示纪念。傅里叶变换就是一种变换而已,只是这种变换是从时间转换为频率的变化。

    傅里叶变换的提出:

    傅立叶是一位法国数学家和物理学家,原名是Jean Baptiste Joseph Fourier(1768-1830), Fourier于1807年在法国科学学会上发表了一篇论文,论文里描述运用正弦曲线来描述温度分布,论文里有个在当时具有争议性的决断:任何连续周期信号都可以由一组适当的正弦曲线组合而成。 当时审查这个论文拉格朗日坚决反对此论文的发表,而后在近50年的时间里,拉格朗日坚持认为傅立叶的方法无法表示带有棱角的信号,如在方波中出现非连续变化斜率。直到拉格朗日死后15年这个论文才被发表出来。

    谁是对的呢?拉格朗日是对的:正弦曲线无法组合成一个带有棱角的信号。但是,我们可以用正弦曲线来非常逼近地表示它,逼近到两种表示方法不存在能量差别,基于此,傅立叶是对的。

    我们观察下图,直观的感受一下这个决断和傅里叶变换究竟在做怎样的一件事情。(图片来自:点击打开链接


        在这两几幅图中,分别代表了两个傅里叶变换。最前面黑色的线代表的就是要进行变换的时域上的函数f(t),它可以表示成后面所有彩色表示的正弦波叠加而成的总和。而后面依不同颜色排列而成的正弦波就是组合为f(t)的各个分量。这些正弦波按照频率从低到高从前向后排列开来,而每一个波的振幅都是不同的。一定有细心的读者发现了,在两个正弦波之间可能还有一条直线,那并不是分割线,而是振幅为0的正弦波!也就是说,为了组成特殊的曲线,有些正弦波成分是不需要的,或者说时域上的函数f(t)中不含有这种对应频率的分量。来看一个更为详细一些的图:


        对于每个正弦波分量,如果我们只看它的频率和幅值。那么对于所有分量,就形成了一个以频率为自变量,幅值为因变量的频率域上的函数F(w),也就是频域图像。这时,一个时域——频域的映射就形成了。这个例子中我们可以看出,一个时域上的近似矩形波被分解成了不同频率分量的正弦波,反过来看,一些不同频率的正弦波叠加成了一个矩形波。要注意的是,在实际中通常是将时域的函数变换为不同频率的正弦波和余弦波的叠加,而不仅仅是一些正弦波的叠加,尽管这并没有什么不同,因为我们知道正余弦是可以互相表示的。

        到此,在没有任何公式的情况下,我们也大概知晓了傅里叶变换在做怎样的一件事情。


    傅立叶变换分类

       根据原信号的不同类型,我们可以把傅立叶变换分为四种类别:
    1、非周期性连续信号        傅立叶变换(Fourier Transform) 
    2、周期性连续信号           傅立叶级数(Fourier Series) 
    3、非周期性离散信号       离散时域立叶变换(Discrete Time Fourier Transform) 
    4、周期性离散信号           离散傅立叶变换(Discrete Fourier Transform) 

    现在我们要列出一些公式了,先观察即可,后面会做出详细的解释。

         1.连续傅里叶变换

         一般情况下,若“傅里叶变换”一词不加任何限定语,则指的是“连续傅里叶变换”。连续傅里叶变换将平方可积的函数f(t)表示成复指数函数的积分或级数形式。

    这是将频率域的函数F(ω)表示为时间域的函数f(t)的积分形式。

    连续傅里叶变换的逆变换 (inverse Fourier transform)为:

    即将时间域的函数f(t)表示为频率域的函数F(ω)的积分。

    2.傅里叶级数

    连续形式的傅里叶变换其实是傅里叶级数 (Fourier series)的推广,因为积分其实是一种极限形式的求和算子而已。

    对于周期函数,其傅里叶级数是存在的:

    其中Fn为复幅度。对于实值函数,函数的傅里叶级数可以写成:


    其中an和bn是实频率分量的幅度。

    3.离散时域傅里叶变换
       离散傅里叶变换是离散时间傅里叶变换(DTFT)的特例(有时作为后者的近似)。DTFT在时域上离散,在频域上则是周期的。DTFT可以被看作是傅里叶级数的逆变换。

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

       为了在科学计算和数字信号处理等领域使用计算机进行傅里叶变换,必须将函数xn定义在离散点而非连续域内,且须满足有限性或周期性条件。这种情况下,使用离散傅里叶变换(DFT),将函数xn表示为下面的求和形式:

    其中Xk是傅里叶幅度。


    现在我们已经把四种类型的傅里叶变换的公式给出了,直接看这些公式,就像很多教科书那样,我想大家跟我一样都是一头雾水。 下面是July、dznlong两位大神给出的一些更为直观的东西。

    我们可以观察思考下上述傅立叶变换的4种变体的特点

           下图是四种原信号图例(从上到下,依次是FT,FS,DTFT,DFT):


    对于计算机来说只有离散的和有限长度的数据才能被处理。所以首先可以肯定的是,对于计算机中的研究,我们的时域信号需要是离散的。对于我们要处理的输入信号,考虑如果是非周期性信号的普遍情况。我们需要用无穷多不同频率的正弦曲线来表示,这对于计算机来说也是不可能实现的。所以频率域上也要是离散的。所以基于上面的分析,我们下面重点讨论和理解的是离散傅立叶变换(DFT),因为只有它才能被计算机适用。

     另外,每种傅立叶变换都分成实数和复数两种方法,对于实数方法是最好理解的,但是复数方法就相对复杂许多了,需要懂得有关复数的理论知识,不过,如果理解了实数离散傅立叶变换(real DFT),再去理解复数傅立叶变换就更容易了,所以我们先把复数的傅立叶变换放到一边去,先来理解实数傅立叶变换,在后面我们会先讲讲关于复数的基本理论,然后在理解了实数傅立叶变换的基础上再来理解复数傅立叶变换。所以本文后面的重点是理解实数离散傅立叶变换(real DFT)。

    截止到这里,我们简单阐述了傅里叶变换的一些基础知识和思想。后面,我们将从相对简单的实数傅里叶变换出发,试着去理解它。

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    实数离散傅立叶变换(real DFT)


    首先,先来看一个关于实数离散傅立叶变换(Real DFT)的例子     

    通过这个例子,是想引出实数离散傅里叶变换在数学或者说程序中的表达方法,并且如果能理解实数离散傅里叶变换的原理就更好了

    下图是一个实数原始离散信号图像:


           这个信号的长度是16,于是可以把这个信号分解9个余弦波和9个正弦波(一个长度为N的信号可以分解成N/2+1个正余弦信号,这是为什么呢?我们稍后再讨论,也许结合下图你就能已经看出其中的原因。参看最后面的
    证明1

    结合下面的18个正余弦图,我想从计算机处理精度上就不难理解,一个长度为N的信号,最多只能有N/2+1个不同频率,再多的频率就超过了计算机所能所处理的精度范围),如下图:

            9个余弦信号:

    从左至右,从上到下,分别对应着频率k=0~8;

    频率k=i就代表在长度为N的区间上存在着i个周期。k越大,周期越小。

            9个正弦信号:

    同样的,从左至右,从上到下,分别对应着频率k=0~8;

           把以上所有信号相加即可得到原始信号,至于是怎么分别变换出9种不同频率信号的,我们也先不急,后面会说到,先看看对于以上的变换结果,在程序中又是该怎么表示的,我们可以看看下面这个示例图:


      上图中左边表示时域中的信号,右边是频域信号表示方法,
    从左向右,-->,表示正向转换(Forward DFT),从右向左,<--,表示逆向转换(Inverse DFT),
    用小写x[]表示信号在每个时间点上的幅度值数组, 用大写X[]表示每种频率的幅度值数组(即时间x-->频率X), 
    因为变换到频率域后有N/2+1种频率,需要记录N/2+1个幅值,所以该数组长度为N/2+1

    X[]数组又分两种,一种是表示余弦波的不同频率幅度值:Re X[],另一种是表示正弦波的不同频率幅度值:Im X[]。

    其中,Re是实数(Real)的意思,Im是虚数(Imagine)的意思,采用复数的表示方法把正余弦波组合起来进行表示,但这里我们不考虑复数的其它作用,只记住是一种组合方法而已,目的是为了便于表达(个人感觉这样表示是因为更为普遍和常用的复数形式傅里叶变换的存在,为了在形式上契合它)。还有,在后面我们会知道,复数形式的傅立叶变换频率域数组长度是N,而不是N/2+1。

    到此,实数形式的离散傅里叶变换的表示方法及符号约定我们已经说清楚了,并且变换所做的实际工作我们也心里有数了。现在,补充上面欠着的关于“一个长度为N的信号可以分解成N/2+1个正余弦信号”的证明1。

    这个问题解决了,不过到这里不知道有没有人和我有同样的疑问。为什么变换后的正弦余弦分量的频率取值都正好是整数?这个问题将在下面的学习中自然而然的明白。


    实数形式离散傅里叶正变换(DFT)

        由上面的讨论我们知道DFT是要将时域长度为N的离散序列x(n)变换为不同频率取值的正余弦分量,且频率K取值为0~N/2+1。其实我们正变换要做的是已知时域序列x(n),求频率域上的幅度值数组,也就是ReX[] 和ImX[]。

    有三种完全不同的方法进行DFT:一种方法是通过联立方程进行求解, 从代数的角度看,要从N个已知值求N个未知值,需要N个联立方程,且N个联立方程必须是线性独立的,但这是这种方法计算量非常的大且极其复杂,所以很少被采用;第二种方法是利用信号的相关性(correlation)进行计算,这个是我们后面将要介绍的方法;第三种方法是快速傅立叶变换(FFT),这是一个非常具有创造性和革命性的的方法,因为它大大提高了运算速度,使得傅立叶变换能够在计算机中被广泛应用,但这种算法是根据复数形式的傅立叶变换来实现的,它把N个点的信号分解成长度为N的频域,这个跟我们现在所进行的实域DFT变换不一样,而且这种方法也较难理解,这里我们先不去理解,等先理解了复数DFT后,再来看一下FFT。有一点很重要,那就是这三种方法所得的变换结果是一样的,经过实践证明,当频域长度为32时,利用相关性方法进行计算效率最好,否则FFT算法效率较高。现在就让我们来看一下相关性算法。--July
     
    利用第一种方法、信号的相关性(correlation)可以从噪声背景中检测出已知的信号,我们也可以利用这个方法检测信号波中是否含有某个频率的信号波:把一个待检测信号波乘以另一个信号波,得到一个新的信号波,再把这个新的信号波所有的点进行相加,从相加的结果就可以判断出这两个信号的相似程度。如下图:

            上面a和 b两个图是待检测信号波,图a很明显可以看出是个3个周期的正弦信号波,图b的信号波则看不出是否含有正弦或余弦信号,图c和d都是个3个周期的正弦信号波,图e和f分别是a、b两图跟c、d两图相乘后的结果,图e所有点的平均值是0.5,说明信号a含有振幅为1的正弦信号c,但图f所有点的平均值是0,则说明信号b不含有信号d。这个就是通过信号相关性来检测是否含有某个信号的方法。
     
           第二种方法:相应地,我也可以通过把输入信号和每一种频率的正余弦信号进行相乘(关联操作),从而得到原始信号与每种频率的关联程度(即总和大小),这个结果便是我们所要的傅立叶变换结果,下面两个等式便是我们所要的计算方法:

           第二个式子中加了个负号,是为了保持复数形式的一致,前面我们知道在计算时又加了个负号,所以这只是个形式的问题,并没有实际意义,你也可以把负号去掉,并在计算时也不加负号。

           这里有一点必须明白一个正交的概念:两个函数相乘,如果结果中的每个点的总和为0,则可认为这两个函数为正交函数。要确保关联性算法是正确的,则必须使得跟原始信号相乘的信号的函数形式是正交的,我们知道所有的正弦或余弦函数是正交的,这一点我们可以通过简单的高数知识就可以证明它,所以我们可以通过关联的方法把原始信号分离出正余弦信号。也就是说,一个带有多个频率分量的时域函数f(t)乘以某个频率的正交基的积分,其实就等于函数中对应这个频率的分量与这个频率正交基的积分,也就求出了函数与这个频率的“关联度”。当然,其它的正交函数也是存在的,如:方波、三角波等形式的脉冲信号,所以原始信号也可被分解成这些信号,但这只是说可以这样做,却是没有用的。


    实数形式离散傅里叶逆变换——合成运算方法(Real Inverse DFT) 

    DFT合成等式(合成原始时间信号,频率-->时间,逆向变换):

    如果有学过傅立叶级数,对这个等式就会有似曾相识的感觉,不错!这个等式跟傅立叶级数是非常相似的:

            当然,差别是肯定是存在的,因为这两个等式是在两个不同条件下运用的,至于怎么证明DFT合成公式,这个我想需要非常强的高等数学理论知识了,这是研究数学的人的工作,对于普通应用者就不需要如此的追根究底了,但是傅立叶级数是好理解的,我们起码可以从傅立叶级数公式中看出DFT合成公式的合理性。                          
           DFT合成等式中的Im X[k]和Re X[k]跟之前提到的Im X[k]和Re X[k]是不一样的,下面是转换方法(关于此公式的解释,见下文):

           
           但k等于0和N/2时,实数部分的计算要用下面的等式:

                  
           上面四个式中的N是时域中点的总数,k是从0到N/2的序号。
           为什么要这样进行转换呢?这个可以从频谱密度(spectral density)得到理解,如下图就是个频谱图:

           
           这是一个频谱图,横坐标表示频率大小,纵坐标表示振幅大小,原始信号长度为N(这里是32),经DFT转换后得到的17个频率的频谱,频谱密度表示每单位带宽中为多大的振幅,那么带宽是怎么计算出来的呢?看上图,除了头尾两个,其余点的所占的宽度是2/N,这个宽度便是每个点的带宽,头尾两个点的带宽是1/N,而Im X[k]和Re X[k]表示的是频谱密度,即每一个单位带宽的振幅大小,但表示2/N(或1/N)带宽的振幅大小,所以分别应当是Im X[k]和Re X[k]的2/N(或1/N)。
     
    频谱密度就象物理中物质密度,原始信号中的每一个点就象是一个混合物,这个混合物是由不同密度的物质组成的,混合物中含有的每种物质的质量是一样的,除了最大和最小两个密度的物质外,这样我们只要把每种物质的密度加起来就可以得到该混合物的密度了,又该混合物的质量是单位质量,所以得到的密度值跟该混合物的质量值是一样的。--dznlong
     
           至于为什么虚数部分是负数,这是为了跟复数DFT保持一致,这个我们将在后面会知道这是数学计算上的需要(Im X[k]在计算时就已经加上了一个负号(稍后,由下文,便可知),再加上负号,结果便是正的,等于没有变化)。
     
           如果已经得到了DFT结果,这时要进行逆转换,即合成原始信号,则可按如下步骤进行转换:
    1、先根据上面四个式子计算得出的值;
    2、再根据DFT合成等式得到原始信号数据。


     到此为止,我们对傅立叶变换便有了感性的认识了。但是,这只是在实域上的离散傅立叶变换,其中虽然也用到了复数的形式,但那只是个替代的形式,并无实际意义,现实中一般使用的是复数形式的离散傅立叶变换,且快速傅立叶变换是根据复数离散傅立叶变换来设计算法的。随着作者之后的学习,再总结出后面的博文。




    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,344
精华内容 537
关键字:

傅里叶变换及其应用pdf