• 沒有找到結果。

Progressive Update algorithm description

CHAPTER 2 P 2 SPT ALGORITHM DEVELOPING

2.1.4 Progressive Update algorithm description

Following section 2.1.1 to section 2.1.3, we can figure out the sign-sign algorithm means our update trigger will use the sign of input vector and the sign of error signal, the power-of-two window coefficient algorithm told us which the window coefficients only support power-of-two coefficients in the FIR part. In addition, we have 2-staged partial updating to reduce the

computational cost.

Besides, the most important part we are not discussed. Our encoder, it is to receive the update information and to transform this information to real window coefficients that we just need.

Consequently, the encoder needs to have simplest hardware cost and also have enough updating speed to catch echo noise. Considering this two reason, we present this Progressive Update algorithm here. The Progressive Update algorithm as shows as follows:

(2.1.17)

(2.1.18)

We define the parameter coeff is a coefficient for this example. Next, we encode this parameter to produce the Vector p of b elements.

Finally, we use those elements in the vector p to drive the “base” of FIR part. The example as shows follows:

(2.1.19)

In section 2.2, we propose P2SPT algorithm after those basic algorithms integration.

2.2 P

2

SPT Algorithm description

In this thesis, we use the Partial & Progressive Signed Power-of-Two (P2SPT) algorithm to design our echo canceller. Therefore, we present this algorithm here.

First of all, we will define parameters for this algorithm. What is more,

functions in this algorithm will be introduced on next page. Moreover, we will describe our P2SPT algorithm to you in the end. In the first, parameters and vectors as defines as follows:

Bound function is shown as follows. We will use this function to limit the counter coefficient vector for our hardware design.

(2.2.1)

Sign function is shown as follows; this function will be defined to process the vector X.

(2.2.2)

Binary function is shown as follows; we have to define this function for care about the zero-state occurred.

(2.2.3)

Partial function is shown as follows; the update trigger will impact our window coefficients when the partial function is allowed.

(2.2.4)

Following parameters and functions we defined, the P2SPT algorithm is presented here. Just like the traditional LMS algorithm, function (2.2.5) and (2.2.6) will produce the error signal

e

n.

(2.2.5)

