Найдите и отследите гребни Используя переприсвоенную спектрограмму

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

Переприсвоенная спектрограмма ясно показывает три частотно-временных гребня. Чтобы отследить гребни, выберите отображение в праве. На вкладке 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 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.

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

Смотрите также

Приложения

Функции

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

Больше о