
How to obtain the same output in spectral descriptors, using frequency and time domain inputs?
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    David Santos
 el 16 de Jun. de 2023
  
    
    
    
    
    Respondida: Brian Hemmat
    
 el 16 de Jun. de 2023
            All matlab spectral descriptors as spectralSlope, spectralKurtosis,ect have the choice to use a time domain or a frequency domain input, but I'm unable the get the same (even aproximadetly) result, does anyone knows how to solve this?
Example:   
clear;
%load an audio
[x,fs]=audioread('example.wav');
%windowing data
win=round(0.025890625*fs);
over=round(0.01875*fs); % 72%
%Obtain the spectral data
[s, f, t]=spectrogram(...
    x,...
    hamming(win),...
    over,...
    win,fs,'yaxis');
slope_normal(:,1)=spectralSlope(x,fs, Window=hamming(win),OverlapLength=over);
slope_spec(:,1)=spectralSlope(s,f);
figure;plot(slope_normal);hold on;plot(slope_sub);
0 comentarios
Respuesta aceptada
  Brian Hemmat
    
 el 16 de Jun. de 2023
        %% Compare Time-Domain and Frequency-Domain Inputs
[x,fs] = audioread('Counting-16-44p1-mono-15secs.wav');
% Define window and overlap length
windowLength = round(0.025890625*fs);
overlapLength = round(0.01875*fs);
win = hamming(windowLength);
fftLength = windowLength;
% Calculate the power spectrum the same was as the spectral descriptors
[~,f,~,ps] = spectrogram( ...
    x, ...
    win, ...
    overlapLength, ...
    fftLength,fs,'yaxis','power','onesided');
% Slope using time domain input
slope_timeDomainInput = spectralSlope(x,fs, ...
    Window=win,OverlapLength=overlapLength,SpectrumType='power');
% Slope using frequency domain input
slope_frequencyDomainInput = spectralSlope(ps,f);
figure(1)
plot(slope_timeDomainInput,'ro');hold on
plot(slope_frequencyDomainInput,'b*');hold off
title("Error = " +rms(slope_timeDomainInput - slope_frequencyDomainInput))

0 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre Audio Processing Algorithm Design en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

