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

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

Accepted Answer

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

More Answers (0)

Categories

Find more on 時間-周波数解析 in Help Center and File Exchange

Tags

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!