Home > ACA-Code > FeatureSpectralSpread.m

FeatureSpectralSpread

PURPOSE ^

computes the spectral spread from the magnitude spectrum

SYNOPSIS ^

function [vss] = FeatureSpectralSpread (X, f_s)

DESCRIPTION ^

computes the spectral spread from the magnitude spectrum
> called by ::ComputeFeature
>
> @param X: spectrogram (dimension FFTLength X Observations)
> @param f_s: sample rate of audio data 
>
> @retval vss spectral spread (in Hz)
 ======================================================================

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 %computes the spectral spread from the magnitude spectrum
0002 %> called by ::ComputeFeature
0003 %>
0004 %> @param X: spectrogram (dimension FFTLength X Observations)
0005 %> @param f_s: sample rate of audio data
0006 %>
0007 %> @retval vss spectral spread (in Hz)
0008 % ======================================================================
0009 function [vss] = FeatureSpectralSpread (X, f_s)
0010 
0011     % get spectral centroid as index
0012     vsc = FeatureSpectralCentroid(X, f_s) * 2 / f_s * (size(X, 1)-1);
0013 
0014     % allocate memory
0015     vss = zeros(size(vsc));
0016  
0017     % compute spread
0018     for n = 1:size(X,2)
0019         vss(n) = (((0:size(X, 1)-1)-vsc(n)).^2 * X(:, n)) ./ sum(X(:, n));
0020     end
0021     vss = sqrt(vss);
0022     
0023     % convert from index to Hz
0024     vss = vss / (size(X, 1)-1) * f_s / 2;
0025        
0026     % avoid NaN for silence frames
0027     vss (sum(X, 1) == 0) = 0;
0028 end
0029 
0030

Generated on Fri 22-Apr-2022 20:59:51 by m2html © 2005