最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

dsp.TimeScope

時間領域信号の表示と測定

説明

dsp.TimeScope System object™ は時間領域信号を表示します。スコープを使用して、信号値の測定、ピークの検出、バイレベル測定と統計の表示を行うことができます。

スコープで時間領域信号を表示するには、以下を実行します。

  1. dsp.TimeScope オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とは (MATLAB)を参照してください。

オシロスコープの機能:

  • トリガー — イベントが発生したときに反復信号を同期して、表示を一時停止するようにトリガーを設定します。

  • カーソルの測定 — 垂直および水平カーソルを使用して信号値を測定します。

  • 信号の統計 — 選択した信号の最大値、最小値、ピーク間の差、平均値、中央値および RMS 値が表示されます。

  • ピークの検出 — 最大値を検出し、それらが発生する x 軸の値を表示します。

  • バイレベル測定 — 遷移、オーバーシュート、アンダーシュートおよびサイクルを測定します。

測定値とトリガーの詳細情報については、時間スコープの構成を参照してください。

スコープの表示機能:

  • 複数の信号 — 複数の入力端子を使用して、同じ y 軸 (表示) 上で複数の信号をプロットします。

  • 複数の y 軸 (表示) — 複数の y 軸を表示します。すべての y 軸が x 軸上に共通の時間範囲をもっています。

  • パラメーターの変更 — シミュレーション前およびシミュレーション中にスコープのパラメーター値を変更します。

  • 軸のオートスケーリング — シミュレーション中またはシミュレーションの最後にオートスケーリングします。座標軸の上下に余白が描画されます。

作成

説明

scope = dsp.TimeScope は Time Scope System object の scope を返します。このオブジェクトは、時間領域内の実数値と複素数値の浮動小数点信号と固定小数点信号を表示します。

scope = dsp.TimeScope(numInputs,sampleRate) は Time Scope を作成し、NumInputPorts プロパティを numInputs に、SampleRate プロパティを sampleRate に設定します。

scope = dsp.TimeScope(___,Name,Value) はプロパティを名前と値のペアとして設定します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計 (MATLAB)を参照してください。

よく使用される項目

入力端子の数。正の整数として指定します。個別の入力から入ってくる各信号はスコープで個別のチャネルになります。このプロパティの値と同じ入力の数でスコープを呼び出さなければなりません。

入力信号のサンプルレート (Hz 単位) を指定します。

スカラー、または NumInputPorts の値に等しい長さをもつ数値ベクトルを指定できます。サンプルレートの逆数によって、表示された信号に存在する時間軸の点の間の間隔が決まります。SampleRate をスカラー値に設定し、NumInputPorts が 1 よりも大きい場合、オブジェクトはすべての入力で同じサンプルレートを使用します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

正の数値のスカラー値として時間範囲を秒単位で指定します。時間軸の範囲は、次のように計算されます。

  • 時間軸の範囲の最小値 = min(TimeDisplayOffset)

  • 時間軸の範囲の最大値 = max(TimeDisplayOffset) + TimeSpan

調整可能: Yes

依存関係

このプロパティを使用するには、FrameBasedProcessingfalse に設定するか、あるいは FrameBasedProcessingtrue に、TimeSpanSource'Property' に設定します。

UI の使用

[コンフィギュレーション プロパティ] を開きます。[時間] タブで、[時間範囲] を設定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

表示されている時間範囲を超える新規データをスコープが表示する方法を指定します。

  • ラップ — このモードでは、新しいデータが時間軸の範囲の最大値に達するまでスコープはこのデータを表示します。データがスコープ ウィンドウで時間軸の範囲の最大値に到達すると、スコープは表示をクリアします。その後、スコープは時間オフセット値を更新し、後続のデータ ポイントの表示を時間軸の範囲の最小値から開始します。

  • スクロール — このモードでは、スコープは古いデータを左へスクロールして、新しいデータを表示するスペースをスコープ表示の右側に作ります。このモードはグラフィックスの負荷が高いので実行速度に影響が出る場合があります。ただし、デバッグや時変信号の監視には役立ちます。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[時間] タブで、[時間範囲オーバーラン アクション] を設定します。

データ型: char | string

