呵呵,你的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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)