Cargue un archivo de datos que contenga un pulso de ecolocalización emitido por un gran murciélago marrón ( ) y medido con un intervalo de muestreo de 7 microsegundos.Eptesicus fuscus Cree un horario MATLAB® utilizando la señal y la información de tiempo.
load batsignal t = (0:length(batsignal)-1)*DT; sg = timetable(seconds(t)',batsignal);
Abra y arrastre el horario desde el explorador del espacio de trabajo a la tabla Signal.Analizador de señales Haga clic en el botón para crear dos pantallas en paralelo.Cuadrícula de visualización Seleccione cada pantalla y haga clic en el botón para agregar una vista de espectrograma.Frecuencia de tiempo
Arrastre el horario a ambas pantallas.
Seleccione la pestaña.Espectrograma En la pantalla de la derecha, marque .Reasignar Para cada pantalla:
Establezca la resolución de tiempo en 280 microsegundos y especifique una superposición del 85% entre los segmentos adyacentes.
Utilice el control deslizante para aumentar la fuga hasta que el RBW sea de aproximadamente 4,5 kHz.Fuga
Establezca los límites de potencia en –45 dB y –20 dB.
El espectrograma reasignado muestra claramente tres crestas de frecuencia de tiempo. Para realizar un seguimiento de las crestas, seleccione la pantalla a la derecha. En la pestaña, haga clic y seleccione .MonitorGenerar scriptSpectrogram Script
El script aparece en el Editor.
% 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);
Ejecute el script. Trazar el espectrograma reasignado.
mesh(seconds(T),F,P) xlabel('Time') ylabel('Frequency') axis tight view(2) colormap pink
Utilice la función para rastrear las crestas.tfridge
[fridge,~,lridge] = tfridge(P,F,0.01,'NumRidges',3,'NumFrequencyBins',10); hold on plot3(seconds(T),fridge,P(lridge),':','linewidth',3) hold off
Gracias a Curtis Condon, Ken White y Al Feng del Beckman Center de la Universidad de Illinois por los datos de murciélagos y permiso para usarlos en este ejemplo.