我有不同的音频信号,我想确保它们都具有相同的能量。目标是当我演奏它们时听起来相同(相同音量)。我尝试了以下方法(如上所述)但是当我播放它们时听起来不同。另外,如果我在我应用的归一化之后计算能量,则它是不同的。我究竟做错了什么?
我所做的是: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
我所做的(用两个相同长度的信号)将信号乘以最大能量乘以sqrt(energyRatio)和另一个。* energyRatio。
tempSig1 = sig1.*energyRatio;
tempSig2 = sig2.*sqrt(energyRatio);
这将信号的能量值改变为相等。