现在的位置: 首页 > 综合 > 正文

我对傅里叶变换(DFT,FFT)的理解

2018年04月11日 ⁄ 综合 ⁄ 共 3168字 ⁄ 字号 评论关闭

我本身不是学通信专业的,相近专业+刻苦最终能够让我理解通信理论方面的一些知识,对此我坚信不移.看了一些天的书,总结一下,现代通信中,傅里叶变换是很重要的组成部分.现代的通讯基本都是数字通信,这里面就要对数字信号处理有很多的了解,而在学信号处理之前,是要学习信号与系统的,看了书后才知道这件事情的,所以非专业的人学习的路往往是弯曲前行的,但这个弯曲的过程却会给人对知识的更深刻的了解.

    尤其是随着通讯技术的发展,更多的数学被运用到通讯中,这种数学知识的运用使得本来需要用复杂的硬件来实现的功能最终被软件轻松化解,这样带来的好处就是在产品的设计中硬件的比例会变小,成本也就自然会降低.4G时代的通讯协议中大量的运用了通讯数学方面的计算,而FFT在4G通讯中变得越来越重要,如果对FFT不了解或者不理解的话,想从事4G相关产品的研究与开发会变得很艰难.

    在学校傅里叶变换的时候,多种傅里叶变换让我经常把他们弄混,搞得我晕头转向.向一位学通信的同事询问一些知识,后来发现,哥们总是不往点上说,也就是说那些最关键,最容易混淆的东西,他都不愿意说出来.但这并不能阻碍我,因为我是不怕这种情况的,我就是在这种环境下成长起来的,只要我想学的东西,我从来没被难倒过,克服了太多的困难让我对自己很有信心.后来总结了一通才发现,其实那东西只要知道了要领,最终会绕过很多弯路的.

    在通讯中,我们的傅里叶变换时间上是一种在时域上的周期离散信号到频域上的周期离散信号之间的变换,这样才是数字通信,如果变换中有连续的模拟量,那也就不是数字通信了.因此,在学习的使用一定要注意到这一点.有了这个方向,你就该知道应该记住什么,应该学习哪种傅里叶变换了.
    

学了东西几天不看就要忘记,前几天看的,现在又开始变得模糊了,看来学的东西还是要经常复习才是.  前一篇讲我们在数字通讯中用来进行计算的傅里叶变换一般是指时域和频域上都是周期性的离散信号来讲的.这里我们要明确一下周期信号,非周期信号,连续信号,离散信号到底是什么样的信号,明确这一点对理解DFT比较有好处.

   首先,我们先知道一个惯例,在通讯中,时域上的变量一般使用小写字母来表示,而频域上的变量一般使用大写字母来表示.

    连续信号,应该不用再说明了吧,也就是说时域上的连续信号是指幅度在时域上随时间连续变化的信号,用x(t)的形式来表达,同理频域上的连续信号就是指幅度在频域上随频率连续变化的信号,一般用类似X(jw)之类的形式来表达.而非连续信号不言而喻就是指有间断的信号,不连续的信号,离散的信号,在数字通信中一般指类似脉冲之类的信号.

    接下来就是周期信号和非周期信号. 连续的周期信号是很好理解的啦,例如正弦波,锯齿波等等.但对于离散的信号,就要注意一下啦.离散信号的情况下,周期信号一般指等间隔的脉冲.而单个的脉冲或者没有周期性的脉冲都属于非周期信号.

 

    我们在学习信号与系统的时候,针对傅里叶变换,书中会讲各种情况下的变化,让人很糊涂,记忆也很难记忆,搞一搞就晕头转向了.知道了上面几种信号后,我们就可以很容易记忆各种情况下的傅里叶变换了.下次再继续讲给大家.

前面讲了傅里叶变换中的几种信号类型,理解这些类型对于我们理解傅里叶变换很重要.那么,每种类型其变换虽然道理可以互通,但实际的方法或者说公式都不是一样的,

    大家要注意另外一件事情,傅里叶正变换是只时域-->频域的变换,而傅里叶反变换是指频域-->时域的变换.这个方向大家一定不要弄混了.

    1.连续的非周期的时间信号的傅里叶变换和反变换:

    从上面的变换中我们可以看出,对于非周期的连续时间信号的傅里叶变换,其频域也是非周期的连续的频率函数.

 

    2.连续的周期的时间信号的傅里叶变换和反变换:

