exponenta event banner

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

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

load batsignal

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

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

Перетащите расписание на оба дисплея.

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

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

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

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

Переназначенная спектрограмма ясно показывает три частотно-временных гребня. Для отслеживания гребней выберите изображение справа. На вкладке «Отображение» нажмите «Создать сценарий» и выберите 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.

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

См. также

Приложения

Функции

Связанные примеры

Подробнее