當前位置:首頁 » 操作系統 » 二維演算法

二維演算法

發布時間: 2023-03-16 16:56:41

❶ 二維實序列的快速傅里葉變換(FFT)

在地球物理數據處理中,經常遇到處理二維實數據的情況。例如在地震勘探中,對面波勘探數據作頻散分析解釋時,要將時間-空間域的信息轉換為頻率-波數域頻譜;在重磁異常的濾波或轉換中,要將空間域的異常f(x,y)轉換為波數域F(ω,υ)等。這些分析都需要進行二維的傅里葉變換(FFT)。

根據傅里葉變換的定義,對於連續二維函數f(x,y),其傅里葉變換對為

地球物理數據處理基礎

對於離散的二維序列fjk(j=0,1,…,M-1;k=0,1,…,N-1),其傅里葉變換為

地球物理數據處理基礎

1.二維復序列的FFT演算法

對於M條測線,每條測線N個測點,構成復序列yjk(j=0,1,…,M-1;k=0,1,…,N-1),根據離散傅里葉公式(8-41),其傅里葉變換為

地球物理數據處理基礎

於是,可以分兩步套用一維復FFT完成二維復FFT的計算。

(1)沿測線方向計算

對於j=0,1,…,M-1逐測線套用一維復FFT,執行式(8-43)。定義復數組 則演算法為

1)對於j=0,1,…,M-1,作2)~7);

2)將yjk輸入A1(k),即A1(k)=yjk(k=0,1,…,N-1);

3)計算Wr,存入W(r),即

4)q=1,2,…,p(p=log2N),若q為偶數執行6),否則執行5);

5)k=0,1,2,…,(2p-q-1)和n=0,1,2,…,(2q-1-1)循環,作

A2(k2q+n)=A1(k2q-1+n)+A1(k2q-1+n+2p-1

A2(k2q+n+2q-1)=[A1(k2q-1+n)-A1(k2q-1+n+2p-1)]·W(k2q-1

至k,n循環結束;

6)k=0,1,2,…,(2p-q-1)和n=0,1,2,…,(2q-1-1)循環,作

A1(k2q+n)=A2(k2q-1+n)+A2(k2q-1+n+2p-1

A1(k2q+n+2q-1)=[A2(k2q-1+n)-A2(k2q-1+n+2p-1)]·W(k2q-1

至k,n循環結束;

7)q循環結束,若p為偶數,將A1(n)輸入到Yjn,否則將A2(n)輸入到Yjn(n=0,1,…,N-1);

8)j循環結束,得到Yjn(j=0,1,…,M-1;n=0,1,…,N-1)。

(2)垂直測線方向計算

對於n=0,1,…,N-1逐一套用一維復FFT,執行式(8-44)。即

1)對於n=0,1,…,N-1,作2)~7);

2)將Yjn輸入A1(j),即A1(j)=Yjn(j=0,1,…,M-1);

3)計算Wr存入W(r),即

4)q=1,2,…,p(p=log2M),若q為偶數執行6),否則執行5);

5)j=0,1,2,…,(2p-q-1)和m=0,1,2,…,(2q-1-1)循環,作

