メインコンテンツ

信号アナライザー アプリの使用

アプリのワークフロー

信号アナライザー アプリを使用した信号の検証と比較の一般的なワークフローは以下のとおりです。

  1. 解析する信号の選択 — MATLAB® ワークスペースで利用可能な任意の信号を選択します。アプリは MATLAB の timetable 配列や timeseries オブジェクト、labeledSignalSet オブジェクトなど、固有の時間情報をもつ数値配列と信号を受け入れます。詳細については、信号アナライザーでサポートされるデータ型を参照してください。サンプル レート、数値ベクトル、duration 配列または MATLAB 式を使用して、信号に時間情報を追加します。

  2. 信号の前処理 — 平衡化、クリップ、分割、抽出、またはトリミングの操作を使用して信号を編集します。ローパス、ハイパス、バンドパス、またはバンドストップ フィルターの信号。トレンドを削除し、信号包絡線を計算します。移動平均、回帰、Savitzky-Golay フィルター、その他の方法を使用して信号を平滑化します。ウェーブレットを使用して信号のノイズを除去します。移動平均、自己回帰モデル、またはその他の方法を使用し、欠損データを検出して埋めます (R2024a 以降)。信号のサンプル レートを変更するか、不等間隔サンプル信号を等間隔グリッドに内挿します。独自のカスタム関数を使用して信号を前処理します。MATLAB 関数を生成して、前処理操作を自動化します。

  3. 信号の調査オーディオ信号を再生します (R2024a 以降)。データとそのスペクトル、スペクトログラム、またはスカログラムのプロットおよび比較を行います。時間領域、周波数領域、時間-周波数領域で特徴とパターンを探します。パワー スペクトルを計算する際の漏れ、分解能帯域幅、またはウィンドウの長さを制御します。パーシステンス スペクトルを計算して散発的な信号を解析し、再割り当てを使用してスペクトログラム推定値を鮮明にします。信号から関心領域を抽出します。

  4. Measure Signals — 信号、スペクトル、時間-周波数データを対話的に測定します。最小、最大、平均、および平方根平均二乗などの時間領域の信号統計を計算します。時間領域で信号のピークを見つけて注釈を付けます。測定テーブルで統計とピーク値を表示します。

  5. 解析の共有 — 表示をアプリからクリップボードにイメージとしてコピーします。信号を MATLAB ワークスペースにエクスポートするか、MAT ファイルに保存します。パワー スペクトル、スペクトログラム、またはパーシステンス スペクトルの推定値の計算と関心領域の抽出を自動化する MATLAB スクリプトを生成します。解析を後で、または別のマシンで再開するために、信号アナライザー セッションを保存します。

例:クジラの歌からの関心領域の抽出

4 kHz でサンプリングされた太平洋のシロナガスクジラのデータを含むオーディオ ファイルを読み取ります。ファイルは、コーネル大学の生物音響学研究プログラムが管理する動物発声ライブラリのものです。データの時間スケールは、音の高さを上げ鳴き声を聞き取りやすくするために係数 10 で圧縮されています。信号を MATLAB® の timetable に変換します。

[w,fs] = audioread("bluewhalesong.au");

whale = timetable(seconds((0:length(w)-1)'/fs),w);

"信号アナライザー" を開いて timetable をディスプレイにドラッグします。オーディオ信号を聞くには、ツールストリップの [再生] セクションで [再生] をクリックして、信号全体を 1 回再生します。[ループ再生] を選択してから [再生] をクリックすると、信号が繰り返し再生されます。ノイズの中で 4 つの特徴が目立っています。最初は "ふるえ声"、他の 3 つは "うめき声" として知られています。

Signal Analyzer app showing the "whale" signal in time domain.

[表示] タブで [スペクトル] をクリックしてスペクトル ビューを開き、[パナー] をクリックしてパナーをアクティブにします。パナーを使用して、約 2 秒の幅をもつズーム ウィンドウを作成します。ふるえ声の中央に配置されるように、ズーム ウィンドウをドラッグします。スペクトルによって、900 Hz のあたりに目立ったピークが示されます。

Signal Analyzer app showing three displays. "whale" signal in time domain (top) and in frequency domain (middle), and panner (bottom).

単一のふるえ声をハイパス フィルター処理により分離します。信号テーブルの信号を右クリックし、[複製] を選択してクジラの歌のコピーを作成します。元の信号をディスプレイから削除するために、信号テーブルで元の信号の名前の隣にあるチェック ボックスをオフにします。

信号テーブルで複製信号を選択した状態で、[アナライザー] タブの [前処理] をクリックします。[関数] ギャラリーから [Highpass] を選択します。[関数パラメーター] パネルで、通過帯域周波数を 925 Hz に、阻止帯域の減衰量を 80 dB に設定します。急峻さの既定の値を使用します。[適用] をクリックします。

Signal Analyzer app showing Function Parameters on the right section of the window.

[表示] タブに移動して、[データ カーソル] の下にある矢印をクリックして Two を選択し、2 つのデータ カーソルを配置します。1 つのカーソルは 1.3 秒に配置し、もう 1 つは 3.3 秒に配置します。[信号の抽出] の隣にある矢印をクリックして Between Time Cursors を選択し、ふるえ声を含む領域を抽出します。

Signal Analyzer app showing data cursors in the signal plots in time domain and frequency domain. The app also shows the Panner setting selection "Between Time Cursors".

表示をクリアし、元の信号を選択します。3 つのうめき声を抽出し、そのスペクトルを比較します。

  1. パナーのズーム ウィンドウを最初のうめき声の中央に置きます。スペクトルで 8 つのピークが明瞭に定義されました。これらのピークは、170 Hz の倍数に非常に近い位置にあります。[信号の抽出] の隣にあるボタンをクリックして Between Time Limits を選択します。

  2. [パナー] をクリックしてパナーを非表示にします。スペース キーを押して信号全体を表示します。[X 軸方向にズーム イン] をクリックし、時間ビューにおいて 2 番目のうめき声が中心の 2 秒間を拡大します。ここでも、170 Hz の倍数の位置にスペクトルのピークがあります。[信号の抽出] の隣にあるボタンをクリックして Between Time Limits を選択します。

  3. スペース キーを押して信号全体を表示します。3 番目のうめき声付近をズームインします。ここでも、170 Hz の倍数の位置にピークがあります。[信号の抽出] の隣にあるボタンをクリックして Between Time Limits を選択します。

元の信号をディスプレイから削除するために、信号テーブルで元の信号の名前の隣にあるチェック ボックスをオフにします。抽出した 3 つの関心領域を表示します。それぞれのスペクトルは、お互いのほぼ頂点の位置にあります。[グリッドの表示] をクリックして 2 番目の表示を追加し、抽出したふるえ声を含む関心領域とそのスペクトルをプロットします。ふるえ声とうめき声のスペクトルは著しく異なります。

Signal Analyzer app shows a second display with the signal "whale_w_Copy_ROI" in time domain and in frequency domain.

信号テーブルで抽出した信号を選択します。[アナライザー] タブの [エクスポート] をクリックし、MAT ファイルの 4 つの関心領域をエクスポートします。

"Export" dialog with the option "Export to MAT file" selected.

参考

|

トピック