<small id='5hODrPe'></small> <noframes id='JLYERWmC'>

  • <tfoot id='Ozitrv4I'></tfoot>

      <legend id='F8ps7'><style id='20LviUYJmd'><dir id='8mJjtagCI'><q id='Hjtrf4ZTw'></q></dir></style></legend>
      <i id='soLFH2D6'><tr id='YhK97vkA'><dt id='ILj3'><q id='E3C0nRUYvw'><span id='sX7uI9'><b id='lpnC7Q3'><form id='KYtnANUPk'><ins id='ynf6LW'></ins><ul id='r2VApTH'></ul><sub id='cIAw'></sub></form><legend id='HGQOTqf'></legend><bdo id='IcDw'><pre id='1Cxu790i'><center id='s0oT7wIE'></center></pre></bdo></b><th id='4Y1Nx8b'></th></span></q></dt></tr></i><div id='Q3Kd8G'><tfoot id='5IL6'></tfoot><dl id='Swc928zl'><fieldset id='fgWSi5'></fieldset></dl></div>

          <bdo id='DAiSC'></bdo><ul id='xiFQHmDkj'></ul>

          1. <li id='N0LQjhR6v'></li>
            登陆

            1号站手机官网下载地址-傅里叶变换算法(二)

            admin 2019-07-14 294人围观 ,发现0个评论

                

            在上一篇里,咱们讲了傅立叶改换的由来、和实数办法离散傅立叶改换(Real DFT)两个问题,本文接上文,着重讲下复数、和复1号站手机官网下载地址-傅里叶变换算法(二)数办法离散傅立叶改换等问题。

            第三章、复数

            复数扩展了咱们一般所能了解的数的概念,复数包括了实数和虚数两部分,运用复数的办法能够把由两个变量表明的表达式变成由一个变量(复变量)来表达,使得处理起来愈加天然和便利。

            咱们知道傅立叶改换的成果是由两部分组成的,运用复数办法能够缩短改换表达式,使得咱们能够独自处理一个变量(这个在后边的描绘中咱们就能够愈加切当地知道),并且快速傅立叶改换正是依据复数办法的,所以简直一切描绘的傅立叶改换办法都是复数的办法。

            可是复数的概念超过了咱们日常日子中所能了解的概念,要了解复数是较难的,所以咱们在了解复数傅立叶改换之前,先来专门温习一下有关复数的常识,这对后边的了解十分重要。

            一、 复数的提出

            在此,先让咱们看一个物理试验:把一个球从某点向上抛出,然后依据初速度和时刻来核算球地点高度,这个办法能够依据下面的式子核算得出:


            其间h表明高度,g表明重力加速度(9.8m/s2),v表明初速度,t表明时刻。现在反过来,假定知道了高度,要求核算到这个高度所需求的时刻,这时咱们又能够经过下式来核算:

            (多谢JERRY_PRI提出:

            1、依据公式h=-(gt2/2)+Vt(gt后边的2表明t的平方),咱们能够评论终究状况,也便是说小球运动到最高点时,v=gt,所以,能够得到t=sqt(2h/g)
            且在您给的公式中,根号下为1-(2h)/g,化成分数办法为(g-2h)/g极速前进,g和h不能直接做加减运算。

            2、g是重力加速度,单位是m/s2,h的单位是m,他们两个相减的话在物理上没有含义,并且运用您给的那个公式反向回去的话推出的是h=-(gt2/2)+gt啊(gt后边的2表明t的平方)。

            3、直接推到能够得出t=v/gsqt((v2-2hg)/g2)(v和g后边的2都表明平方),那么也便是说当v2<2hg时会发生复数,可是假如从实践的v2是不或许小于2hg的,所以我感觉复数不能从实践出发去推到,只能从笼统的视点阐明一下。)      

            经过核算咱们能够知道,当高度是3米时,有两个时刻点抵达该高度:球向上运动时的时刻是0.38秒,球向下运动时的时刻是1.62秒。可是假如高度等于10时,成果又是什么呢?依据上面的式子能够发现存在对负数进行开平方运算,咱们知道这必定是不现实的。

            第一次运用这个不一般的式子的人是意大利数学家Girolamo Cardano(1501-1576),两个世纪后,德国巨大数学家Carl Friedrich Gause(1777-1855)提出了复数的概念,为后来的运用铺平了路途,他对复数进行这样表明:复数由实数(real)和虚数(imaginary)两部分组成,虚数中的根号负1用i来表明(在这儿咱们用j来表明,因为i在电力学中表明电流的意思)。
             
            咱们能够把横坐标表明成实数,纵坐标表明成虚数,则坐标中的每个点的向量就能够用复数来表明,如下图:

            上图中的ABC三个向量能够表明成如下的式子:

                        A = 2 + 6j
                        B = -4 – 1.5j
                        C = 3 – 7j

            这姿态来表达便利之处在于运用一个符号就能把两个本来难以联系起来的数组合起来了,不便利的是咱们要分辩哪个是实数和哪个是虚数,咱们一般是用Re( )和Im( )1号站手机官网下载地址-傅里叶变换算法(二)来表明实数和虚数两部分,如:

                        Re A = 2      Im A = 6
                 &1号站手机官网下载地址-傅里叶变换算法(二)nbsp;      Re B = -4     Im B = -1.5
                        Re C = 3      Im C = -7 

            复数之间也能够进行加减乘除运算:

            这儿有个特别的当地是j2等于-1,上面第四个式子的核算办法是把分子和分母一起乘以c – dj,这样就可消去分母中的j了。

            复数也契合代数运算中的交换律、结合律、分配律:

                          A B = B A
                          (A + B) + C = A + (B + C)
                          A(B + C) = AB + AC

            二、 复数的极坐标表明办法

            前面说到的是运用直角坐标来表明复数,其实更为遍及运用的是极坐标的表明办法,如下图:

            上图中的M便是数量积(magnitude),表明从原点到坐标点的间隔,是相位角(phase ang1号站手机官网下载地址-傅里叶变换算法(二)le),表明从X轴正方向到某个向量的夹角,下面四个式子是核算办法:

            咱们还能够经过下面的式子进行极坐标到直角坐标的转化:

                         a + jb = M (cos + j sin)

            上面这个等式中左面是直角坐标表达式,右边是极坐标表达式。

            还有一个更为重要的等式——欧拉等式(欧拉,瑞士的闻名数学家,Leonhard Euler,1707-1783):

                         ejx = cos x + j sin x 

            这个等式能够从下面的级数改换中得到证明:

            上面中右边的两个式子别离是cos(x)和sin(x)的泰勒(Taylor)级数。

            这姿态咱们又能够把复数的表达式表明成指数的办法了:

                         a + jb = M ej (这便是复数的两个表达式)

            指数办法是数字信号处理中数学办法的支柱,或许是因为用指数办法进行复数的乘除运算极为简略的原因吧:

            三、复数是数学剖析中的一个东西

            为什么要运用复数呢?其实它仅仅个东西罢了,就如钉子和锤子的联系,复数就象那锤子,作为一种运用的东西。咱们把要处理的问题表达到复数的办法(因为有些问题用复数的办法进行运算愈加便利),然后对复数进行运算,最终再转化回来得到咱们所需求的成果。

            有两种办法运用复数,一种是用复数进行简略的替换,如前面所说的向量表达式办法和前一节中咱们所评论的实域DFT,另一种是更高档的办法:数学等价(mathematical equivalence),复数办法的傅立叶改换用的便是数学等价的办法,但在这儿咱们先不评论这种办法,这儿咱们先来看一下用复数进行替换中的问题。

            用复数进行替换的基本思想是:把所要剖析的物理问题转化成复数的办法,其间仅仅简略地增加一个复数的符号j,当返回到本来的物理问题时,则仅仅把符号j去掉就能够了。

            有一点要了解的是并不是一切问题都能够用复数来表明,有必要看用复数进行剖析是否适用,有个比如能够看出用复数来替换本来问题的表达办法显着是错误的:假定一箱的苹果是5美元,一箱的桔子是10美元,所以咱们把它表明成 5 + 10j,有一个星期你买了6箱苹果和2箱桔子,咱们又把它表明成6 + 2j,最终核算一共花的钱是(5 + 10j)(6 + 2j) = 10 + 70j,成果是买苹果花了10美元的,买桔子花了70美元,这样的成果显着是错了,所以复数的办法不适合运用于对这种问题的处理。

            四、用复数来表明正余弦函数表达式

            关于象M cos (t + )和A cos(t ) + B sin(t )表达式,用复数来表明,能够变得十分简练,关于直角坐标办法能够按如下办法进行转化:

            上式中余弦幅值A经改换生成a,正弦幅值B的相反数经改换生成b:A <=> a,B<=> -b,但要留意的是,这不是个等式,仅仅个替换办法罢了。

            关于极坐标办法能够按如下办法进行转化:

            上式中,M <=> M,<=>。

            这儿虚数部分选用负数的办法首要是为了跟复数傅立叶改换表达式坚持共同,关于这种替换的办法来表明正余弦,符号的改换没有什么优点,但替换时总会被改动掉符号以跟更高档的等价改换坚持办法上的共同。

            在离散信号处理中,运用复数办法来表明正余弦波是个常用的技能,这是因为运用复数进行各种运算得到的成果跟本来的正余弦运算成果是共同的,可是,咱们要当心运用复数操作,如加、减、乘、除,有些操作是不能用的,如两个正弦信号相加,选用复数办法进行相加,得到的成果跟替换前的直接相加的成果是相同的,可是假如两个正弦信号相乘,则选用复数办法来相乘成果是不相同的。走运的是,咱们已严厉界说了正余弦复数办法的运算操作条件:

            1、参与运算的一切正余弦的频率有必要是相同的;
            2、运算操作有必要是线性的,如两个正弦信号能够进行相加减,但不能进行乘除,象信号的扩大、衰减、凹凸通滤波等体系都是线性的,象平方、缩短、取限等则不是线性的。要记住的是卷积和傅立叶剖析也只要线性操作才能够进行。

            下图是一个相量改换(咱们把正弦或余弦波变成复数的办法称为相量改换,Phasor transform)的比如,一个接连信号波经过一个线性处理体系生成另一个信号波,从核算进程咱们能够看出选用复数的办法使得核算改变十分的简练:

            在第二章中咱们描绘的实数办法傅立叶改换也是一种替换办法的复数改换,但要留意的是那还不是复数傅立叶改换,仅仅一种替代办法罢了。下一章、即,第四章,咱们就会知道复数傅立叶改换是一种更高档的改换,而不是这种简略的替换办法。 

            第四章、复数办法离散傅立叶改换

            复数办法的离散傅立叶改换十分奇妙地运用了复数的办法,使得傅立叶改换改换愈加天然和简练,它并不是仅仅简略地运用替换的办法来运用复数,而是彻底从复数的视点来剖析问题,这一点跟实数DFT是彻底不相同的。

            一、  把正余弦函数表明成复数的办法

            经过欧拉等式能够把正余弦函数表明成复数的办法:

              cos( x ) = 1/2 e j(-x) + 1/2 ejx 
                sin( x ) = j (1/2 e j(-x) - 1/2 ejx)

            从这个等式能够看出,假如把正余弦函数表明成复数后,它们变成了由正负频率组成的正余弦波,相反地,一个由正负频率组成的正余弦波,能够经过复数的办法来表明。

            咱们知道,在实数傅立叶改换中,它的频谱是0 ~ (0 ~ N/2),但无法表明-~ 0的频谱,能够预见,假如把正余弦表明成复数办法,则能够把负频率包括进来。

            二、  把改换前后的变量都当作复数的办法

            复数办法傅立叶改换把原始信号x[n]当成是一个用复数来表明的信号,其间实数部分表明原始信号值,虚数部分为0,改换成果X[k]也是个复数的办法,但这儿的虚数部分是有值的。

            在这儿要用复数的观念来看原始信号,是了解复数办法傅立叶改换的要害(假如有学过复变函数则或许更好了解,即把x[n]当作是一个复数变量,然后象对待实数那样对这个复数变量进行相同的改换)。

            三、  对复数进行相关性算法(正向傅立叶改换)

            从实数傅立叶改换中能够知道,咱们能够经过原始信号乘以一个正交函数办法的信号,然后进行求总和,最终就能得到这个原始信号所包括的正交函数信号的重量。

            现在咱们的原始信号变成了复数,咱们要得到的当然是复数的信号重量,咱们是不是能够把它乘以一个复数办法的正交函数呢?答案是必定的,正余弦函数都是正交函数,变成如下办法的复数后,依旧仍是正交函数(这个从正交函数的界说能够很简单得到证明):

                               cos x + j sin x, cos x – j sin x,……

            这儿咱们选用上面的第二个式子进行相关性求和,为什么用第二个式子呢?,咱们在后边会知道,正弦函数在虚数中改换后得到的是负的正弦函数,这儿咱们再加上一个负号,使得最终的得到的是正的正弦波,依据这个所以咱们很简单就能够得到了复数办法的DFT正向改换等式:

            这个式子很简单能够得到欧拉改换式子:

            其实咱们是为了表达上的便利才用到欧拉改换式,在处理问题时咱们仍是较多地用到正余弦表达式。

            关于上面的等式,咱们要清楚如下几个方面(也是差异于实数DFT的当地):

            1、X[k]、x[n]都是复数,但x[n]的虚数部分都是由0组成的1号站手机官网下载地址-傅里叶变换算法(二),实数部分表明原始信号;
            2、k的取值规模是0 ~ N-1 (也能够表达到0 ~ 2),其间0 ~ N/2(或0 ~ )是正频部分,

            N/2 ~ N-1(~ 2)是负频部分,因为正余弦函数的对称性,所以咱们把 –~ 0表明成~ 2,这是出于核算上便利的考虑。
            3、其间的j是一个不行别离的组成部分,就象一个等式中的变量相同,不能随意去掉,去掉之后含义就彻底不相同了,但咱们知道在实数DFT中,j仅仅个符号罢了,把j去掉,整个等式的含义不变;
            4、下图是个接连信号的频谱,但离散频谱也是与此相似的,所以不影响咱们对问题的剖析:

            上面的频谱图把负频率放到了左面,是为了投合咱们的思维习惯,但在实践实

            现中咱们一般是把它移到正的频谱后边的。

            从上图能够看出,时域中的正余弦波(用来组成原始信号的正余弦波)在复数DFT的频谱中被分成了正、负频率的两个组成部分,依据此等式中前面的份额系数是1/N(或1/2),而不是2/N,这是因为现在把频谱延伸到了2,但把正负两个频率相加即又得到了2/N,又复原到了实数DFT的办法,这个在后边的描绘中能够更清楚地看到。

            因为复数DFT生成的是一个完好的频谱,原始信号中的每一个点都是由正、负两个频率组合而成的,所以频谱中每一个点的带宽是相同的,都是1/N,相对实数DFT,两头带宽比其它点的带宽少了一半;复数DFT的频谱特征具有周期性:-N/2 ~ 0与N/2 ~ N-1是相同的,实域频谱呈偶对称性(表明余弦波频谱),虚域频谱呈奇对称性(表明正弦波频谱)。

            四、  逆向傅立叶改换

            假定咱们现已得到了复数办法的频谱X[k],现在要把它复原到复数办法的原始信号x[n],当然应该是把X[k]乘以一个复数,然后再进行求和,最终得到原始信号x[n],这个跟X[k]相乘的复数首要让咱们想到的应该是上面进行相关性核算的复数:

                                 cos(2kn/N) – j si(2kn/N),

            但其间的负号其实是为了使得进行逆向傅立叶改换时把正弦函数变为正的符号,因为虚数j的运算特别性,使得本来应该是正的正弦函数变为了负的正弦函数(咱们从后边的推导会看到这一点),所以这儿的负号仅仅为了纠正符号的效果,在进行逆向DFT时,咱们能够把负号去掉,所以咱们便得到了这样的逆向DFT改换等式:

                                 x[n] = X[k] (cos(2kn/N) + j sin(2kn/N))

            咱们现在来剖析这个式子,会发现这个式其实跟实数傅立叶改换是能够得到相同成果的。咱们先把X[k]改换一下:

                                 X[k] = Re X[k] + j Im X[k]

            这样咱们就能够对x[n]再次进行改换,如:

                       x[n] = (Re X[k] + j Im X[k]) (cos(2kn/N) + j sin(2kn/N))

                              = ( Re X[k] cos(2kn/N) + j Im X[k] cos(2kn/N) +j Re X[k] sin(2kn/N) -  Im X[k] sin(2kn/N) )

                              = ( Re X[k] (cos(2kn/N) + j sin(2kn/N)) +    ---------------------(1)

                                   Im X[k] ( - sin(2kn/N) + j cos(2kn/N)))    ---------------------(2)

            这时咱们就把本来的等式分成了两个部分,第一个部分是跟实域中的频谱相乘,第二个部分是跟虚域中的频谱相乘,依据频谱图咱们能够知道,Re X[k]是个偶对称的变量,Im X[k]是个奇对称的变量,即

                                Re X[k] = Re X[- k]
                                Im X[k] = - Im X[-k]

            但k的规模是0 ~ N-1,0~N/2表明正频率,N/2~N-1表明负频率,为了表达便利咱们把N/2~N-1用-k来表明,这样在从0到N-1的求和进程中关于(1)和(2)式别离有N/2对的k和-k的和,关于(1)式有:

                                Re X[k] (cos(2kn/N) + j sin(2kn/N)) + Re X[- k] (cos( - 2kn/N) + j sin( -2kn/N))

            依据偶对称性和三角函数的性质,把上式化简得到:
             

                        Re X[k] (cos(2kn/N) + j sin(2kn/N)) + Re X[ k] (cos( 2kn/N) - j sin( 2kn/N))

            这个式子最终的成果是:

                                2 Re X[ k] cos(2kn/N)。
            再考虑到求Re X[ k]等式中有个份额系数1/N,把1/N乘以2,这样的成果不便是跟实数DFT中的式子相同了吗?

            关于(2)式,用相同的办法,咱们也能够得到这样的成果:

                                -2 Im X[k] sin(2kn/N)

            留意上式前面多了个负符号,这是因为虚数改换的特别性形成的,当然咱们必定不能把负符号的正弦函数跟余弦来相加,还好,咱们前面是用cos(2kn/N) – j sin(2kn/N)进行相关性核算,得到的Im X[k]中有个负的符号,这样最终的成果中正弦函数就没有负的符号了,这便是为什么在进行相关性核算时虚数部分要用到负符号的原因(我觉得这或许是复数办法DFT美中不足的当地,让人有一种凑集的感觉)。

            从上面的剖析中能够看出,实数傅立叶改换跟复数傅立叶改换,在进行逆改换时得到的成果是相同的,只不过是异曲同工吧。


            文章来历:算法数学之美

            -- End --

            图|网络

            文|网络

            排版|数模乐土

            我在这儿等你哟!






            请关注微信公众号
            微信二维码
            不容错过
            Powered By Z-BlogPHP