<< Chapter < Page | Chapter >> Page > |
Solving the lower frequency noise speaker-microphone topological problem requires implementation of adaptive filters. An adaptive filter has two major components: an FIR filter and an Adaptive Algorithm. The FIR filter’s transfer function is controlled by variable parameters, computed by the adaptive algorithm, that optimize output. The algorithm for this project is Least Mean Squares (LMS). The whole process can be described by the diagram below:
The FIR filter is constructed with N coefficients, w, and delays to generate the desired output. With linear combinations of these delayed signals, the filter can produce excellent results.
Let’s first go through the system and get to know the basic idea. The system has two inputs and one output. The two inputs are the pure noise Y(n) and the input recorded in the environment (human voice V(n) plus noise S(n)). The output is our desired signal (human voice without noise or with little noise) Eestimate(n). It’s an estimated signal of pure human voice; it is also called the error signal in the LMS algorithm.
The system consists of a summer and an Adaptive Filter. The adaptive filter consists of a FIR filter (shown in the figure above) and an adaptive algorithm. The noise cancellation happens in the summer. We will see its details in the next paragraph. The feedback loop is the most important part of this system. It takes the output of the system Eestimate(n) (also the output of the summer) and feeds it to the adaptive algorithm. Then the adaptive algorithm updates the coefficients w(n) of the FIR filter. The output of the adaptive filter is the signal Yestimate(n). Feed this output to the summer. By doing so, we improve the approximation of noise Yestimate(n). In the summer we do the cancellation again and get a new output Eestimate(n). This completes one loop. After each iteration we compute the power of Eestimate(n), the number we want to minimize using the LMS algorithm. In short, the main function of the adaptive filter is to minimize the power of the error signal Eestimate(n) by adjusting the coefficients of the FIR filter via the LMS algorithm.
Now let’s zoom into the details of the system. It runs in following five steps:
Let’s call u in step 4 the “convergence factor”. We want 0<u<1/(k max ), where k max is the largest eigenvalue of the auto-correlation matrix R xx . The reason for this inequality will be explained in the next paragraph. Now the difficult part is finding the value of u. Note that the statistical information of x(n) is unknown in practical use of this system, since we do not have predictions about either the noise or the speaker’s voice signal. This means we do not know what R xx is. Therefore, under a certain environment, we need to try different values to get the best u. If u is very small, it takes the system a long time to converge. If u is very big, the system converges fast with the cost of quality of the noise cancellation. Thus, trying values of u is crucial to this project.
Now let’s see where 0<u<1/k max comes from. This whole system is actually a combination of Weiner’s Filter and an adaptive algorithm. We will skip the mathematical computation of Weiner’s Filter here, since it is not our main focus in the project. When this system’s iteration goes to infinity, the expectation of the vector w m (n) will converge to the Weiner’s Filter solution. However, it has a restriction that abs(1-2u*k max )<1 (absolute value of diagonal elements is less than 1), which gives us 0<u<1/k max directly.
Now let’s discuss the results of our testing. We passed a recording of a human voice into this system, together with constant-frequency sine wave noise. Suppose the frequency of this sine wave is W 0 (we are using a capital W here because we are using lowercase w to represent the coefficients of the FIR filter).
Since the pure noise signal is a constant-frequency sine wave with frequency W 0 , we know that Y(n)=exp(jW 0 n). Thus,
From this transfer function (Equation 11), we get a zero at z=exp(jW 0 ); this means the system is canceling the sine wave with frequency W 0 from the system input x(n). This is the exact goal of this system. Also, notice that if we choose a very small “convergence factor” u, all the poles of this system would be inside the unit circle of the Z plane, which suggests that the system is BIBO stable.
After we input human voice and a constant-frequency sine wave through this system, the result is pretty good. We can hear the human voice clearly with the filter on.
In practice, we don’t know statistical information of the input such as the auto-correlation function R xx . Adaptive Filters and LMS algorithm do not need this information to accomplish noise cancellation. This is a big advantage over the Weiner Filter and Kalman Filter.
Furthermore, the LMS algorithm requires fewer mathematical complications than other algorithms (such as RLS), and is also easier to be implemented in practice.
FIR filters have linear phase, so the signal won’t be distorted, which is a big advantage over IIR filters. Moreover, FIR filters have only zeros, and are always BIBO stable. Stability is crucial for signal processing.
Notification Switch
Would you like to follow the 'Elec 301 projects fall 2014' conversation and receive update notifications?