0

我有不同的音频信号,我想确保它们都具有相同的能量。目标是当我播放它们时它们听起来相同(相同的音量)。我尝试了以下方法(如上所述),但是当我播放它们时,它们听起来不同。此外,如果我在应用归一化后计算能量,它会有所不同。我究竟做错了什么?

我所做的是:1)使用带有希尔伯特变换的包络计算每个音频信号的能量,

% Calculate the envelope
envelope = abs(hilbert(wave));

% Calculate the energy in the sound
energyInSound=sum(envelope.^2)

2)确保它们具有相同的能量,

for channel=1:2
        regWave(:,channel) =  1000.* wave(:,channel)./energyInSound(channel);
end
4

1 回答 1

0

我所做的(使用两个相同长度的信号)是将具有最大能量的信号乘以 sqrt(energyRatio) 和另一个 .*energyRatio。

tempSig1 = sig1.*energyRatio;
tempSig2 = sig2.*sqrt(energyRatio);

这将信号的能量值改变为相等。

于 2018-08-23T14:55:58.977 回答