波谱重心 - 在matlab和python中获得相同的结果

2024-09-29 23:31:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下代码在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',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)

函数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相同的结果?我们总能得到相同的光谱质心结果吗?你知道吗


Tags: 代码光谱fspowermatlab质心roundvsc

热门问题