【信号处理】Matlab实现CDR-based噪声和混响抑制

1 内容介绍

We investigate the estimation of the time- and frequency-dependent coherent-to-diffuse ratio (CDR) from the measured spatial coherence between two omnidirectional microphones. We illustrate the relationship between several known CDR estimators using a geometric interpretation in the complex plane, discuss the problem of estimator bias, and propose unbiased versions of the estimators. Furthermore, we show that knowledge of either the direction of arrival (DOA) of the target source or the coherence of the noise field is sufficient for an unbiased CDR estimation. Finally, we apply the CDR estimators to the problem of dereverberation, using automatic speech recognition word error rate as objective performance measure.

2 部分代码

%ESTIMATE_CDR_ROBUST_UNBIASED

% Unbiased estimation of the Coherent-to-Diffuse Ratio (CDR) from the complex

% coherence of a mixed (noisy) signal, using knowledge of both signal and noise

% coherence. This is a variation of estimate_cdr_unbiased which shows better

% performance in practice. Equivalent to CDRprop2 in [1].

%

% CDR = estimate_cdr_nodiffuse(X, N, S)

%       X: complex coherence of mixed (noisy) signal

%       N: coherence of noise component (real-valued)

%       S: coherence of signal component (magnitude one)

%

% Reference:

% Andreas Schwarz, Walter Kellermann, "Coherent-to-Diffuse Power Ratio

% Estimation for Dereverberation", IEEE/ACM Trans. on Audio, Speech and

% Lang. Proc., 2015 (under review); preprint available: arXiv:1502.03784

% PDF: http://arxiv.org/pdf/1502.03784

%

% Andreas Schwarz (schwarz@lnt.de)

% Multimedia Communications and Signal Processing

% Friedrich-Alexander-Universitaet Erlangen-Nuernberg (FAU)

% Cauerstr. 7, 91058 Erlangen, Germany

function CDR = estimate_cdr_robust_unbiased(Cxx,Cnn,Css)

Css = bsxfun(@times, ones(size(Cxx)), Css);

Cnn = bsxfun(@times, ones(size(Cxx)), Cnn);

% limit the magnitude of Cxx to prevent numerical problems

magnitude_threshold = 1-1e-10;

critical = abs(Cxx)>magnitude_threshold;

Cxx(critical) = magnitude_threshold .* Cxx(critical) ./ abs(Cxx(critical));

CDR = 1./(-abs(Cnn-exp(1j*angle(Css)))./(Cnn.*cos(angle(Css))-1)).*abs((exp(-1j*angle(Css)).*Cnn - (exp(-1i*angle(Css)).*Cxx))./(real(exp(-1i*angle(Css)).*Cxx) - 1));

% Ensure we don't get any negative or complex results due to numerical effects

CDR = max(real(CDR),0);

end

3 运行结果

4 参考文献

[1] Schwarz, A. , and  W. Kellermann . "Unbiased coherent-to-diffuse ratio estimation for dereverberation." International Workshop on Acoustic Signal Enhancement IEEE, 2014.

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值