フレームベース入力信号の時間範囲のソースを次のように指定します。

  • 'Property' – オブジェクトは x 軸の範囲を TimeDisplayOffset プロパティおよび TimeSpan プロパティから導出します。

  • 'Auto' – 時間軸の範囲は TimeDisplayOffset プロパティと SampleRate プロパティ、および FrameSize (各入力信号の行数) から導出されます。範囲は次のように計算されます。

    • 時間軸の範囲の最小値 = min(TimeDisplayOffset)

    • 時間軸の範囲の最大値 = max(TimeDisplayOffset) + max(1/SampleRate.*FrameSize)

調整可能: Yes

依存関係

このプロパティを使用するには、FrameBasedProcessingtrue に設定します。

UI の使用

[コンフィギュレーション プロパティ] を開きます。[時間] タブで、[時間範囲] を設定します。

データ型: char | string

スコープによる座標軸のスケーリングのタイミングを指定します。有効な値は、次のとおりです。

  • "Auto" — シミュレーションの実行中および実行後に、データを近似させるためにスコープが必要に応じて座標軸をスケーリングします。

  • "Manual" — スコープは座標軸を自動スケーリングしません。

  • "OnceAtStop" — シミュレーションが停止したときに、スコープは座標軸をスケーリングします。

  • "Updates" — スコープは 10 回の更新後に 1 回のみ座標軸をスケーリングします。

UI の使用

[ツール][座標軸のスケーリング] を選択します。

データ型: char | string

詳細設定

スコープの名前を文字ベクトルまたは string スカラーとして指定します。この名前はスコープの Figure ウィンドウのタイトルとして表示されます。スコープ プロットのタイトルを指定するには、Title プロパティを使用します。

調整可能: Yes

データ型: char | string

ピクセル単位でのスコープ ウィンドウの位置。[left bottom width height] という形式の 4 要素ベクトルとしてスコープ ウィンドウのサイズと位置で指定します。このプロパティの値を変更することで、スコープ ウィンドウを画面上の特定の位置に配置できます。

既定の設定では、ウィンドウは幅 410 ピクセル、高さ 300 ピクセルで画面中央に表示されます。厳密な位置の値は画面の解像度により異なります。

調整可能: Yes

  • true — スコープは後で使用するためにデータのログを記録し、ウィンドウを定期的に更新します。

  • false — スコープはスコープが呼び出されるたびに更新されます。

シミュレーション速度は、このプロパティが true に設定されているときのほうが高速になります。

調整可能: Yes

UI の使用

[シミュレーション][更新を減らして性能を改善] を選択します。

レイアウト グリッドの次元を 2 要素ベクトルで指定します。[numberOfRows,numberOfColumns]。最大 16 行および 16 列を使用できます。

例: scope.LayoutDimensions = [2,4]

調整可能: Yes

UI の使用

[表示][レイアウト] を選択します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

使用するプロットのタイプを指定します。

  • Line — 線グラフ。関数 line または plot に似ています。

  • Stairs — 階段状グラフ。関数 stairs に似ています。階段状グラフは、デジタル的にサンプリングされたデータの時間履歴のグラフを描画する際に有効です。

調整可能: Yes

UI の使用

[スタイル] プロパティを開きます。[プロット タイプ] を設定します。

データ型: char | string

スコープのメモリ キャッシュに保持するバッファーのサイズを指定します。メモリはシステムで利用可能な容量に制限されます。信号に M 行のデータがあり、各行のデータ点が N 個の場合、タイム ステップあたりのデータ点の数は M x N です。これにモデルのタイム ステップの数を掛けると必要なバッファー長を計算できます。たとえば、10 行のデータがあり、各行のデータ点の数が 100 個の場合、タイム ステップが 10 であれば、バッファー長として 10,000 (10 x 100 x 10) を入力します。

UI の使用

[データ履歴プロパティ] を開きます。[バッファー長] を設定します。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

  • true — フレームベースの処理を有効にします。

  • false — サンプルベースの処理を有効にします。

UI の使用

[コンフィギュレーション プロパティ] を開きます。[メイン] タブで [入力処理] を設定します。

