研一通信新入门,研究课题为RIS的信道建模,最近遇到个小问题想请教广大网友,当广义Marcum Q函数的阶数为分数时如何用matlab实现呢,在matlab中已找到Marcumq函数,但仅当m为正整数时才适用。欢迎碰到过相同问题的朋友来交流。
你可以根据定义按照一定要求自己写一个(然后可以对比一下)
Q1 = marcumq(1,0,1)
Q2 = mymarcumq(1,0,1)
function Q = mymarcumq(a,b,m)
f = @(a,b,m,x) 1/a^(m-1)*x.^m.*exp(-(x.^2+a^2)/2).*besseli(m-1,a*x);
Q = integral(@(x)f(a,b,m,x), b, 100*b+100);% 设置一个小的值
end
比如这个mymarcumq函数
结果:
Q1 =
1
Q2 =
1.000000000000000
看着就很nice
同时你也可以看看分数阶数
Q2 = mymarcumq(1,1,1/2)
结果:
Q2 =
0.522750131948112