ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

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

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

load batsignal

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

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

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

[スペクトログラム] タブを選択します。右側のディスプレイの [再割り当て] をオンにします。各ディスプレイについて以下を行います。

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

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

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

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

% Compute spectrogram

% Generated by MATLAB(R) 9.3 and Signal Processing Toolbox 7.5.
% Generated on: 13-Jul-2017 19:32:31

% Parameters
timeLimits = seconds([3.805177e-06 0.002796805]); % 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)),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

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

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

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

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

参考

アプリ

関数

関連する例

詳細