# Implementing blind deconvolution in MATLAB

I want to implement blind deconvolution for the signal $r(n) = h(n) \star s(n) + a(n)$ in MATLAB where

• $r(n)$ is the recorded speech
• $h(n)$ is impulse response of room acoustics
• $s(n)$ is desired speech signal
• $a(n)$ is noise from microphone

I understand in order to find the desired speech signal, $s(n)$, I need to perform some sort of blind deconvolution. I've been sent all over the place and was looking for some thoughts on how this could be approached.

Note: This is a university bonus project and I am in no way asking for an entire solution. I'm just looking for thoughts and maybe some hints about sites I can consult.

• You have to assume that the recorded speech is uncorrelated with the noise, in which case you can use something similar to Welch's method combined with the inverse of the transfer function of the impulse response. – fibonatic May 18 '16 at 6:37
• @fibonatic If it is blind, I guess $h(n)$ is unknown – Laurent Duval May 18 '16 at 16:40
• @LaurentDuval If $h(n)$ is unknown then there is no way to find $s(n)$. Unless you make some assumptions of the spectral density of $s(n)$ and what a model for the room looks like (you will mainly have to real with echoes/delay). – fibonatic May 18 '16 at 16:47
• @fibonatic Indeed – Laurent Duval May 18 '16 at 16:54
• If the uncorrelation hypothesis holds and h is causal and with finite terms in the sense that the convolution reduces to a finite summation I think you can do something but only if you have another measurement $r'(n) = h'(n)\star s'(n) + a'(n)$ – LJSilver May 18 '16 at 17:13