Main Content

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

再代入したスペクトログラムを使用したリッジの検出と追跡

オオクビワコウモリ ("Eptesicus fuscus") の発する反響定位パルスを 7 マイクロ秒のサンプル レートで測定したデータを含むデータファイルを読み込みます。信号と時間情報を使用して MATLAB® timetable を作成します。

load batsignal

t = (0:length(batsignal)-1)*DT;
sg = timetable(seconds(t)',batsignal);

信号アナライザーを開いて、ワークスペース ブラウザーから信号テーブルに timetable をドラッグします。[グリッドの表示] をクリックして、2 つのディスプレイを並べて作成します。各ディスプレイを選択し、[時間-周波数] ボタンをクリックしてスペクトログラム表示を追加します。

両方のディスプレイに timetable をドラッグします。

[スペクトログラム] タブを選択します。各ディスプレイについて以下を行います。

  • パワーの範囲を -45 dB と -20 dB に設定します。

  • [漏れ] スライダーを使用して、RBW が約 4.5 kHz になるまで漏れを増やします。

  • 時間分解能を 280 マイクロ秒に指定し、隣接するセグメント間のオーバーラップを 85% に指定します。

右側のディスプレイの [再割り当て] をオンにします。

再割り当てされたスペクトログラムでは、3 つの時間-周波数リッジが明瞭に表示されます。リッジを追跡するために、右側のディスプレイを選択します。[表示] タブの [スクリプトの生成] をクリックして、Spectrogram Script を選択します。スクリプトがエディターで開きます。

% Compute spectrogram

% Generated by MATLAB(R) 9.12 and Signal Processing Toolbox 9.0.
% Generated on: 20-Dec-2021 10:38:20

% Parameters
timeLimits = seconds([0 0.002793]); % seconds
frequencyLimits = [0 71428.57]; % Hz
leakage = 0.9;
timeResolution = 0.00028; % seconds
overlapPercent = 85;
reassignFlag = true;

%%
% Index into signal time region of interest
sg_batsignal_ROI = sg(:,'batsignal');
sg_batsignal_ROI = sg_batsignal_ROI(timerange(timeLimits(1),timeLimits(2),'closed'),1);

% Compute spectral estimate
% Run the function call below without output arguments to plot the results
[P,F,T] = pspectrum(sg_batsignal_ROI, ...
    'spectrogram', ...
    'FrequencyLimits',frequencyLimits, ...
    'Leakage',leakage, ...
    'TimeResolution',timeResolution, ...
    'OverlapPercent',overlapPercent, ...
    'Reassign',reassignFlag);

スクリプトを実行します。再割り当てされたスペクトログラムをプロットします。

mesh(seconds(T),F,P)
xlabel("Time")
ylabel("Frequency")
axis tight
view(2)
colormap pink

Figure contains an axes object. The axes object contains an object of type surface.

リッジの追跡に関数tfridgeを使用します。

[fridge,~,lridge] = tfridge(P,F,0.01,NumRidges=3,NumFrequencyBins=10);

hold on
plot3(seconds(T),fridge,P(lridge),":",linewidth=3)
hold off

Figure contains an axes object. The axes object contains 4 objects of type surface, line.

この例では、イリノイ大学 Beckman Center の Curtis Condon 氏、Ken White 氏、Al Feng 氏にコウモリのデータの提供および使用許可をいただきました。ご協力に謝意を申し上げます。

参考

アプリ

関数

関連する例

詳細