0

I have some reflectivity data which I am going to convolute with a Ricker/mexican hat wavelet to get a seismic trace. My problem is due to creating the wavelet. I would like the wavelet to have a dominant frequency of about 70Hz and the time step to be 0.19 ms, which is the same time step as in my reflectivity data. I have tried to use the function mexihat in MatLab and tuned the lb, ub and n parameters to solve my problem, but I can´t figure it out. Is there an easier way to solve my problem? Does anyone know a formula for the Ricker wavelet where the dominant frequency occurs?

Any help would be highly appreciated!

user1693865
  • 23
  • 2
  • 4

3 Answers3

2

From Large Data in MATLAB: A Seismic Data Processing Case Study :

% N : number of points you want to plot
[rw,t] = ricker(70,N,0.019);
plot(t,rw), xlabel('Time'), ylabel('Amplitude')
lucasg
  • 10,734
  • 4
  • 35
  • 57
  • Do you also have the function ricker? That is not a function preexisting in MatLab... – user1693865 Nov 01 '12 at 15:40
  • the link in my answer points toward the source code of the function : just copy paste it into a new ricker.m file and you're done. – lucasg Nov 01 '12 at 15:48
0
% using the equation below
% https://wiki.seg.org/wiki/Dictionary:Ricker_wavelet
ric = @(t,fm)(1-2*pi()^2*fm^2*t.^2)*exp(-1*pi()^2*fm^2*t.^2); % Ricker equation
t = 0:001:2;
plot(ric(t,20));
hold on;
plot(ric(t,5));
0

Beware, I tried the function lucasg linked to and found a typo in the formula calculating the wavelet:

s = (1-tau.*tau*f^2*pi^2).*exp(-tau.^2*pi^2*f^2);
should be replaced by:
s = (1-2*tau.*tau*f^2*pi^2).*exp(-tau.^2*pi^2*f^2);

Otherwise, you will get a mutant ricker with small feet

Tapalagro
  • 1
  • 2