werner 反褶积的程序
我是第一次来论坛,请那位高手帮帮我,帮我找一些沃纳反褶积的资料和程序,谢谢!!! 个人只找到matlab和vc的,没发现fortran的谢谢你
那把你找到的matlab和vc的能否让我看看,谢谢阿 原帖由 800522 于 2008-1-15 11:23 发表 http://www.chinavib.com/forum/images/common/back.gif那把你找到的matlab和vc的能否让我看看,谢谢阿
留下你的email
我的邮箱是:wangyani0704@yahoo.com.cn
wangyani0704@yahoo.com.cn function o= ls_inv_filter(w,wavelet,mu)%LS_INV_FILTER: Spiking deconvolution
%
% This program computes an inverse filter (Spiking filter)
% from an estimate of a seismic wavelet. The actual
% output (convolution of the filter with the wavelet) is
% also computed.
%
% = LS_INV_FILTER(w,NF,Lag,mu)
%
% IN w: the wavelet
% NF: lenght if the inverse filter
% Lag: the position of the spike in the desired output
% mu: Prewhitening in %
%
% OUT f: the filter
% o: the ouput or convolution of the filter with
% the wavelet
%
% Example:
%
% w = ; % the wavelet
% = ls_inv_filter(w,20,1,2); % the filter and the output
% figure(1); plot(f);title('Filter')
% figure(2); plot(o);title('Wavelet \otimes Filter')
NW = max(size(w)); % lenght of the wavelet
NF=max(size(wavelet));
=size(wavelet);
if mc <= mr; wavelet = wavelet'; end;
=size(w);
if mc <= mr; w = w'; end;
b=conv(wavelet,w);
C = convmtx(w,NF); % Convolution matrix
R = C'*C+mu*eye(NF)/100.; % Toeplitz Matrix
rhs = C'*b; % Right hand side vector
f = inv(R)*rhs; % Filter
o = conv(f,w); % Actual output
% o=o(NF:NW+(NF-1),:);
% o=o(1:NW,:);
n=floor(NF/2);
o=o(n:NW+(n-1),:);
页:
[1]