時間軸の記述に使用する単位を指定します。以下のオプションのいずれかを選択します。

  • Metric — このモードでは、スコープは時間軸上の時間を最も適切な測定単位に変換します。使用される単位には、ミリ秒、マイクロ秒、ナノ秒、分、日などがあります。スコープは、スコープ ウィンドウの時間軸の範囲の最小値と時間軸の範囲の最大値に基づいて適切な測定単位を選択します。

  • Seconds — このモードでは、スコープは時間軸上の単位を常に秒で表示します。

  • None — このモードでは、スコープは時間軸上に単位を表示しません。時間軸には、Time という単語のみが表示されます。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[時間] タブで、[時間単位] を設定します。

データ型: char | string

x 軸上のデータをどの程度移動させるかを秒単位で指定します。信号の値は変更されず、表示される x 軸のみが変更されます。

このプロパティをスカラーとして指定すると、この値は全チャネルの時間表示のオフセットになります。

ベクトルを指定すると、各ベクトル要素が対応するチャネルの時間オフセットになります。入力チャネルの数よりも小さい長さのベクトルでは、残りのチャネルで時間表示のオフセットは 0 に設定されます。入力チャネルの数よりも大きい長さのベクトルでは、余分なベクトル要素は無視されます。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[時間] タブで、[時間表示オフセット] を設定します。

時間軸のラベルをスコープ表示にどのように表示するかを指定します。

  • 'All' — 時間軸ラベルはすべての表示領域で表示されます。

  • 'Bottom' — 時間軸ラベルは各列の一番下の表示領域に表示されます。

  • 'None' — ラベルは表示領域に表示されません。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[時間] タブで、[時間軸ラベル] を設定します。

データ型: char | string

スコープを座標軸の最大化モードで表示するかどうかを指定します。このモードでは、座標軸は表示領域全体に適合するように拡張されます。表示スペースを確保するために、ラベルは表示されません。その代わり、プロットされたデータの上に目盛りの値が表示されます。以下のオプションのいずれかを選択します。

  • "Auto" — すべての表示に対して Title プロパティおよび YLabel プロパティが空の場合にのみ、すべての表示で軸が最大化されて表示されます。これらのプロパティのどちらか一方にでも表示の値を入力すると、軸は最大化されません。

  • "On" — すべての表示で座標軸が最大化されます。Title および YLabel プロパティに入力した値はすべて非表示になります。

  • "Off" — いずれの軸も最大化されません。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[メイン] タブで、[座標軸の最大化] を設定します。

データ型: char | string

表示

整数の表示番号でアクティブ表示を指定し、関連するプロパティを取得または設定します。表示領域の番号は、その列方向の配置インデックスに対応します。このプロパティで、どの表示領域の座標軸の色、ラインのプロパティ、マーカーのプロパティ、表示/非表示を変更するかを制御します。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[表示] タブで、[アクティブな表示] を設定します。

表示タイトルを文字ベクトルまたは string として指定します。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[タイトル] を設定します。

データ型: char | string

入力名を付けた凡例を表示するには、このプロパティを true に設定します。

表示する信号を凡例から制御できます。この制御は、[スタイル] ダイアログ ボックスでの可視性の変更と等価です。スコープの凡例で、信号名をクリックするとそのスコープ内の信号が非表示になります。信号を表示する場合は、信号名を再度クリックします。信号を 1 つだけ表示する場合は、信号名を右クリックします。すべての信号を表示するには Esc キーを押します。

メモ

凡例には信号が最初の 20 個のみ表示されます。追加の信号を凡例から表示または制御することはできません。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[表示] タブの [凡例の表示] を選択します。

データ型: 論理値

このプロパティを true に設定すると、スコープの時間軸ラベルが表示されます。このプロパティを false に設定すると、スコープの時間軸ラベルは表示されませんが、目盛りと時間軸の他の項目は表示されます。このプロパティが適用されるのは、TimeAxisLabels プロパティが All または Bottom の場合だけです。

調整可能: Yes

依存関係

ラベル付けされる表示領域の軸を制御するには、ActiveDisplay プロパティを使用します。

UI の使用

[コンフィギュレーション プロパティ] を開きます。[時間] タブで、[時間軸ラベルの表示] を設定します。