A2(j2q+m)=A1(j2q-1+m)+A1(j2q-1+m+2p-1

A2(j2q+m+2q-1)=[A1(j2q-1+m)-A1(j2q-1+m+2p-1)]·W(j2q-1

至j,m循環結束;

6)j=0,1,2,…,(2p-q-1)和m=0,1,2,…,(2q-1-1)循環,作

A1(j2q+m)=A2(j2q-1+m)+A2(j2q-1+m+2p-1

A1(j2q+m+2q-1)=[A2(j2q-1+m)-A2(j2q-1+m+2p-1)]·W(j2q-1

至j,m循環結束;

7)q循環結束,若p為偶數,將A1(m)輸入到Ymn,否則將A2(m)輸入到Ymn(m=0,1,…,M-1);

8)n循環結束,得到二維復序列的傅氏變換Ymn(m=0,1,…,M-1;n=0,1,…,N-1),

所求得的Ymn是復數值,可以寫為

Ymn=Rmn+iImn (m=0,1,…,M-1;n=0,1,…,N-1)

其中,Rmn,Imn的值也是已知的。

2.二維實序列的FFT演算法

對於二維的實序列,我們把其看作是虛部為零的復序列,套用上述的二維復序列FFT方法來求其頻譜演算法上也是可行的,但勢必會增加大量的無功運算。因此,有必要研究二維實序列FFT的實用演算法,同一維實序列FFT的實現思路一樣,同樣把二維實序列按一定的規律構造成二維復序列,調用二維復序列FFT,然後通過分離和加工得到原實序列的頻譜。

例如采樣區域有2 M條測線,每條測線有N個點,並且M,N都是2的整數冪,需要計算實樣本序列xjk(j=0,1,2,…,2 M-1;k=0,1,2,…,N-1)的傅氏變換:

地球物理數據處理基礎

類似於一維實序列FFT的思想,直接建立下面的二維實序列FFT演算法:

(1)將一個二維實序列按偶、奇線號分為兩個二維子實序列,分別作為實部和虛部組合為一個二維復序列。即令

地球物理數據處理基礎

(2)調用二維復FFT過程,求出yjk的二維傅氏變換Ymn的復數值:

地球物理數據處理基礎

式中:Rmn,Imn是Ymn的實部和虛部。

(3)利用Rmn,Imn換算Xmn的值。

前兩步容易實現,下面分析第(3)步的實現。

記hjk,gjk的傅氏變換為Hmn,Gmn。根據傅里葉變換的定義,我們導出Xmn與Hmn,Gmn的關系式:

地球物理數據處理基礎

式中,Hmn,Gmn為復數,我們用上標r和i表示其實部和虛部,將上式右端實部、虛部分離

地球物理數據處理基礎

其中:

地球物理數據處理基礎

下面的任務是將Hmn,Gmn各分量與通過二維復FFT求出的Rmn,Imn值聯系起來。為此先給出奇、偶分解性質和類似於一維情況的三個二維傅氏變換性質:

(1)奇偶分解性

任何一個正負對稱區間定義的函數,均可唯一地分解為如下偶(even)、奇(odd)函數之和:

地球物理數據處理基礎

(2)周期性

地球物理數據處理基礎

(3)復共軛性

地球物理數據處理基礎

現在我們來建立Rmn,Imn與Hmn,Gmn的關系。對Ymn作奇偶分解:

地球物理數據處理基礎

根據線性性質

地球物理數據處理基礎

對照式(8-54)和式(8-55),得

地球物理數據處理基礎

由於hjk,gjk是實函數,根據復共軛性質,上面兩式對應的奇偶函數相等。即

地球物理數據處理基礎

再由奇偶分解性和周期性,得

地球物理數據處理基礎

將式(8-57)代入式(8-50),得

地球物理數據處理基礎

再利用Hmn,Gmn周期性及復共軛性,可以得到m=M/2+1,…,M-1;n=0,1,…,N-1的傅氏變換,即

地球物理數據處理基礎

將式(8-50)中M,N改為M-m,N-n,並將上式代入,得

地球物理數據處理基礎

由式(8-58)、式(8-59)和式(8-61)即可得到原始序列xjk(j=0,1,…,2M-1;n=0,1,…,N-1)在m=0,1,…,M-1;n=0,1,…,N-1區間的傅氏變換Xmn

具體二維實序列的FFT演算法如下:

(1)令hjk=x2j,k,gjk=x2j+1,k,形成

yjk=hjk+igjk (j=0,1,…,2 M-1;n=0,1,…,N-1)

(2)調用二維復序列FFT過程,即從兩個方向先後調用一維復FFT演算法式(8-43)和式(8-44),求得yjk的二維傅氏變換Ymn的復數值:

Ymn=Rmn+iImn (m=0,1,…,M-1;n=0,1,…,N-1)

(3)用下列公式由Rmn,Imn的值換算Xmn的值:

地球物理數據處理基礎

地球物理數據處理基礎

熱點內容
androidsdk32下載 發布:2025-08-24 16:36:35 瀏覽:266
安卓手機忘了解鎖密碼怎麼辦 發布:2025-08-24 16:35:09 瀏覽:789
存儲過程在java代碼 發布:2025-08-24 16:32:11 瀏覽:498
寫編譯器需要哪些知識 發布:2025-08-24 16:09:06 瀏覽:330
資料庫的關系符號 發布:2025-08-24 16:02:29 瀏覽:626
sqlserver表值函數 發布:2025-08-24 15:56:27 瀏覽:554
linuxc內存泄露 發布:2025-08-24 15:54:30 瀏覽:112
python讀取文件每一行 發布:2025-08-24 15:32:27 瀏覽:83
abbplc編程軟體 發布:2025-08-24 15:31:43 瀏覽:209
蘋果關閉密碼如何設置新密碼 發布:2025-08-24 14:28:41 瀏覽:299