- 所望の周波数の範囲を表すindexを取得し、
- その範囲内で最大の信号強度とその位置を取得する
スペクトログラムから信号強度の高い場所を見つける方法
4 ビュー (過去 30 日間)
古いコメントを表示
画像処理で速度波形にS変換(S_transform)を適用し表示されたスペクトログラムで、
x軸を時間、y軸を周波数としたとき、特定の範囲の周波数(たとえば、0.5~1.0hzの間)から
もっとも信号強度の高い場所を探しその点の信号強度を数値で表す方法はなにかないでしょうか?
0 件のコメント
採用された回答
Shunichi Kusano
2021 年 1 月 12 日
こんにちは。
スペクトログラムの信号強度が配列として得られていると思いますので、
という流れで処理が可能です。
それぞれfind関数、max関数を組合わせて書きます。それぞれの使い方は詳細をご覧いただければと思います。なんとなくのコードだけ載せておきます。適宜読み替えてお使いください。
find = f > a & f < b; % 周波数範囲をインデックスとして取得.fが周波数を表すベクトル
p(~find,:) = 0; % 所望の周波数範囲外の信号強度はゼロとする。
pmax = max(p(:)); % 最大の信号強度値
[c,r] = find(p == max(p(:))); % その場所
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で 時間-周波数解析 についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!