Computer Project for EEE 407 Frequency-Domain Adaptive Noise Cancellation Miao Tang Jianan Yang 11/22/2015 ABSTRACT In this project, we mainly explored Frequency-Domain Adaptive Filter (FDAF) to cancel the noise from background. The procedure to achieve this include audio segmentation (block-by-block), FFT, LMS algorithm in the frequency domain, and inverse FFT. We conduct experiments to with different N. And for each N, we set up a loop with a specific range of these mu, and then find out the ideal value which maximizes the improvement of Signal Noise Ratio (SNR). In our experiments, we find that when μ=0.017, and N =4, SNR of the signal corrupted by noise will be largely improved by 29.6094 dB. 1. INTRODUCTION Adaptive filter is a type of filter that can adjust the its characteristic according to the input signal. Rather than the non-adaptive filter with static coefficients, the coefficients of adaptive filter is controlled by variable parameters. The simplified diagram for the adaptive filter is shown in Figure1-1 below: Figure1-1, Diagram for adaptive filter In the block diagram above, d(k) usually denotes the mixed signal including the useful input and noise; x(k) denotes some undesired interference correlated with the noise part in d(k); y(k) is the output signal after the filter; the last one e(k) is the difference between the mixed signal and processed noise from x(k). The signal e(k) can be used to approximates the useful signal involved in d(k) as long as the y(k) is the same as the noise part in d(k). However, that's not always true. A possible situation is shown in figure 2 below: Figure1-2, remote communication in different rooms In the situation demonstrated in Figure 1-2, we in imagine that for the person in room A, d(k) is the near end signal which include the speech of him and the near end noises. The noise from the far end includes the sound from the person in room B and noise reflected from the wall. Obviously, the near end noise and far end noise is not same at all, and the background noises are variant. However, the two noise are correlated because the environment is same [1]. As a result, after obtain the approximated useful signal in the first time at the output. We can use a feedback loop with the Adaptive Algorithm block to adjust the transfer function of the filter. After do this, we'll obtain a more accurate approximation of useful signal in the next frame. The algorithm of Least Mean Square, or LMS is usually used in the adaptive algorithm block. [2] The basic idea behind the LMS algorithm is to produce the desired filter by finding the ideal coefficients of the filter. The standard to find the the coefficient is to minimize the mean square of the error signal. LMS is widely applied to the adaptive filter is because of its simplicity and robust performance distributes. LMS algorithm basically includes 3 steps. First of all, we need to initialize the coefficients to be all zeroes, i.e. using zero function in the Matlab. Then in the filtering process, e(k)=d(k) – y(k), we need to measure the error between difference of ideal signal and the real output from the input of the last step. In the adaptive process, from the equation y(k+1) = y(k) +2μ*e(k)*x(k), we know the filter coefficients will be updated every time. μ in the adaptive equation indicates the length of each step, if μ is too large, then the weights will change fast to the expected value of weight, which results in a larger change in the next step, as a result, the weight will change up and down around the ideal weights value. On the other side, if the step length μ is too small, although the performance is much more stable, but the convergence time would be very long.[2]