Thuật toán LMS

Một phần của tài liệu Nghiên cứu bộ lọc thích nghi và ứng dụng trong khử nhiễu tín hiệu (Trang 41 - 46)

Thuật toán LMS được đề xuất lần đầu tiên bởi Widrow và Hoff vào năm 1960, nó được sử dụng phổ biến nhất trong các thuật toán lọc thích nghi đã được biết do tính đơn giản và độ bền vững của nó. Sau đó thuật toán LMS đã được nghiên cứu và phát triển thành nhiều thuật toán mới, bao gồm hai quá trình cơ bản:

- Quá trình lọc: Quá trình này bao gồm việc tính toán đầu ra của bộ lọc dãy theo các tín hiệu vào băng lọc và đánh giá sự sai lệch giữa đầu ra và tín hiệu chuẩn.

- Quá trình xử lý thích nghi: Đây là quá trình điều khiển tự động trọng số lọc tương ứng với sai số được đánh giá.

Như vậy thuật toán LMS là sự kết hợp đồng thời của hai quá trình này và được minh hoạ trên hình 2.17.

Hình 2.17: Sơ đồ biểu diễn thuật toán LMS

Thuật toán LMS cũng sử dụng tiêu chuẩn trung bình bình phương cực tiểu để đánh giá sai số lọc. Khi cập nhật các trọng số lọc, phương pháp gradient thích nghi cần phải xác định ma trận tương quan R của tín hiệu vào và vector tương quan chéo p giữa tín hiệu vào và tín hiệu mong muốn.

Thuật toán LMS, thường được gọi là một thuật toán Stochastic Gradient; nó thường được sử dụng cho các bộ lọc thích nghi, bởi vì các lý do sau đây:

- Là cơ bản đầu tiên, đơn giản. - Yêu cầu ít phép toán.

- Trong thực tế nó làm việc rất tốt.

- Cập nhật các hệ số rất đơn giản, nên nó thích nghi liên tục cho bộ lọc. - Đánh dấu sự thay đổi chậm trong thông tin tín hiệu số rất tốt.

Hình 2.18: Sơ đồ cấu trúc bộ lọc ngang thích nghi bậc N

Thuật toán này đi kèm với một bộ lọc FIR hiệu chỉnh được. Các hệ số hay trọng số của bộ lọc FIR thích nghi có thể hiệu chỉnh dựa trên một môi trường thay đổi như một tín hiệu vào. Cũng có thể sử dụng bộ lọc IIR thích nghi, nhưng các điểm cực của một bộ lọc IIR trong quá trình thích nghi có thể cập nhật đến các giá trị nằm ngoài vòng tròn đơn vị, làm cho bộ lọc không ổn định.

Xét bộ lọc ngang bậc N như trên Hình 2.19, đầu vào của bộ lọc là x(n), đầu ra mong muốn là d(n) và đầu ra của bộ lọc là:

y(n) = 1 0 ( ) ( ) N i i w n x n i − = − ∑ (2.17)

Các hệ số w0(n),w1(n),,…,wN-1(n) được lựa chọn sao cho sai số

e(n) = d(n) – y(n) (2.18) LMS Adaptive Algorithm Z-1 Z-1 Z-1 Z-1 yk Xk-1 Wk(2) Wk(n-1)Weights Wk(1) Wk(0) Xk-2 Xk-3 Xk-n+2 Xk-n+1 + + k Error

dk Desire Response (Plant Output) xk

ràng là các hàm của chỉ số thời gian n. Điều này có nghĩa là trong một bộ lọc thích nghi, nói chung các hệ số thay đổi theo thời gian vì chúng được điều chỉnh liên tục theo sự thay đổi của số liệu thống kê của tín hiệu được theo dõi. Thuật toán LMS điều chỉnh các hệ số của bộ lọc sao cho e(n) được cực tiểu hóa theo nghĩa bình phương trung bình do đó tên của nó là bình phương trung bình nhỏ nhất. Khi x(n)d(n) là các quá trình ngẫu nhiên dừng, thuật toán sẽ hội tụ tới một tập các hệ số mà chính là nghiệm của phương trình Wiener-Hopf. Nói cách khác, thuật toán LMS là một thiết kế thực tế để thực hiện bộ lọc Wiener mà không cần giải tường minh phương trình Wiener- Hopf. Nó là một thuật toán tuần tự có thể được sử dụng để điều chỉnh các hệ số của bộ lọc bằng cách quan sát liên tục đầu vào x(n) và đầu ra mong muốn

d(n) của bộ lọc.

Thuật toán LMS là sự thực hiện ngẫu nhiên của thuật toán giảm bước nhanh nhất. Nó chỉ đơn giản là thay thế hàm chi phí ξ = E e n 2( ) bởi ước

lượng thô tức thời của nó ξ =ˆ e n2( ) . Thay ξ =ˆ e n2( ) cho ξ trong công thức đệ

quy và thay thế chỉ số lặp k bằng chỉ số thời gian n, ta được:

