我使用以下代码在matlab中获得谱质心:
Fs = 200
v = [0.79230,0.28280,0.63000,0.64140,0.76430,0.25560,0.27780,0.73330,0.48960,0.01990];
s = spectrogram(v,rectwin(round(Fs*0.03)),...
round(Fs*0.02),...
numel(rectwin(round(Fs*0.03))),...
Fs,...
'power',...
'onesided');
X = abs(sqrt(s/2));
centroid = spectralCentroid(v,Fs,'Window',...
'OverlapLength',round(Fs*0.02),...
'FFTLength',numel(rectwin(round(Fs*0.03))),...
'Range',[0,Fs/2],...
'SpectrumType','power')
vsc = FeatureSpectralCentroid (X,Fs)
功能FeatureSpectralCentroid
来自此链接:https://www.audiocontentanalysis.org/code/audio-features/spectral-centroid/
结果是:centroid = [10.6816,6.0146,19.6662]
和vsc = [40.4499,27.4300,41.0146]
我还使用频谱质心的不同实现,结果也不同。有时是标量,而不是向量。如何使用FeatureSpectralCentroid
获得与spectralCentroid
中相同的结果?我们是否总能得到光谱质心的相同结果?