【发布时间】:2014-06-27 12:54:12
【问题描述】:
我正在运行基于高斯混合模型的语音增强算法。问题是估计算法在训练处理期间下溢。
我正在尝试计算对数频谱框架X 的PDF,给定一个高斯簇,它是每个频率分量X_k 的PDF 的乘积(fft 为k=1..256 完成)
我得到的是256 exp(-v(k)) 的产品,这样v(k)>=0
这是 MATLAB 计算的 sn-p:
N - 帧数; M- 混合数; c_i 每种混合物的重量;
gamma(n,i) = c_i*f(X_n|I = i)
for i=1 : N
rep_DataMat(:,:,i) = repmat(DataMat(:,i),1,M);
gamma_exp(:,:) = (1./sqrt((2*pi*sigmaSqr_curr))).*exp(((-1)*((rep_DataMat(:,:,i) - mue_curr).^2)./(2*sigmaSqr_curr)));
gamma_curr(i,:) = c_curr.*(prod(10*gamma_exp(:,:),1));
alpha_curr(i,:) = gamma_curr(i,:)./sum(gamma_curr(i,:));
end
由于 K = 256,乘积很快变为零,因为数字小于 1。有没有办法可以通过导致下溢(如 logsum 或类似)来计算这个?
【问题讨论】:
标签: algorithm matlab signal-processing