从这对公式中我们可以看出,时间上是连续的,但频域上是离散的量.正变换就是我们所说的傅里叶级数.

 

    3.离散的非周期的时间信号的傅里叶变换和反变换:

 从正变换的公式中可以看出,时间上离散非周期的信号,在频域上是周期的连续的信号.当然,在公式中我们并不能明显的看出频域上的周期性.但实际情况是这样的.

    4.离散的周期的时间信号的傅里叶变换和反变换:

 

我们可以看出,时间上离散的周期信号,在频域上也是离散和周期的信号.这种情况就是我们通讯中用来进行运算的DFT.

 

    其实,傅里叶变换也就这四种情况,那么从这四种情况中我们可以概括出他们的规律,即:

        非周期<--->连续

          周期<--->离散

    这个规律对于时域和频域上的信号是对称的.打个比方说吧,如果时域上是非周期的,则频域上的信号肯定是连续的,如果时域上的信号时周期的,则频域上的信号肯定是离散的.反之亦然.

傅里叶变换在不同信号形式下有不同的变换方法,前一篇我讲了几种信号形式的傅里叶变换和它们之间的关系.反正我不太关心前三种形式的傅里叶变换.数字信号处理其实主要就是处理最后一种形式,即在时域和频域上都是离散的周期信号的傅里叶变换,通讯中用于运算也是通过这种形式的傅里叶变换进行的.让我们在复习一下:

前面的一个公式是把时域信号转换为频域上的信号,就是我们常说的离散信号的傅里叶变换,即DFT,后面的一个公式就是把频域信号转换为时域上的信号,就是我们常说的离散信号的反傅里叶变换,即IDFT.

 

    在通讯过程中,我们的很多实际信号大多是模拟信号,例如音乐,歌声.模拟信号要在计算机中进行处理就必须先转换为计算机可以使用的数字信号.拿声音来说吧,声音的频率从几十HZ到20KHZ,我们要把模拟信号变成数字信号就要先对模拟信号进行采样.根据采样定理,要想在采样后能够复原以前的模拟信号,采样率必须大于信号最高频率的2倍.现在的声卡一般采用44KHZ的采样率,44KHZ>20KHZ*2,其实就是这个意思.

    模拟信号经过采样之后形成了一串数,在计算机中就使用数组来存储,也就是上面公式中的x(n),n就是n个采样点.那么经过转换后,X(k)则是用来存储不同频率点上的幅值.k相当于频域上的采样次数.

    我们拿DFT公式来说明一下,X(k)用来存储变换后的不同频率上的幅值.频率点k可以从0开始一直取下去,但每个频率点的间隔即频率的分辨率Ferr则是由采样率SRate和时域上所取的采样点数N来决定的,即有下列的关系:

    Ferr=SRate/N

    举例来讲,如果采样率是44KHZ,即1秒钟采样了44K个采样点,在实际应用中,假如我们只取了其中的连续的22K个采样点进行分析,那么这时N==22000,那么X(k)存储的分别是的频率为0HZ,2HZ,4HZ,8HZ.....点上的幅值,也就是说,这是X(k)的频率的分辨率为44KHZ/22K=2HZ.

接着上一讲的讲述,我们可以通过DFT和IDFT的公式,把时域上的采样的数据转换成频域上的数据,也可以把频域上的数据转换成时域上的数据.

    但是,当我们计算的时候我们就会发现这样一个问题.当采样点太多,也就是说当N特别大的时候,那么要进行编号,其计算每一个另一个域上的点,其计算量都是非常大的.这样我们就需要一种快速的算法来进行变换,也就是我们说的快速傅里叶变换和快速傅里叶反变换FFT和IFFT.

    我们把前面讲述的公式(1):

公式(1),可以通过欧拉公式进行展开:

那么公式(1)就可以表示成三角函数的形式,我们不必去考究其运算过程,最终我们会得到一个结论,要进行变换,进行DFT的运算,其加法和乘法的次数都近似与N的平方成正比,但N比较大的时候,例如N=1024是,需要100多万次的复数乘法运算,这样的计算让计算机的计算会变得很慢,这是我们在处理变换时所不希望的.

抱歉!评论已关闭.