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

dsp.ZeroCrossingDetector

ゼロクロッシングの検出

説明

dsp.ZeroCrossingDetector System object™ は、信号がゼロを横切るまたは符号を変更する回数をカウントします。特定のチャネルの信号がゼロを横切るかどうかを検出するために、オブジェクトは次の条件を探します。ここで、xi-l は現在の信号値であり、xi-1 は前の信号値です。

  • xi < 0 および xi-1 > 0

  • xi > 0 および xi-1 < 0

  • ある正の整数値 L の場合は、xi < 0、xi-l = 0、および xi-L-1 > 0 です。ここで、0lL です。

  • ある正の整数値 L の場合、xi > 0、xi-l = 0、および xi-L-1 < 0 です。ここで、0lL です。

最初の入力値の場合、xi-1 と xi-2 はゼロです。

信号がゼロを横切るまたは符号を変更する回数をカウントするには、次のようにします。

  1. dsp.ZeroCrossingDetector オブジェクトを作成します。

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

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

作成

説明

zcd = dsp.ZeroCrossingDetector は、信号がゼロを横切る回数を計算するゼロクロッシング検出オブジェクトを返します。

使用法

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

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

説明

zcdOut = zcd(input) は入力のゼロクロッシングの回数を計算します。入力の各列は独立したチャネルとして扱われます。

入力引数

すべて展開する

ゼロクロッシングがオブジェクトによってカウントされるデータ入力。ベクトルまたは行列として指定します。

例: rand(20,1)-0.3

例: rand(20,2)-0.3

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

出力引数

すべて展開する

データ入力におけるゼロクロッシングの回数。次のいずれかとして返されます。

  • スカラー –– データ入力が列ベクトルである場合、スカラー出力はデータ入力内のゼロクロッシングの数です。

  • 行ベクトル –– データ入力が行列の場合、行のベクトル出力内の各要素は、データ入力の対応する列のゼロクロッシングの数です。

例: 10

例: [9,6]

データ型: uint32

オブジェクト関数

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

release(obj)

すべて展開する

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

すべて展開する

メモ: R2016a 以前のリリースを使用している場合、それぞれのオブジェクトの呼び出しを等価な step 構文で置き換えてください。たとえば、obj(x)step(obj,x) になります。

心電図データでのゼロクロッシング回数を検出します。

EcgData = ecg(500)';
zcd = dsp.ZeroCrossingDetector;
numZeroCross = zcd(EcgData)
numZeroCross = uint32
    4
plot(1:500,EcgData,'b',[0 500],[0 0],'r','linewidth',2)

拡張機能

参考

System object

R2012a で導入