查看单个帖子
旧 2019-11-25, 00:00   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 Spectral Centroid - get the same results in matlab and python

I obtain spectral centroid in matlab using this code:



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',rectwin(round(Fs*0.03)),...
'OverlapLength',round(Fs*0.02),...
'FFTLength',numel(rectwin(round(Fs*0.03))),...
'Range',[0, Fs/2],...
'SpectrumType','power')
vsc = FeatureSpectralCentroid (X, Fs)


Function FeatureSpectralCentroid I have from this link: https://www.audiocontentanalysis.org/code/audio-features/spectral-centroid/



The results are: centroid = [10.6816, 6.0146, 19.6662] and vsc = [40.4499, 27.4300, 41.0146]
I also use a different implementation of spectral centroid and the results are also different. Sometimes scalar, not vector. How to use FeatureSpectralCentroid to get the same results as in spectralCentroid? Can we always get the same results of spectral centroid?





More...
poster 当前离线   回复时引用此帖