w(n+1) = w(n) - µ∇e n2( ) (2.19) trong đó w(n) = w0( )n , w1( )n ,..., wN−1( )n T , µ là kích thước bước và ∇ là

toán tử gradient được định nghĩa bởi vector cột:

0 1 1 ... w w wN−  ∂ ∂ ∂  ∇ = ∂ ∂ ∂      (2.20)

Chú ý rằng thành phần thứ i của vector gradient ∇e n2( ) là:

( ) ( ) 2 2 ( ) wi wi e n e n e n ∂ = ∂ ∂ ∂ (2.21)

Thay (2.18) vào yếu tố cuối cùng bên vế phải của (2.21) và chú ý rằng d(n) độc lập với wi ta được: ( ) ( ) 2 2 ( ) wi wi e n y n e n ∂ ∂ = − ∂ ∂ (2.22)

Thay y(n) bởi (2.17) ta được:

( ) 2 2 ( ) ( ) wi e n e n x n i ∂ = − − ∂ (2.23) Sử dụng (2.20) và (2.23) ta có: ( ) 2 e n ∇ = −2 ( ) ( )e n x n (2.24)

trong đó x n( ) =x n x n( ) (, −1 ,...,) x n N( − +1)T. Thay thế kết quả này vào (2.19) ta được: (adsbygoogle = window.adsbygoogle || []).push({});

w(n+1) = w(n) + 2µe n x n( ) ( ) (2.25)

Đây là phương trình đệ quy LMS, nó cung cấp cho ta một phương pháp đơn giản để điều chỉnh đệ quy các hệ số của bộ lọc sau khi có các mẫu đầu vào mới x(n) và đầu ra tương ứng d(n). Phương trình (2.17), (2.18) và (2.25) theo thứ tự chỉ rõ ba bước cần thiết để hoàn thành mỗi bước lặp của thuật toán LMS. Phương trình (2.17) dùng để lọc, nó được thực hiện để có đầu ra của bộ lọc. Phương trình (2.18) được sử dụng để tính sai số ước lượng. Phương trình (2.25) được dùng để điều chỉnh các hệ số của bộ lọc một cách đệ quy. Trong phương trình này, µ là thông số bước, nó điều khiển tốc độ hội tụ của thuật

toán tới nghiệm tối ưu. Nếu chọn µ lớn thì tốc độ hội tụ nhanh; còn nếu chọn µ giá trị bé thì tốc độ hội tụ sẽ chậm hơn. Tuy nhiên, nếu µ quá lớn thì thuật

toán sẽ không ổn định và do vậy để đảm bảo tính chất ổn định của thuật toán LMS, µ phải được chọn sao cho:

0 < µ <

[ ]

1 3trace R

trong đó trace R[ ] = 0 i i λ = ∑ , với N là bậc của bộ lọc.

Các ưu điểm của thuật toán LMS làm cho nó phổ biến, nhất là trong các ứng dụng lọc thích nghi đơn giản. Thực hiện nó đòi hỏi 2N+1 bộ nhân (N bộ nhân cho tính đầu ra y(n), một cho (2µ) x e(n)N bộ nhân cho (2µe(n)) x

(x(n)))2N bộ cộng.

Thuật toán LMS có thể được tóm tắt như sau:

Input:

- Vector trọng số: w(n)

- Vector tín hiệu đầu vào: x(n)

- Vector tín hiệu ra mong muốn: d(n)

Output:

- Vector tín hiệu ra của bộ lọc: y(n) = wT(n)x(n)

- Sai số ước lượng: e(n) = d(n) - y(n)

- Cập nhật vector hệ số của bộ lọc: w(n+1) = w(n) +2µe(n)x(n)

Thuật toán LMS đã được hoàn thành khá hữu dụng trong các bộ cân bằng thích nghi, khử tạp âm trong điện thoại, v.v…

* Độ ổn định và hiệu quả của thuật toán LMS.

Trong phần này ta sẽ phân tích hiệu quả và độ ổn định của thuật toán LMS theo giá trị bình phương trung bình của sai số e(n). Thông qua việc phân tích, ta sẽ tìm độ hội tụ của vectơ sai số trọng số lọc so với trọng số lọc. Để tránh sự lầm lẫn với các ký hiệu trong thuật toán giảm bước nhanh nhất ta ký hiệu vectơ sai số trọng số lọc trong thuật toán LMS là:

∈( )n =W nˆ( )−W0 (2.26) Trong đó W0 là giá trị tối ưu trong phương pháp Wiener và ˆW(n) là ước lượng trọng số lọc tại thời điểm n của thuật toán LMS. Thuật toán LMS theo vectơ sai số trọng số lọc như sau [9]:

* 0

(n 1) [I µu n u n( ) H( )] ( )n µu n e n( ) ( )

Một phần của tài liệu Nghiên cứu bộ lọc thích nghi và ứng dụng trong khử nhiễu tín hiệu (Trang 41 - 46)