入力チャネルの名前を文字ベクトルの cell 配列として指定します。名前は凡例、[スタイル] ダイアログ ボックス、[測定値] パネルに表示されます。名前が指定されない場合、チャネルには Channel 1Channel 2 などのラベルが付けられます。

調整可能: Yes

依存関係

チャネル名を表示するには、ShowLegendtrue に設定します。

UI の使用

凡例で、チャネル名をダブルクリックします。

データ型: char

このプロパティを true に設定すると、プロットでグリッド線が表示されます。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[表示] タブで、[グリッド表示] を設定します。

このプロパティを true に設定した場合、スコープは同一のアクティブな表示内で、入力信号の振幅と位相を 2 つの個別の軸でプロットします。このプロパティを false に設定した場合、スコープは同一のアクティブな表示内で、入力信号の実数部と虚数部を 2 つの個別の軸でプロットします。

このプロパティは、入力信号が複素数値の場合に便利です。このプロパティをオンにすると、実数値の入力信号の位相に影響を及ぼします。入力信号の振幅が非負である場合、位相は 0 度です。入力信号の振幅が負である場合、位相は 180 度です。

調整可能: Yes

UI の使用

[コンフィギュレーション プロパティ] を開きます。[表示] タブで [信号を振幅および位相としてプロット] を選択します。

y 軸の範囲を 2 要素の数値ベクトルとして指定します。形式は [ymin, ymax] です。

PlotAsMagnitudePhasefalse の場合、既定の設定は [-10,10] です。PlotAsMagnitudePhasetrue の場合、既定の設定は [0,10] です。

調整可能: Yes

依存関係

PlotAsMagnitudePhasetrue に設定すると、このプロパティにより振幅プロットの y 軸範囲のみ指定されます。位相プロットの y 軸範囲は常に [-180,180] となります。

UI の使用

[コンフィギュレーション プロパティ] を開きます。[表示] タブで、[Y 軸範囲 (最小)][Y 軸範囲 (最大)] を設定します。

y 軸の左に表示するスコープの文字を指定します。

調整可能: Yes

依存関係

このプロパティは PlotAsMagnitudePhasefalse である場合にのみ適用されます。PlotAsMagnitudePhasetrue に設定すると、2 つの y 軸ラベルが読み取り専用の値になります。振幅プロットおよび位相プロットにおける y 軸のラベルは、それぞれ "Magnitude" および "Phase" に設定されます。

UI の使用

[コンフィギュレーション プロパティ] を開きます。[表示] タブで [Y ラベル] を設定します。

データ型: char | string

使用法

R2016b より前のバージョンでは、関数 step を使用して System object アルゴリズムを実行します。step に対する引数は作成したオブジェクトであり、この節で示す引数が次に続きます。

たとえば、y = step(obj,x)y = obj(x) は同等の演算を実行します。

説明

scope(signal) は Time Scope 表示領域で信号 signal を表示します。

NumInputPorts プロパティを N に設定すると、scope(signal,signal2,...,signalN) は信号 signalsignal2、...、signalN を Time Scope 表示領域に表示します。この場合、signal1signal2、...、signalN は異なるデータ型と次元をもつ可能性があります。

入力引数

すべて展開する

可視化する 1 つ以上の入力信号を dsp.TimeScope で指定します。信号はデータ型と次元が異なる場合があります。

例: scope(signal1,signal2)

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

showDisplay scope window
hideHide scope window
isVisibleDetermine visibility of scope
stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

シミュレーションを最初から再開するには、reset を呼び出してスコープ ウィンドウの表示をクリアします。release の呼び出し後に reset を呼び出さないでください。

すべて展開する

dsp.SineWave オブジェクトと dsp.TimeScope オブジェクトを作成します。スコープを実行して信号を表示します。

sine = dsp.SineWave('Frequency',100,'SampleRate',1000);
sine.SamplesPerFrame = 10;
scope = dsp.TimeScope('SampleRate',sine.SampleRate,'TimeSpan',0.1);
for ii = 1:10
     x = sine();
     scope(x);
end

release メソッドを実行してプロパティ値と入力特性を変更できるようにします。スコープは座標軸を自動スケーリングします。

release(scope)

