主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

extractsigroi

信号の関心領域の抽出

説明

sigroi= extractsigroi (xroilimsは,roilimsで指定されたROI範囲に基づいて,入力信号ベクトルxの関心領域(ROI)を抽出します。

sigroi= extractsigroi (xroilimsconcatは,concat真正的に指定した場合に関心領域を抽出し,それらを連結します。

すべて折りたたむ

45サンプルのランダムな信号が取り得る関心領域を表す2列の行列について考えてみます。関心領域に対応する信号サンプルを抽出します。

x = randn(45岁,1);Roilims = [5 10;15 25;30 35];sigroi = extractsigroi (x, roilims);

信号をプロットし,関心領域を強調表示します。

情节(x)Kj = 1:length(sigroi) plot(roilims(Kj,1):roilims(Kj,2),sigroi{Kj})结束持有

オフィスビル内の温度計が約4か月間収集した一連の温度データについて考えてみます。温度計は30分ごとに読み取りを行っています。したがって,サンプルレートは48測定/日になります。温度を摂氏に変換し,データをプロットします。

负载officetemptempC = (temp-32) * 5/9;fs = 48;t = (0:length(tempC) - 1)/fs;情节(t, tempC)包含(的时间(天)) ylabel ('温度({}^\circC)'

图中包含一个坐标轴。轴包含一个线型对象。

温度データを29日間に分割する関心領域の範囲を作成します。

Roilims = [1 29;30 58;59 87;88 116);

関心領域を抽出します。各期間の平均温度を計算し,値を表示します。

sigroi = extractsigroi (tempC roilims * fs);cellfun (@mean sigroi) '
ans =1×422.8819 22.3073 22.7633 23.0066

45サンプルのランダムな信号が取り得る関心領域を表す2列の行列について考えてみます。関心領域に対応する信号サンプルを抽出します。サンプルを単一のベクトルに連結します。

x = randn(45岁,1);Roilims = [5 10;15 25;30 35];sigroi = extractsigroi (x, roilims,真实);

信号をプロットし,関心領域を強調表示します。

plot(x) y = NaN(size(x));ROI = roilims(Kj,1):roilims(Kj,2)y (roi) = sigroi(1:长度(roi));sigroi(1:长度(roi)) = [];结束持有情节(y)

图中包含一个坐标轴。轴线包含2个线型对象。

オフィスビル内の温度計が4か月間収集した一連の温度データについて考えてみます。温度計は30分ごとに読み取りを行っています。したがって,サンプルレートは48測定/日になります。温度を摂氏に変換します。

负载officetemptempC = (temp-32) * 5/9;fs = 48;

少なくとも24時間の開きがある5つのランダムな2週間の期間に対応する関心領域(ROI)の範囲を作成します。それらの日の温度測定値を監査用に使用します。

r = 5;w = 14 * fs;s = 1 * fs;总部= histcounts (randi (r + 1, 1,长度(tempC) - r * w - (r1) * s), (1: r + 2) 1/2);T = (1 + (0:r-1)*(w+s) + cumsum(hq(1:r)) ';Roilims = [t t+w-1];

関心領域を抽出します。観測された各関心領域の平均温度を計算し,値を表示します。

sigroi = extractsigroi (tempC roilims);cellfun (@mean sigroi) '
ans =1×522.8075 22.2586 22.4256 22.9018 23.1457

関心領域を再度抽出しますが,今回はサンプルを1つのベクトルに連結します。観測された領域全体での平均温度を計算します。

sigroic = extractsigroi (tempC roilims,真的);avgTFc =意味着(sigroic)
avgTFc = 22.7078

ROI範囲をバイナリシーケンスに変換し,マスクを作成します。時間を週で表します。

m = sigroi2binmask (roilims、长度(tempC));msk = signalMask (m,“SampleRate”fs * 7日,“类别”“审计”);

データをプロットし,四角形のパッチで関心領域を可視化します。

plotsigroi (msk, tempC,真)包含(的时间(周)) ylabel ('温度({}^\circC)'

图中包含一个坐标轴。轴包含6个类型为line, patch的对象。

入力引数

すべて折りたたむ

入力信号。ベクトルで指定します。

例:25岁的唧唧声(0:1/1e3:1 50)は1 kHzでサンプリングされたチャープを指定します。

データ型:|
複素数のサポート:あり

関心領域の範囲。2列の正の整数の行列として指定します。roilimsの我番目の行には,信号の我番目の関心領域の開始サンプルと終了サンプルに対応する非減少インデックスが格納されます。

例:(5 8;12 20;18 25)は3つの領域をもつ2列の関心領域行列を指定します。

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

抽出した信号領域を連結するオプション。逻辑値として指定します。

データ型:逻辑

出力引数

すべて折りたたむ

信号の関心領域。细胞配列またはベクトルとして返されます。

  • concatに設定した場合,sigroiは细胞配列になります。sigroiの我番目のセルには,roilimsで指定された我番目の関心領域に対応する信号サンプルが格納されます。

  • concat真正的に設定した場合,sigroiは抽出した信号サンプルすべてを連結したベクトルになります。

拡張機能

R2020bで導入