雷克子波的matlab编程

雷克子波的matlab编程,第1张

呵呵,你的for循环族伍用错了。把t=-50:50提到for循环前。

clear all

close all

dt=5*exp(-12)

freq=10^5

t=-50:1:50

lt=length(t)

V0=1

for k=1:1:lt

v(k)=(1-2*((((4/freq)/dt+1)/2-t(k)+1)*freq*dt)^2)*exp(-((((4/freq)/dt+1)/2-t(k)+1)*freq*dt)^2)

end

plot(t,v)

title('Ricker-雷克子波')

xlabel('时间兆清或(ns)正枝')

ylabel('幅值')

还有你的dt和freq不太匹配,不过程序你可以自己改变的。有图片

雷克子波及其振幅谱的matlab输出:

fm=50%主频

dt=0.001%时间域采样间隔

number=100%采样点数

t=-number/2+1:number/2

a=(1-2*(pi*fm*t*0.001).^2).*exp(-(pi*fm*t*0.001).^2)

subplot(2,1,1)

plot(t,a)

title('Ricker-雷克子波')

xlabel('时间t(ms)')

ylabel('幅值A')

for i=1:100

f(i)=10*(i-1)%计算频率

end

Y=abs(fft(a))%fourier变换,取振幅谱

subplot(2,1,2)

plot(f,Y)

title('Ricker子波的振幅谱')

xlabel('频率f(hz)')

ylabel('振幅森亩胡谱')

%注耐旦:时间域采样间隔为0.001s,采样点数为100点,总的时间长度为0.1s,则频率域采样间隔此拦为10hz。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12566796.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存