user1693865
user1693865

Reputation: 23

Creating a wavelet in Matlab

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!

Upvotes: 0

Views: 7148

Answers (3)

Tapalagro
Tapalagro

Reputation: 1

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

Upvotes: 0

MIGUEL A POLANCO
MIGUEL A POLANCO

Reputation: 1

% 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));

Upvotes: 0

lucasg
lucasg

Reputation: 11002

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')

Upvotes: 2

Related Questions