サンプリング周波数が 1000 Hz の dsp.SineWave を作成します。正弦波を 2 で間引きする dsp.FIRDecimator オブジェクトを作成します。2 つの入力端子をもつ dsp.TimeScope オブジェクトを作成します。

Fs = 1000;  % Sampling frequency
sine = dsp.SineWave('Frequency',50,...
   'SampleRate',Fs, ...
   'SamplesPerFrame',100);
decimate = dsp.FIRDecimator; % To decimate sine by 2
scope = dsp.TimeScope(2,[Fs Fs/2], ...
   'TimeDisplayOffset',[0 38/Fs], ...
   'TimeSpan',0.25, ...
   'YLimits',[-1 1], ...
   'ShowLegend', true);

dsp.SineWave オブジェクトを呼び出して正弦波信号を作成します。dsp.FIRDecimator オブジェクトを使用して、元の信号に等しいが係数 2 で間引きされた 2 番目の信号を作成します。dsp.TimeScope オブジェクトを呼び出して信号を表示します。

for ii = 1:2
     xsine = sine();
     xdec = decimate(xsine);
     scope(xsine,xdec)
end
release(scope)

Time Scope ウィンドウを閉じ、変数をクリアします。

clear scope Fs sine decimate ii xsine xdec

複素数値の正弦波信号を示すベクトルを作成し、dsp.TimeScope オブジェクトを作成します。スコープを呼び出して信号を表示します。

fs = 1000;
t = (0:1/fs:10)';
CxSine = cos(2*pi*0.2*t) + 1i*sin(2*pi*0.2*t);
CxSineSum = cumsum(CxSine);
scope = dsp.TimeScope(1,fs,'TimeSpanSource','Auto','ShowLegend',1);
scope(CxSineSum);
scope.AxesScaling = 'Auto';

既定の設定では、入力が複素数値の信号の場合、Time Scope は同じ座標軸上で実数部と虚数部をプロットします。これらの実数部と虚数部は、同じアクティブな表示領域内の同じ座標軸上で異なる色のラインとして表示されます。

PlotAsMagnitudePhase プロパティを true に変更し、release を呼び出します。

scope.PlotAsMagnitudePhase = true;
release(scope)

Time Scope は同一のアクティブな表示内で、入力信号の振幅と位相を 2 つの個別の座標軸でプロットします。上の座標軸に振幅が表示され、下の座標軸に位相 (度単位) が表示されます。

2 チャネル定数信号を表すベクトルを作成します。3 チャネル定数信号を表す別のベクトルを作成します。2 つの入力端子をもつ dsp.TimeScope オブジェクトを作成します。スコープを呼び出して信号を表示します。

fs = 10;
sigdim2 = [ones(5*fs,1) 1+ones(5*fs,1)];                   % 2-dim 0-5 s
sigdim3 = [2+ones(5*fs,1) 3+ones(5*fs,1) 4+ones(5*fs,1)];  % 3-dim 5-10 s
scope = dsp.TimeScope(2,fs,'TimeSpanSource','Property');
scope.PlotType = 'Stairs';
scope.TimeSpanOverrunAction = 'Scroll';
scope.TimeDisplayOffset = [0 0 5];
scope([sigdim2; sigdim3(:,1:2)], sigdim3(:,3));

この例では、Time Scope ブロックに対する入力信号のサイズがシミュレーションの進捗と共に変化します。シミュレーション時間が 5 秒未満のときは、Time Scope は 2 チャネル信号 sigdim2 のみをプロットします。5 秒経過後は、Time Scope は 3 チャネル信号 sigdim3 もプロットします。

release メソッドを実行してプロパティ値と入力特性を変更できるようにします。スコープは座標軸を自動スケーリングします。

release(scope)

Time Scope ウィンドウを閉じ、作成した変数をワークスペースから削除します。

clear scope fs sigdim2 sigdim3

クロック入力信号の作成と表示

クロック データ xt を読み込みます。サンプル時間 ts を検出します。

load clockex
ts = t(2)-t(1);

dsp.TimeScope オブジェクトを作成し、そのオブジェクトを呼び出して信号を表示します。座標軸のオートスケールとプロパティ値および入力特性の変更を有効にするために、release を呼び出します。

