メインコンテンツ

dpss

離散扁長回転楕円体 (スレピアン) 列

説明

dpsSeq = dpss(seqLength,timeHalfBW) は、長さが seqLength の、最初の round(2*timeHalfBW) 個の離散扁長回転楕円体列 (DPSS)、すなわちスレピアン列を返します。

[dpsSeq,lambda] = dpss(seqLength,timeHalfBW) は、dpsSeq における列ベクトルの周波数領域エネルギー集中率 lambda を返します。この比率は、[–Fs/2,Fs/2] からの総エネルギーに対する、通過帯域 [–W,W] のエネルギー量を表し、変数 Fs はサンプル レートを表します。

[___] = dpss(seqLength,timeHalfBW,numSeq) は、timeHalfBW に等しい時間-半帯域積をもつ最初の numSeq 個のスレピアン列を返します。この関数は、エネルギー集中率の順にシーケンスを返します。

[___] = dpss(seqLength,timeHalfBW,interpMethod) では、ユーザーの作成した DPSS のデータベースから、内挿を使用して DPSS が計算されます。dpsssave を使用して DPSS のデータベースを作成し、結果として得られる dpss.mat ファイルが MATLAB® 検索パスにあることを確認します。

[___] = dpss(___,dpssLength) では、データベース dpss.mat にある長さ dpssLength の DPSS から内挿が行われます。

[___] = dpss(___,"trace") では、DPSS の計算に使用される手法がコマンド ウィンドウに表示されます。表示される可能性のある手法としては、直接内挿、スプライン内挿や線形内挿などがあります。

すべて折りたたむ

長さが 512 である、最初の 4 つの離散扁長回転楕円体列を作成します。シーケンスの計算に使用されるアルゴリズムを表示する場合は、2 の時間-半帯域積を指定し、"trace" フラグを含めます。

seq_length = 512; 
time_halfbandwidth = 2;
num_seq = 4;
[dps_seq,lambda] = dpss(seq_length,time_halfbandwidth,num_seq,"trace");
Computing the DPSS using direct algorithm...

シーケンスをプロットし、集中率を表示します。

plot(dps_seq)
title("Slepian Sequences, N = 512, NW = 2")
axis([0 512 -0.15 0.15])
legend("1st","2nd","3rd","4th")

Figure contains an axes object. The axes object with title Slepian Sequences, N = 512, NW = 2 contains 4 objects of type line. These objects represent 1st, 2nd, 3rd, 4th.

concentration_ratios = lambda'
concentration_ratios = 1×4

    0.9999    0.9976    0.9594    0.7218

時間-半帯域積、シーケンスの長さ、集中率を入力として関数 dpsssave を使用し、スレピアン列のデータベースを作成します。

dpsssave(time_halfbandwidth,dps_seq,lambda); 

スプライン内挿を使用して、dpss.mat から長さが 256 の離散扁長回転楕円体列を計算します。結果をプロットします。

spline_dps_seq = dpss(256,time_halfbandwidth,"spline");
plot(spline_dps_seq)
title("Interpolated Slepian Sequences, N = 256, NW = 2")
axis([0 512 -0.15 0.15])
legend("1st","2nd","3rd","4th")

Figure contains an axes object. The axes object with title Interpolated Slepian Sequences, N = 256, NW = 2 contains 4 objects of type line. These objects represent 1st, 2nd, 3rd, 4th.

入力引数

すべて折りたたむ

列の長さ。正の整数として指定します。

データ型: single | double

時間-半帯域積。正のスカラーで指定します。この引数は seqLength/2 より小さくなければなりません。

データ型: single | double

返されるシーケンスの数。正の整数または 2 要素ベクトルとして指定します。numSeq を 2 要素ベクトルとして指定した場合、出力されるスレピアン列は、numSeq(1) から numSeq(2) までの範囲となります。

データ型: single | double

内挿法。"spline" または "linear" として指定します。内挿法では、データベース内のスレピアン列が、timeHalfBW に等しい時間-半帯域積、および seqLength に最も近い長さと共に使用されます。

データ型: char | string

DPSS の長さ。正の整数として指定します。

データ型: single | double

出力引数

すべて折りたたむ

スレピアン列。行数が seqLength に等しく、列数が round(2*timeHalfBW) に等しい行列として返されます。

周波数領域エネルギー集中率。スレピアン列数に等しい長さの列ベクトルとして返されます。

詳細

すべて折りたたむ

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する