国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

有限長序列線性相關的快速算法研究

2021-10-23 02:28劉志君戚晨皓
電氣電子教學學報 2021年5期
關鍵詞:運算量信號處理復雜度

劉志君,戚晨皓

(1.東南大學 吳健雄學院,江蘇 南京211189;2.東南大學 信息科學與工程學院,江蘇 南京211189)

0 引言

在“數(shù)字信號處理”中,相關是一個十分重要的信號分析與處理的工具,在時延估計、隨機信號的統(tǒng)計特性分析以及隨機信號的功率譜估計等方面有著重要的應用[1],例如平穩(wěn)隨機信號的功率譜密度就是其自相關函數(shù)的傅里葉變換[2]。因此計算兩個有限長序列的線性相關是十分重要的內容,而相關文獻對于線性相關的FFT算法研究甚少,所以有必要對其快速運算作一些探討和研究,特別是長序列數(shù)字信號處理的快速算法,以期達到實時性的目的[3]。本文首先介紹了已有的直接FFT算法快速計算線性相關,而當兩序列長度相差較大時,直接FFT算法的快速性不夠明顯,因此本文重點研究了如何利用分段求和FFT算法來計算線性相關,該算法相比于直接FFT算法顯著減少了運算量。

1 直接FFT算法計算線性相關

1.1 直接FFT算法

設兩有限長序列x(n)、h(n)的長度分別為N、M,則x(n)與h(n)之間的線性相關的結果(又稱互相關函數(shù))rxh(m)和rhx(m)定義為:

觀察式(1)和(2)我們可以發(fā)現(xiàn)兩種不同互相關函數(shù)之間的關系:

根據(jù)定義可以發(fā)現(xiàn),互相關函數(shù)的長度為N+M-1,且兩個有限長序列的互相關函數(shù)有兩個[4],但是二者之間有明顯的關聯(lián)性,即rhx(m)=rxh(-m)。如果直接使用定義計算線性相關,其運算量為NM次乘法,時間復雜度為O(NM)。

為了利用FFT快速計算線性相關,我們需要用到線性卷積的相關內容[2],將rxh(m)的公式與線性卷積的公式相比較,可以得到二者的時域關系為:

根據(jù)式(4),我們就可以利用線性卷積的FFT算法[1]快速計算線性相關。這里我們還需要用到循環(huán)相關的概念,對于長度分別為N和M的有限長序列x(n)、h(n),其L點循環(huán)相關的結果(L≥max{N,M})定義為:

式(5)中:((·))L表示對L求余數(shù),RL(n)為矩形序列,X(k)與Y(k)均為L點FFT的結果。

循環(huán)相關和線性相關的等價關系[1]為L≥N+M-1,故直接FFT算法計算線性相關的過程如下:①取L=N+M-1;②對x(n)和h(n)做L點FFT得到X(k)與H(k);③然后將X*(k)與H(k)相乘得到Rxh;④對R做L點IFFT得到。

從上述過程來看需要3次FFT運算,但是在實際運用中,h(n)是設計好的參數(shù),在設計時直接給出H(k),因此只需要2次FFT計算和第三步的L次乘法,因此得到直接FFT算法的運算量為(Llog2L+L)次乘法[1],時間復雜度為O(Llog2L)。

1.2 直接FFT算法運算量的改進

前文討論線性相關的運算時并沒有考慮到N和M的關系對于直接FFT算法改進程度的影響。因此需要定義一個比值

通過式(6)來討論N和M的關系對于直接FFT算法改進程度的影響[3]。根據(jù)已經(jīng)得到的運算量的結果我們可以得到:

當N≈M時,可近似認為L=N+M-1≈2N,將兩種算法的運算量進行比較(表1)。

表1 N與M接近時運算量的比較

從表1中可以看出,當N=M時,N越大,直接FFT算法的運算量改善效果越好,在N=M≥16時,直接FFT算法的運算量就已經(jīng)明顯小于使用定義計算的運算量。

但是在實際的信號處理中,兩序列的長度相差較大,一般數(shù)字信號處理的單位沖激響應h(n)較短,而數(shù)字信號x(n)的長度較長。如果使用直接FFT算法進行計算,h(n)必須補很多個零值點,這樣一來很不經(jīng)濟,二來快速性不明顯[3]。在式(7)中,如果N?M,可以近似認為L=N+M-1≈N,此時,如果M不變,隨著N增加到大于2M,R1值反而會增大到超過1,這意味著直接FFT算法不僅沒有起到顯著減少運算量的作用,反而會在N大于2M時增加運算量,這是我們所不期望的,因此需要改善FFT算法,這就是以下將重點介紹的分段求和FFT算法。

2 分段求和FFT算法計算線性相關

2.1 分段求和FFT算法

對于FFT算法來說,先分段計算最后求和是一種很典型的改進計算量的方法[1],其核心就在于將一部分乘法變?yōu)榧臃?,從而達到減小計算量的目的,因此我們考慮設計分段求和FFT算法來快速計算長度相差較大的兩序列的互相關函數(shù)。

之后利用直接FFT算法分別計算xi(n)與h(n)的互相關函數(shù)rxih(n),但是每個rxih(n)的長度都為2M-1,而最后需要得到的結果rxh(m)長度為N+M-1,如果計算補零后的長度則為+M-1=(k+1)M-1,因此在最后求和時,相鄰兩個rxih(n)必然有(M-1)個點的值要重疊相加。

圖1 重疊相加和排列過程

根據(jù)求解過程可以得到分段求和FFT算法總的運算量為k(W log2W+W)次乘法,其中W?2M-1,時間復雜度為O(N log2M)。

2.2 分段求和FFT算法運算量的改進

為反映分段求和FFT算法的改進程度,我們再定義一個比值:

根據(jù)已經(jīng)得到的運算量的結果我們可以得到:

當N?M時,可近似認為L≈N,N≈=kM,將兩種算法的運算量進行比較(表2)。

從表2中可以看出,當N?M時,如果M不變,N越大,分段求和FFT算法的改善效果越好。在N=7,M=2,即x(n)長度約為h(n)長度的4倍時,分段求和FFT算法的運算量與直接FFT算法的運算量相當。

在N=15,M=2,即x(n)長度約為h(n)長度的8倍時,分段求和FFT算法的運算量就已經(jīng)明顯小于直接FFT算法的運算量。

表2 N遠大于M時運算量的比較

3 結語

本文重點研究了如何利用FFT快速計算兩個有限長序列的線性相關,介紹了直接FFT算法及其運算量的改進,以及當兩個序列長度相差較大時分段求和FFT算法及其運算量的改進,并綜合比較了兩種算法的運算量。結果表明,相比于根據(jù)定義直接計算線性相關,直接FFT算法顯著減少了運算量,且序列長度越長,改善效果越明顯;若參與線性相關的兩個序列長度相差較大,則相比于直接FFT算法,分段求和FFT算法具有更小的運算量,且序列長度差距越大,改善效果越好。

猜你喜歡
運算量信號處理復雜度
用平面幾何知識解平面解析幾何題
一種低復雜度的慣性/GNSS矢量深組合方法
《信號處理》征稿簡則
《信號處理》第九屆編委會
《信號處理》征稿簡則
《信號處理》第九屆編委會
減少運算量的途徑
求圖上廣探樹的時間復雜度
讓拋物線動起來吧,為運算量“瘦身”
某雷達導51 頭中心控制軟件圈復雜度分析與改進