24小时热门版块排行榜    

查看: 1128  |  回复: 1

peng3726547

新虫 (初入文坛)

[求助] matlab傅里叶变换和积分问题求教

我有一个函数B(rho),他是以rho为自变量的一个已知函数,现在需要对其进行傅里叶变换,使得S(eta)=fft(B(rho)),变换后变成了以eta为自变量的函数,现在需要这个以eta为自变量的函数与一个已知的函数MTF(eta)相乘后,在eta为(-20:20)的范围内积分,如何用matlab实现。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

peng3726547

新虫 (初入文坛)

具体问题是这样:B(rho)是个时域的以rho为变量的函数,是是需要对其傅里叶变换后,变换到频域espolin的函数与另一个频域的函数进行相乘后积分,也就是说程序的问题在这里fft(B(eposilon)),应该怎么改?
function y=B(rho)
lamda=532e-9;
C_2n=1e-14;
R=3000;
k=2*pi/lamda;
aaa=k*rho.^2/(2*R);
Omega_21=1.23*C_2n*k^(7/6)*(2*R)^(11/6);
eta_y=3*(1+0.69*Omega_21^(6/5));
eta_x=2.61/(1+1.11*Omega_21^(6/5));
y=exp(0.15*Omega_21*eta_x^(7/6)*hypergeom(7/6,1,-k*rho.^2/(8*R)*eta_x)...
    +1.265*Omega_21*(k*rho.^2/(2*R)/eta_y).^(5/12).*besselk(5/6,(k*rho.^2/(2*R)*eta_y).^0.5))-1;
end

v=0:50;
dim=size(v,2);
y=zeros(size(v));
for i=1:dim
    fun=@(eposilon) abs(fft(B(eposilon)).*(abs(exp(-2.2*(log(eposilon./v(i))).^2))).^2;
    y(i)=integral(fun,0,250);
end
plot(v,y);
2楼2017-03-07 10:48:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 peng3726547 的主题更新
信息提示
请填处理意见