Загрузить файл данных, содержащий импульс эхолокации, испускаемый большой коричневой битой (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

Используйте tfridge для отслеживания гребней.
[fridge,~,lridge] = tfridge(P,F,0.01,'NumRidges',3,'NumFrequencyBins',10); hold on plot3(seconds(T),fridge,P(lridge),':','linewidth',3) hold off

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