(2.2.6

Than, we fresh and decompose our counter coefficient vector

c

n.

(2.2.7

(2.2.8)

We will have new window coefficients in next iteration, when the updated operation is finished by the progressive coefficient matrix

P

(k,i) drive the base.

(2.2.9)

Considering our Architecture design, we support window coefficients as shows as Fig. 11 P2SPT algorithm window coefficients in next page.

In Fig. 10, we have 3 bases, and our update parameter only allows 0, 1, 2, and 4 to drive our bases form all 0 to all 4. In this case, window coefficients will be showed in Fig. 10.

-60 -40 -20 0 20 40 60

-0.6 -0.4 -0.2 0 0.2 0.4 0.6

Fig 10. P

P2

SPT algorithm window coefficients

In order to have the minimum power consumption of echo canceller, we have developed this algorithm to obtain our goal of simplest architecture cost.

In next chapter Acoustic Feedback Model Construction & Simulated Results, we will introduce the acoustic feedback model and simulate this algorithm to verify its performance.

Accordingly, we will prove our algorithm’s performance as same as others, and based on our algorithm we can construct to simplest architecture.

Chapter 3

Acoustic Feedback Model Construction

& Simulated Results

In chapter 3 we will build a system model for realized acoustic feedback characteristics and help us to adjust the design of echo canceller. Moreover, we will also verify our P2SPT algorithm’s performance by this model.

In section 3.1, we will start to construct our acoustic feedback model. For explain the operation of our model, a simple example will be presented in the end of this section. Following section 3.1, the section 3.2 will shows the simulated results for you.

3.1 Model Construction

We will present section 3.1.1 model introduction to introduce our acoustic feedback model. Accordingly section 3.1.1, the example for model operation is showed in section 3.1.2.

3.1.1 Model introduction

Our model can be separated out of three parts in Fig. 12; the echo channel, the forward path and the echo canceller. There also have a two domain need to consider, the analog domain and the digital domain. We describe this model in next page.

We show Fig. 11 Diagram of Acoustic feedback model as follows.

Fig 11. Diagram of Acoustic feedback model

First of all, let us consider the truncation error in digital domain. We will choose 12 bit to be one word. When the echo canceller has signal processing, this condition will be adopted. Furthermore, we are setting the 16K Hz

sampling to the analog-to-digital converter.

In Fig. 11, the model we built is including three parts.

1. Echo channel.

2. Forward path.

3. Echo canceller.

Now let us give a clear explanation for those three main parts as follows.

1. Echo channel

According 1.2.1 Overview of AEC in hearing aids, we know ITE hearing aids will have echo noise exist. Therefore, we show the path of acoustic

feedback in Fig. 12 [2].

Fig 12. acoustic feedback path in the ear

In Fig. 12, we can find out the feedback channel. In consequence, the acoustic feedback channel means all the noise come from the receiver. For this reason, we can say “the path” is a response from the receiver’s signal.

The acoustic feedback channel modeling [27] [28] [29], usually using the dummy head to describe the characteristic of echo path. For example, we according to the data form [30] and show you how to catch the characteristic of acoustic feedback path.

First of all, the testing platform of dummy head will be setup already.

Than, using the Sweep Stimulus method and the White Noise method to trigger the echo channel. Actually, we can also to say that it is tried to find out the impulse response in the time domain or the frequency response in the frequency domain.

We show testing platform of the dummy head in Fig. 13.

Fig 13. testing platform of dummy head

Legend for Fig. 13:

(1) B&K head and torso simulator type 4128C (2) B&K right ear simulator type 4158C

(3) Pinna simulator

(4) ITE hearing instrument shell with a microphone and receiver (5) Knowles EA-1843 microphone

(6) Knowles BK-1604 receiver (7) Acoustical feedback path

(8) Interface between microphone and ADC (9) Interface between DAC and receiver

(10) EZ-KIT LITE ADSP 2189M Evaluation Board, including a codec AD73322 and a DSP 2189

Based on this platform, we can describe the frequency response of Acoustic feedback channel like Fig. 14.

Fig 14. frequency response of Acoustic feedback channel

In Fig. 14, there means Sweep Stimulus method and White Noise method will have the same result. We can find out the similarly response.

According to this result, we can identity frequency response of acoustic feedback channel is just like Fig. 14. We can describe frequency response of our echo channel in Fig. 16. We show frequency response of our echo channel in Fig. 15.

103

Fig 15. frequency response of our echo channel

In order to simulate echo noise effect, we need to do “convolution”.

When system output signal feedback to microphone by echo path, the real echo noise is the convolution by output signal and echo channel.

In a word, we will simulate our model in time domain. Consequently, we will need this echo channel impulse response.The echo channel will be

changed to the 100 taps Finite Impulse Response (FIR). The result is on Fig.

16. Fig. 16 shows the Finite-Impulse-Response (FIR) of our model’s echo channel.

0 10 20 30 40 50 60 70 80 90 100 -0.03

-0.02 -0.01 0 0.01 0.02 0.03

Fig 16. FIR of our echo channel

On other hand, the real echo feedback path is not steady. It will change with time. According to information from [31], we can list some characteristics for the echo feedback path in next page.

The variation is depending on user’s physiological structure of ear and head in the feedback path of ITE hearing aids. Fig.17 will show the ear is a

complicated structure.

Fig 17. Sketch of human ears

According to data we know, the variation statistics in the feedback path as shows as follows:

¾ The feedback path will have a ten percent of variation in the amplitude.

¾ The feedback path will change of 3~5ms.

Consider the variation of feedback echo path. We assume our echo channel will be changed by every 5ms, and the value of echo will have 10%

variation with gauss random probability. Moreover, we also have two iteration delays variation of the echo channel with gauss random probability.

2. Forward path

This part is to simulate other function of hearing aids. In fact, forward path will include like compression part and band filters. But in this thesis, we only consider the effect of echo canceller. Therefore, we will use delays to

replace all functions in the forward path. In another word, the forward path just delays the input signal. This result will let us easy to know the performance of echo canceller by Mean-Square-Error (MSE) or human’s ear verification.

Besides, the forward path delays we choose are 50 iteration delays. Fig. 18 shows Diagram of forward path.

Fig 18. Diagram of forward path

3. Echo canceller

Echo canceller part can be any echo canceller we like, if the echo

canceller is adaptive filter form. Therefore, we draw the diagram of dotted line.

Furthermore, we will use a basic adaptive echo canceller (LMS filter) to show our model’s operation, and use our algorithm to prove the performance in section 3.2. Fig. 19 shows Diagram of echo canceller.

Fig 19. Diagram of echo canceller

3.1.2 Example for Model’s Operation

We will describe our model’s operation by an example. The model will be introduced in section 3.1.1. Therefore, the echo canceller is a LMS filter and work on the 12 bits and 16 KHz sampling rate.

First of all, we assume that the original signal is like Fig. 20. The Y-axis is from -0.8 to 0.8 and X-axis from 0 to 40000 (unit: iterations). This signal is the voice by man. The signal length as longs as one second.

0 0.5 1 1.5 2 2.5 3 3.5 4

x 104 -0.8

-0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8

iteration original input

Fig 20. Waveform of the original signal

This operation of our model is input this original signal into the forward path, there means delay by 50 iterations than the signal will output to be the system output. In consequence, this system output will start feedback to

interfere original signal by echo path. Furthermore, the echo canceller will use this system output to make the echo canceller’s output.

Those results will show in the Fig. 21 Waveform of the echo canceller output signal and Fig. 22Waveform of the system output signal.

Fig. 21 shows us the echo canceller output signal.

0 0.5 1 1.5 2 2.5 3 3.5 4

Fig 21. Waveform of the echo canceller output signal

In Fig. 22, the system output signal with echo canceller is presented.

Because echo canceller’s output will cancel real echo noise in our model, this output signal is to be similar with original voice.

0 0.5 1 1.5 2 2.5 3 3.5 4

Fig 22. Waveform of the system output signal

Now, if we turn off this echo canceller. The system output will be look

like Fig. 23. In this case, the sound of this signal will bring a bleep that we system output without echo canceller

Fig 23. Waveform of the system output signal without echo canceller

In this example, we try to show the performance of system output between enable or disable this echo canceller. Besides, we will show MSE (Mean Square Error) of system output to original input signal in Fig 24 MSE with echo canceller and Fig 25 MSE without echo canceller.

There two can give us the data of voice’s performance compared.

Because we want to find out the performance of human’s hearing experience, not the filter speed. We use this model to verify the performance that we want to know like this example.

Consequently, we will use the same data like this example to show you that our algorithm’s performance and others in next section. Moreover, we will show the (Signal Noise Ratio) SNR and the voice’s Spectrogram to prove that our algorithm has the same performance to other LMS-based algorithms.Fig 24 shows the MSE (with echo canceller) of system output to original input.

0 0.5 1 1.5 2 2.5 3 3.5 4 x 104 0

0.05 0.1 0.15 0.2

iteration MSE

Fig 24. MSE (with echo canceller) of system output to original input

Fig 25 shows the MSE (without echo canceller) of system output to

original input. We can see the difference between Fig. 24 and Fig. 25, if we try to compare these two figures.

0 0.5 1 1.5 2 2.5 3 3.5 4

x 104 0

0.05 0.1 0.15 0.2

iteration MSE without echo canceller

Fig 25. MSE (without echo canceller) of system output to original input

3.2 Simulated Results

In this section, we will simulate our P2SPT algorithm on the MATLAB.

According to section 3.1, our model’s Specification will be ordered in section 3.2.1.

In section 3.2.2, we will compare our algorithm with other well-know LMS-based algorithms. In section 3.2.3, we will show the performance on human’s voice test. We will poof our algorithm has good performance as same as other algorithms in the performance of echo cancellation. Besides, we will have simplest architecture in our hardware design that we need.

3.2.1 Simulation model Specification

Fig 26as shows as follows; we will have a clearly description of this model in next page.

Fig 26. model of simulation

In Fig 26, we will have two domain and four main units in our model.

First, we define sample rate will be 16 KHz, as same as our hardware specification.

In the next, we start to discuss those two domains. Our design will work on the digital domain. Therefore, we will have the truncation error problem that we have to consider about.

In addition, the unwelcome really echo noise is an analog signal.

Considering this reason, when the signal is processed in the digital domain we will transform our signal to 12 bit precision.

Considering four main units in Fig 26, we describe the forward path first.

In reality, the forward path means the compression and other functions in the hearing aid. But we are only considering the echo cancellation in this thesis.

For this reason, we just assume our forward path is 50 iteration delays.

In the echo canceller unit, we design this echo canceller using the P2SPT algorithm. Moreover, we describe this unit as same as our hardware design. In consequence, we can verify our hardware design of compared the output signal for this simulation model and our real design.

Echo channel is a matrix. This matrix saves the echo impulse response which introduced in section 3.1. Furthermore, we change this channel with every 3ms on the variation condition that also introduced in section 3.1 too.

In the last part, the receiver effect will be considered. In practice, our receiver will amplify the system output. Accordingly, we have to assume the worst case in our echo model. We will have to amplify our system output to 12db.In next page, we form that information of this model in table 1

information of simulation model.

Table 1 information of simulation model shows simulation model’s information as follows:

table 1. information of simulation model

Specification Description.

Digital sample rate 16K (Hz) Digital Bit number 12 (bit)

Echo canceller P2SPT ( using our algorithm)

Also can change to other algorithms.

Echo channel Matrix (1x100)

Channel change every 3ms.

(Variation with Gauss random) 90% ~ 110% of amplitude.

-1 and 1 delay iteration will plus to channel.

Receiver effect Our system output Amplify to 12db.

In next section, we will start compare our algorithm with other well-know LMS based algorithms in this model. Actually, we are not proved that our algorithm is faster or more accurately than others. The result we want to show you that is our algorithm has the same performance in human’s hearing

experience. As we can know, our user will feel nothing of echo noise when they wear the hearing aid, if the feedback echo noise is under the allowed range [32].

For that reason, we can have the simplest hardware design for low power issue and our user also not interfere by echo noise.

3.2.2 Algorithms compared

In this section, we will prove our algorithm’s performance will be as same as other algorithm’s performance in echo cancellation of the model we

introduced in section 3.2.1.

In Fig. 27 learning curves of four algorithms, we will show the LMS, DLMS, NLMS and our P2SPT algorithm’s learning curve.

200 400 600 800 1000 1200 1400 1600 1800 2000

Fig 27. learning curves of four algorithms

Our input signal is a random white noise signal between 1 and -1.

Moreover, we also put in 10% noise to the input signal. All algorithms will have 32 taps and LMS algorithm’s step-size is 0.1, DLMS algorithm’s

step-size is 0.1 too. Considering the model we built, the channel of we learning is the echo channel that we introduced in section 3.1. in Fig 27, if we

compare speed of these algorithms, we have the order from fast to slow will be:

„ NLMS > P2

SPT > LMS > DLMS.

If we compare precision of these algorithms, we can find out the order from batter to bad precision will be:

„ NLMS > LMS > DLMS > P2

SPT.

In fact, we want to compare the performance of “echo canceller’s

algorithms”, not the filter speed or precision. Therefore, we will use the model (introduced in section 3.2.1) to verify all of algorithm’s performance of echo cancellation.

Consequently, to compare the speed or the precision of those filters can not really find out the result we want. Only to compare those algorithms by real voice’s signal and have real echo noise occurred, the result will mean real performance of echo cancellation.

First of all, we will show the LMS algorithm. Next, we will have the DLMS algorithm and the NLMS algorithm. Finally, we will show our P2SPT algorithm’s performance and the performance of not using echo canceller to you.

LMS algorithm:

In next page, we will have the information of four types in Fig 29 LMS algorithm’s performance. We have the original input signal in lower left-hand corner, and system output in lower right-hand corner. In upper left, we have the echo canceller output. In upper right, we show the MSE of original input and system output.

Accordingly, Fig. 29 Fig 30, Fig. 31 and Fig. 32 are following this order.

Besides, we will show the MSE result of those algorithms in the end.

Fig. 28 as shows as follows:

0 0.5 1 1.5 2 2.5 3 3.5 4

Mean squared error for system output & original input

0 0.5 1 1.5 2 2.5 3 3.5 4

Fig 28. LMS algorithm’s performance

DLMS algorithm:

Fig. 29 as shows as follows, our delay parameter is four iterations.

0 0.5 1 1.5 2 2.5 3 3.5 4

Mean squared error for system output & original input

0 0.5 1 1.5 2 2.5 3 3.5 4

Fig 29. DLMS algorithm’s performance

NLMS algorithm:

Fig. 30 NLMS algorithm’s performance as shows as follows:

0 0.5 1 1.5 2 2.5 3 3.5 4

Mean squared error for system output & original input

0 0.5 1 1.5 2 2.5 3 3.5 4

Fig 30. NLMS algorithm’s performance

P

P2

SPT algorithm:

Fig. 31 P2SPT algorithm’s performance as shows as follows:

0 0.5 1 1.5 2 2.5 3 3.5 4

Mean squared error for system output & original input

0 0.5 1 1.5 2 2.5 3 3.5 4

Using no echo canceller:

Fig. 32 no echo canceller’s performance as shows as follows:

0 0.5 1 1.5 2 2.5 3 3.5 4

Mean squared error for system output & original input

0 0.5 1 1.5 2 2.5 3 3.5 4

Fig 32. no echo canceller’s performance

We use table 2 MSE of algorithms to show the performance of those algorithms.

table 2. the performance of algorithms Algorithm

Type

NLMS LMS DLMS P

P2

SPT Using NO canceller

MSE

(unit: 10^-4)

0.2297 0.421 0.4174 1.93 13.36

SNR (db)

32.79 30.16 30.19 23.55 15.14

Our algorithm’s performance look likes not better than others. But in the users hear, all of algorithms can cancel the echo except using no echo canceller.

In fact, human’s hearing feel nothing when the echo noise under the allowed range [32]. We will use the spectrogram graphs to prove this point in next page.

Spectrograms comparison:

We have the original input wave in upper left-hand corner, and the

spectrograms of original input in upper right -hand corner. In lower left, we have the spectrograms of system output without echo canceller. In lower right, we show the spectrograms of P2SPT system output. Fig. 33 as shows as

follows:

Fig 33. (a) original input wave. The spectrograms of (b) original input (c) system output without echo canceller (d) P2SPT system output

To compare with original input, we can find out the different between system output without echo canceller and P2SPT system output. The high frequency energy occurs in system output without echo canceller. We will compare our P2SPT system output with others in next page. Therefore, we can analyze those spectrograms plots to prove there no different in user’s

experience.

We have the spectrograms of NLMS system output in upper left-hand corner, and the spectrograms of LMS system output in upper right -hand corner. In lower left, we have the spectrograms of DLMS system output. In lower right, we show the spectrograms of P2SPT system output. Fig. 34 as shows as follows:

Fig 34. The spectrograms of (a) NLMS system output (b) LMS system output (c) DLMS system output (d) P2SPT system output

In Fig. 34, there are not evidence that our algorithm’s performance is

In Fig. 34, there are not evidence that our algorithm’s performance is

相關文件