Поиск и отслеживание гребней с использованием переназначенной спектрограммы

Загрузите файл данных, содержащий эхолокационный импульс, излучаемый большой коричневой битой (Eptesicus fuscus) и измеренный с интервалом дискретизации 7 микросекунд. Составьте расписание MATLAB ® с помощью сигнала и информации о времени.

load batsignal

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

Откройте Signal Analyzer и перетащите расписание из браузера Рабочей области в таблицу Сигнал. Щелкните Отобразить сетку (Display Grid ▼), чтобы создать два параллельных отображения. Выберите каждое отображение и нажмите кнопку Time-Frequency, чтобы добавить представление спектрограммы.

Перетащите расписание на обоих отображений.

Выберите вкладку Spectrogram. На отображении справа установите флажок «Переназначить». Для каждого отображения:

  • Установите разрешение по времени 280 микросекунд и задайте 85% перекрытия между смежными сегментами.

  • Используйте ползунок «Утечка», чтобы увеличить утечки до тех пор, пока RBW не составит около 4,5 кГц.

  • Установите пределы степени -45 дБ и -20 дБ.

Переназначенная спектрограмма четко показывает три частотно-временных гребней. Чтобы отследить гребни, выберите отображение справа. На вкладке Display нажмите Generate Script и выберите Spectrogram Script. Скрипт появится в редакторе.

% Compute spectrogram

% Generated by MATLAB(R) 9.7 and Signal Processing Toolbox 8.2.
% Generated on: 26-Dec-2018 17:21:44

% 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. The axes 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. The axes contains 4 objects of type surface, line.

Спасибо Кертису Кондону, Кену Уайту и Аль Фенгу из Центра Бекмана при Университете Иллинойса за данные летучих мышей и разрешение использовать его в этом примере.

См. также

Приложения

Функции

Похожие примеры

Подробнее о