f-x反褶积

f-x反褶积(链接
Canales, 1984, Random noise reduction, 54.th. Ann. Internat. Mtg., Soc. Expl. Geophys., Expanded Abstracts, pp. 525-527

简介

f − x f-x fx 反卷积是一种地震数据去噪方法,其基本假设是具有线性同向轴的地震数据在 f − x f-x fx域中的每个频率切片都可以进行自回归表示。 f − x f-x fx反卷积方法是很多算法的基础,因此理论推导写的比较详细。之所以称为反卷积,可以理解为求卷积系数,也可以理解为求降噪数据。(一般反卷积是指求数据,而不是系数)。

理论

一般理论

平面波满足如下微分方程:
p ( x , t ) ∂ u ∂ t + ∂ u ∂ x = 0 p(x,t)\frac{\partial u}{\partial t}+\frac{\partial u}{\partial x}=0 p(x,t)tu+xu=0
假设 p ( x , t ) = p p(x,t)=p p(x,t)=p为常数,则有
p ∂ u ∂ t + ∂ u ∂ x = 0 p\frac{\partial u}{\partial t}+\frac{\partial u}{\partial x}=0 ptu+xu=0
该方程具有通解:
u ( x , t ) = v ( t 0 + t − p x ) u(x,t)=v(t_0+t-px) u(x,t)=v(t0+tpx)
上式只适用于描述含有单独斜率的线性同相轴,对于含有多线性同向轴的二维地震数据,在 t − x t-x tx域可以标示成如下形式:
u ( t , x ) = ∑ i = 1 n v ( t i + t − p i x ) u(t,x)=\sum_{i=1}^nv(t_i+t-p_ix) u(t,x)=i=1nv(ti+tpix)
其中 n n n为同向轴个数, t i t_i ti为初至, p i p_i pi为斜率, v v v为地震子波。在两侧分别对时间进行傅里叶变换,根据傅里叶变换的性质:
F ( f ( x − a ) ) = e − i a ω F ( f ( x ) ) F(f(x-a))=e^{-ia\omega}F(f(x)) F(f(xa))=eiaωF(f(x))
得到(注意,上标 i i i表示虚数单位,下标 i i i表示索引):
u ^ ( ω , x ) = ∑ i = 1 n v ^ ( ω ) e i ( t i − p i x ) ω \hat u(\omega,x)=\sum_{i=1}^n\hat v(\omega)e^{i(t_i-p_ix)\omega} u^(ω,x)=i=1nv^(ω)ei(tipix)ω

简化情况

对于简单的情况,同向轴只有一条,并且经过原点,上式可以简化为:
u ^ ( ω , x ) = v ^ ( ω ) e − i p x ω \hat u(\omega,x)=\hat v(\omega)e^{-ipx\omega} u^(ω,x)=v^(ω)eipxω
x x x方向上进行离散化, x = k Δ x x=k\Delta x x=kΔx,得到:
u ^ ( ω , k Δ x ) = v ^ ( ω ) e − i p k Δ x ω \hat u(\omega,k\Delta x)=\hat v(\omega)e^{-ipk\Delta x \omega} u^(ω,kΔx)=v^(ω)eipkΔxω
U k = u ^ ( ω , k Δ x ) U_k=\hat u(\omega,k\Delta x) Uk=u^(ω,kΔx) K = e − i p Δ x ω K=e^{-ip\Delta x\omega} K=eipΔxω则:
U k = U k − 1 K U_k=U_{k-1}K Uk=Uk1K
则频率切片的自回归形式为:
U k − K U k − 1 = 0 U_k-KU_{k-1}=0 UkKUk1=0
将所有关系式写到一起,形成一个线性方程组,然后通过最小二乘方法可以得到对所有 i i i最优的 K K K(注意 p p p最开始是未知的, K K K也是未知的,所以需要通过最小二乘来求)。得到 K K K之后,为了实现去噪,虽然自回归滤波器的长度为2,但我们可以利用更多的相邻到来实现叠加去噪,即:
U i = 1 m ∑ k = i − m k = i − 1 K i − k U k U_i=\frac 1 m \sum_{k=i-m}^{k=i-1}K^{i-k}U_{k} Ui=m1k=imk=i1KikUk

反推一般情形

此部分推导相对复杂一些,之前一直没整明白,这次写文档算是整明白了。假设数据中含有多个线性同向轴(并且都通过原点 t i = 0 t_i=0 ti=0),则频率域的关系式为:
u ^ ( ω , k Δ x ) = v ^ ( ω ) ∑ i = 1 n e − i p i k Δ x ω \hat u(\omega,k\Delta x)=\hat v(\omega)\sum_{i=1}^ne^{-ip_ik\Delta x \omega} u^(ω,kΔx)=v^(ω)i=1neipikΔxω
U k = u ^ ( ω , k Δ x ) U_k=\hat u(\omega,k\Delta x) Uk=u^(ω,kΔx) K i = e − i p i Δ x ω K_i=e^{-ip_i\Delta x\omega} Ki=eipiΔxω V = v ^ ( ω ) V=\hat v(\omega) V=v^(ω)则:
U k = V ( ∑ i = 1 n K i k ) U_k=V(\sum_{i=1}^n K_i^k) Uk=V(i=1nKik)
需要证明在 U U U存在自回归性质,即存在 a 0 , a 1 , ⋯   , a n − 1 a_0,a_1,\cdots,a_{n-1} a0,a1,,an1,使得下面方程对任意 j j j成立:
∑ k = j j + n − 1 a k − j U k = 0 \sum_{k=j}^{j+n-1}a_{k-j}U_k=0 k=jj+n1akjUk=0
U k U_k Uk带入可以得到:
∑ k = j j + n − 1 a k − j ∑ i = 1 n K i k = 0 \sum_{k=j}^{j+n-1}a_{k-j} \sum_{i=1}^n K_i^k=0 k=jj+n1akji=1nKik=0
由于后面的求和下标与 k k k无关,所以可以把 a k − j a_{k-j} akj放进去,得到:
∑ k = j j + n − 1 ∑ i = 1 n a k − j K i k = 0 \sum_{k=j}^{j+n-1}\sum_{i=1}^n a_{k-j} K_i^k=0 k=jj+n1i=1nakjKik=0
两组求和下标之间也没有关系,因此求和可以交换顺序:
∑ i = 1 n ∑ k = j j + n − 1   a k − j K i k = 0 \sum_{i=1}^n \sum_{k=j}^{j+n-1}\ a_{k-j} K_i^k=0 i=1nk=jj+n1 akjKik=0
到这是关键的一步,我们假设对于第一个求和而言,每一项都为零,则求和也为零。得到:
∑ k = j j + n − 1   a k − j K i k = 0 \sum_{k=j}^{j+n-1}\ a_{k-j} K_i^k=0 k=jj+n1 akjKik=0
两边再除以 K i j K_i^j Kij得到:
∑ k = 0 n − 1   a k K i k = 0 \sum_{k=0}^{n-1}\ a_k K_i^k=0 k=0n1 akKik=0
我们发现对于不同的 i i i,所需满足的方程是一样的。并且这个方程是有解的:可以得到一个具有 n n n个未知数的方程,对于所有的 i i i,共有 n n n个方程,因此可以解出来 a k a_k ak
此时可知 U U U是线性自回归的,并且回归系数与 p i p_i pi有关。解出来回归系数之后,可以通过某一道与相邻道之间的线性回归关系来进行去噪。

n = 1 n=1 n=1的情况类似,在含有噪声的情况下,我们通常会选择更长的自回归滤波器,以达到更好的去噪效果。

n = 2 n=2 n=2时的特例

n = 2 n=2 n=2时的方程组为:
a 0 + a 1 K 1 + K 1 2 = 0 a 0 + a 1 K 2 + K 2 2 = 0 \begin{aligned} a_0+a_1K_1+K_1^2=&0\\ a_0+a_1K_2+K_2^2=&0 \end{aligned} a0+a1K1+K12=a0+a1K2+K22=00
可以得到:
a 0 = K 1 K 2 a 1 = − K 1 − K 2 \begin{aligned} a_0&=K_1K_2 \\ a_1&=-K_1-K_2 \end{aligned} a0a1=K1K2=K1K2

初至、通解

对于加入初至的情况,直接令 K j = e i ( t j − p j Δ x ) ω K_j=e^{i(t_j-p_j\Delta x)\omega} Kj=ei(tjpjΔx)ω即可。

一般情况也存在通解,只不过表达式比较复杂,并且并没有在算法中使用,所以就不推导了。

算法

基本算法是:

  1. 将地震数据变换到 f − x f-x fx域;
  2. 提取某一频率切片数据进行自回归表示(需要设定长度),求取自回归系数;
  3. 利用求得的自回归系数对频率切片进行自回归;
  4. 对每一频率切片重复2-3;
  5. 将数据变回到 t − x t-x tx域。

如果数据非线性很强,需要分窗口处理。

代码

代码源自SeismicLab工具包,fx_decon程序,只摘录其核心部分。

  aux_in  = DATA_FX(k,:)'; %提取一个频率切片
  [aux_out_f,aux_out_b] = ar_modeling(aux_in,lf,mu); %自回归函数,lf为回归滤波器长度,mu应该是最二乘添加的约束项权重。

ar_modeling的核心代码为:

% backward ar-modeling 此部分为向后ar回归,同时可以再次进行向前ar回归,将两次结果作平均作为最后结果。

   y  = x(1:nx-lf,1);    %输出
   C  = x(2:nx-lf+1,1);  
   R  = x(nx-lf+1:nx,1);
   M = hankel(C,R);      %输入,M*ab=y结构如下
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   x_2          x_3 ...         x_lf+1      a_1     x_1
   x_3          x_4 ...         x_lf+2  *   a_2  =  x_2
   ...  
   x_nx-lf+1    x_nx-lf+2 ...   x_nx        a_lf    x_nx-lf
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   B = M'*M;  beta = B(1,1)*mu/100;     %两边同时乘以M',M'*M*ab=M'*y
   ab = (B + beta*eye(lf))\M'*y;        %ab=(M'M+mu*I)^-1*M'y 加入权重
   yb = M*ab;                           %重新做滤波得到去噪后数据

总结

在分析多线性同向轴的自回归模型是所用理论虽不困难,但也需要一些技巧,通过分别将含有 K j i K_j^i Kji(对任意 i i i)的项组合然后分别另其为零即可推导出自回归性质。这篇短文给出了所有的推导细节,作为之后的理论基础,在Spitz f − x f-x fx插值(据作者所知,去噪称为 f − x f-x fx反褶(卷)积,插值称为 f − x f-x fx预测滤波,因为包含一步预测)、MSSA、降秩方法中都用到类似的推导。

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值