Main Content

marcumq

説明

Q = marcumq(a,b) は、非心度パラメーター a と引数 b について、次数 1 の Marcum Q 関数を計算します。この構文は、次数 m、m = 1 という "一般化 Marcum Q 関数" の特殊ケースの計算に使用されます。一般化 Marcum Q 関数の定義については、一般化 Marcum Q 関数を参照してください。

Q = marcumq(a,b,m) は、次数 m の一般化 Marcum Q 関数を計算します。

すべて折りたたむ

Marcum Q 関数のデータを生成する値の範囲を指定します。

b = (0:0.1:10)';

次数が 1、非心度パラメーター値が 02 である Marcum Q 関数の値で構成される 2 つの出力ベクトルを生成します。

Q1 = marcumq(0,b);
Q2 = marcumq(2,b);

結果の Marcum Q 関数をプロットします。

plot(b,[Q1 Q2])

Figure contains an axes object. The axes object contains 2 objects of type line.

入力引数

すべて折りたたむ

非心度パラメーター。非負の数値の配列として指定します。

メモ

いずれかの入力を配列として指定する場合は、その他のすべての入力を同じサイズの配列として指定するか、スカラーとして指定しなければなりません。入力がスカラーとして指定されると、関数はその入力を展開してその他の入力のサイズと一致させます。

データ型: double

Marcum Q 関数の引数。非負の数値の配列として指定します。

データ型: double

一般化 Marcum Q 関数の次数。正の整数の配列として指定します。

データ型: double

出力引数

すべて折りたたむ

Marcum Q 関数の値。範囲 [0, 1] の数値の配列として返されます。この出力のサイズは、入力引数のサイズと一致します。

データ型: double

詳細

すべて折りたたむ

一般化 Marcum Q 関数

次数 m の一般化 Marcum Q 関数は、以下によって定義されます。

Qm(a,b)=1am1bxmexp(x2+a22)Im1(ax)dx,

ここで、Im–1 は、次数 m–1 の第 1 種変形ベッセル関数です。

アルゴリズム

指定された入力について一般化 Marcum Q 関数の値を計算するために、この関数は、[3]の Shnidman によって示された手法に基づく計算を使用します。この資料では、2 つの誤差基準 (相対誤差基準および絶対誤差基準) について記述されています。この関数は、絶対誤差基準を使用します。

参照

[1] Cantrell, P., and A. Ojha. “Comparison of Generalized Q-function Algorithms (Corresp.).” IEEE® Transactions on Information Theory 33, no. 4 (July 1987): 591–96. https://doi.org/10.1109/TIT.1987.1057323.

[2] Marcum, J. “A Statistical Theory of Target Detection by Pulsed Radar.” IEEE Transactions on Information Theory 6, no. 2 (April 1960): 59–267. https://doi.org/10.1109/TIT.1960.1057560.

[3] Shnidman, D.A. “The Calculation of the Probability of Detection and the Generalized Marcum Q-function,” IEEE Transactions on Information Theory 35, no. 2 (March 1989): 389–400. https://doi.org/10.1109/18.32133.

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2008a で導入

参考