MATLAB Answers

スペクトログラムから​信号強度の高い場所を​見つける方法

3 ビュー (過去 30 日間)
一輝 植野
一輝 植野 2021 年 1 月 11 日
回答済み: Shunichi Kusano 2021 年 1 月 12 日
画像処理で速度波形にS変換(S_transform)を適用し表示されたスペクトログラムで、
x軸を時間、y軸を周波数としたとき、特定の範囲の周波数(たとえば、0.5~1.0hzの間)から
もっとも信号強度の高い場所を探しその点の信号強度を数値で表す方法はなにかないでしょうか?

採用された回答

Shunichi Kusano
Shunichi Kusano 2021 年 1 月 12 日
こんにちは。
スペクトログラムの信号強度が配列として得られていると思いますので、
  1. 所望の周波数の範囲を表すindexを取得し、
  2. その範囲内で最大の信号強度とその位置を取得する
という流れで処理が可能です。
それぞれfind関数、max関数を組合わせて書きます。それぞれの使い方は詳細をご覧いただければと思います。なんとなくのコードだけ載せておきます。適宜読み替えてお使いください。
find = f > a & f < b; % 周波数範囲をインデックスとして取得.fが周波数を表すベクトル
p(~find,:) = 0; % 所望の周波数範囲外の信号強度はゼロとする。
pmax = max(p(:)); % 最大の信号強度値
[c,r] = find(p == max(p(:))); % その場所

その他の回答 (0 件)

タグ

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!