scope = dsp.TimeScope(1,1/ts,'TimeSpanSource','Auto');
scope(x);
release(scope)

[バイレベル測定] パネルを使用した整定時間の確認

1.Time Scope メニューから、[ツール]、[測定値]、[バイレベル測定] を選択します。

2.[設定] ペイン、[オーバーシュート/アンダーシュート] ペインの順に展開します。

最初は、立ち上がりエッジの [整定時間] パラメーターは Time Scope で表示されません。これは、[シーク整定] パラメーターの既定値がシミュレーション実行時間全体より長くなっているためです。

3.[シーク整定] ボックスに「2e-6」と入力し、Enter キーを押します。

Time Scope で立ち上がりエッジの [整定時間] の値の表示が 118.392 ns になります。

この整定時間の値は、実際には、5 つの立ち上がりエッジの整定時間すべての統計的な平均です。1 つの立ち上がりエッジだけの整定時間を表示するために、その遷移を拡大することができます。

4.Time Scope ツール バーで、[ズーム] ボタンの隣の矢印をクリックし、[X 軸ズーム] ボタンをクリックします。

5.時間軸上の 2 マイクロ秒付近の表示領域をクリックします。

6.カーソルを右方向へドラッグして時間軸上の 4 マイクロ秒付近で離します。

Time Scope で立ち上がりエッジの [整定時間] の値が新しい時間枠を反映するように更新されます。

7.Time Scope を閉じ、作成した変数をワークスペースから削除します。

clear scope x t ts

Time Scope の [ピークの検出] パネルを使用して心拍数を測定します。

ECG 信号の作成と表示

心電図 (ECG) 信号を作成します。心拍信号の生成にはカスタム関数 ecg が役立ちます。

function x = ecg(L)
a0 = [0,  1, 40,  1,   0, -34, 118, -99,   0,   2,  21,   2,   0,   0,   0];
d0 = [0, 27, 59, 91, 131, 141, 163, 185, 195, 275, 307, 339, 357, 390, 440];
a = a0 / max(a0);
d = round(d0 * L / d0(15));
d(15) = L;
for i = 1:14
    m = d(i) : d(i+1) - 1;
    slope = (a(i+1) - a(i)) / (d(i+1) - d(i));
    x(m+1) = a(i) + slope * (m - d(i));
end

x1 = 3.5*ecg(2700).';
y1 = sgolayfilt(kron(ones(1,13),x1),0,21);
n = (1:30000)';
del = round(2700*rand(1));
mhb = y1(n + del);
ts = 0.00025;

dsp.TimeScope オブジェクトを作成し、そのオブジェクトを呼び出して信号を表示します。座標軸のオートスケールとプロパティ値および入力特性の変更を有効にするために、release を呼び出します。

scope = dsp.TimeScope(1,1/ts,'TimeSpanSource','Auto');
scope(mhb);
release(scope)

心拍数の測定

[ピークの検出] の測定値を使用して心拍の間隔を測定します。

  1. Time Scope メニューで、[ツール]、[測定値]、[ピークの検出] を選択します。

  2. [設定] ペインを展開します。

  3. [ピークの最大数] プロパティに「10」と入力し、Enter キーを押します。

Time Scope の [ピーク] ペインに 10 個のピーク振幅値およびその発生した時刻の一覧が表示されます。

ピーク値の一覧から、各心拍の間に 0.675 秒の一定の時間差があることがわかります。次の式に基づいて、この ECG 信号の心拍は毎分約 89 回であると計算できます。

Time Scope ウィンドウを閉じ、作成した変数をワークスペースから削除します。

clear scope x1 y1 n del mhb ts

ヒント

  • スコープ ウィンドウを閉じて、関連するデータをクリアするには、MATLAB® の関数 clear を使用します。

  • スコープ ウィンドウを非表示または表示するには、関数 hideshow を使用します。

  • MATLAB の関数 mcc を使用して、Scope を含むコードをコンパイルします。

    アプリケーション内に複数のコンパイル済みコンポーネントがある場合、スコープ コンフィギュレーション ダイアログを開くことができません。

拡張機能

参考

オブジェクト

System object

ブロック

R2011a で導入