在Matlab中创建小波

时间:2012-11-01 10:33:33

标签: matlab wavelet

我有一些反射率数据,我将用Ricker /墨西哥帽子小波进行卷积以得到地震痕迹。我的问题是由于创建小波。我希望小波的主导频率约为70Hz,时间步长为0.19 ms,这与我的反射率数据的时间步长相同。我曾尝试在MatLab中使用mexihat函数并调整lb,ub和n参数来解决我的问题,但我无法弄明白。有没有更简单的方法来解决我的问题?有没有人知道主导频率出现的Ricker小波公式?

任何帮助都将受到高度赞赏!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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));

答案 2 :(得分:0)

当心,我尝试了链接到lucasg的函数,并在计算小波的公式中发现了一个错字:

s = (1-tau.*tau*f^2*pi^2).*exp(-tau.^2*pi^2*f^2);
应该替换为:
s = (1-2*tau.*tau*f^2*pi^2).*exp(-tau.^2*pi^2*f^2);

否则,您将得到一只脚小的突变型虫