CHƯƠNG 1:
TỔNG QUAN VỀ LỌC SỐ
1.1.MỞ ĐẦU:
Lọc số là quá trình rất quan trọng của xử lý tín hiệu số, vì chính những khả năng phi thường của các bộ lọc số đã làm cho chúng trở nên rất phổ biến như ngày nay. Các bộ lọc số gồm có hai công dụng chính : phân tích tín hiệu và phục hồi tín hiệu. Phân tích tín hiệu được áp dụng khi tín hiệu mong muốn bị giao thoa với các tín hiệu khác hay bị các loại nhiễu tác động vào nó. Còn phục hồi tín hiệu là khi tín hiệu mà ta mong muốn hay cần để đánh giá, xét nghiệm bị sai lệch đi bởi nhiều yếu tố của môi truờng tác động vào; làm cho nó bị biến dạng gây ảnh hưởng đến kết quả đánh giá.
Có hai kiểu lọc chính: Tương tự và số. Chúng khác nhau hoàn toàn về cấu tạo vật lý và cách làm việc. Một bộ lọc tương tự sử dụng các mạch điện tương tự được tạo ra từ các thiết bị như là điện trở, tụ điện, hay opamp, Có các chuẩn kỹ thuật tốt đã tồn tại trong một thời gian dài cho việc thiết kế một mạch bộ lọc tương tự. Còn một bộ lọc số thì sử dụng một bộ xử lý số để hoạt động tính toán số hoá trên các giá trị được lấy mẫu của tín hiệu. Bộ xử lý có thể là một máy tính mục đích chung như một PC, hay một chíp DSP chuyên dụng. Các quá trình hoạt động của một bộ lọc số được thể hiện như hình 1.1 sau:
Nói chung các công việc của bộ lọc số có thể được thực hiện bởi bộ lọc tương tự( Analog Filter). Các bộ lọc tương tự có ưu điểm là giá thành rẻ, tác động nhanh, dải động( Dynamic Range) về biên độ và tần số đều rộng. Tuy nhiên các bộ lọc số thì có các cấp độ thực hiện hơn hẳn các bộ lọc tương tự, ví dụ như: các bộ lọc số thông thấp có thể có độ lợi( Gain) 1+/-0.0002 từ DC đến 1000Hz và độ lợi sẽ nhỏ hơn 0.0002 ở các tần số trên 1001Hz. Tất cả các hoạt động diễn ra chỉ trong khoảng 1Hz. Điều này không thể thực hiện được ở các bộ lọc tương tự. Và vì vậy các bộ lọc số sẽ dần dần thay thế cho các bộ lọc tương tự với các ưu điểm cụ thể như sau:
1) Một bộ lọc số thì có khả năng lập trình được, còn một bộ lọc tương tự, muốn thay đổi cấu trúc thì phải thiết kế lại bộ lọc.
94 trang |
Chia sẻ: lethao | Lượt xem: 4839 | Lượt tải: 6
Bạn đang xem trước 20 trang tài liệu Đề tài Khử nhiễu tín hiệu âm thanh trên TMS320C6711 DSK, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nên thường lựa chọn hàm giá trung bình của bình phương sai số: (n) = E[e2(n)] (2.6)
Như vậy bộ lọc tối ưu được định nghĩa như bộ lọc giảm thiểu được sai số trung bình bình phương, trong nhóm tất cả các bộ lọc tuyến tính có thể được sử dụng.
2.5.2.Bộ lọc FIR Wiener:
Nếu lúc đầu ta giới hạn bộ lọc tuyến tính ở hình 2.7 phải là FIR, thì đầu ra x(n) của nó được tạo ra từ một tổng hữu hạn của N tích:
x(n) = (2.7)
Tổng này có thể viết gọn hơn dưới dạng một tích vector:
x(n) = hTy(n) (2.8)
Phương trình này sẽ tương đương với phương trình sau:
x(n) = yT(n)h (2.9)
Ở đây, h là vector đáp ứng xung, là ma trận (Nx1), với N là chiều dài của N phần tử đầu tiên của chuỗi đáp ứng xung {hj}:
h = [h0 h1 … hN-1]T (2.10)
Và y(n) là vector tín hiệu chứa N phần tử cuối của chuỗi xung vào {y(n)}:
y(n) = [y(n) y(n-1) … y(n-N+1)]T (2.11)
Số mũ T biểu thị vector hay ma trận chuyển vị.Cấu trúc của một bộ lọc FIR Wiener được minh họa ở hình 2.9 sau đây.
z-1
z-1
z-1
Dãy tín hiệu
quan sát {y(n)}
h0 h1 hN
Tín hiệu ước lượng {x(n)}
Hình 2.9: Cấu trúc bộ lọc ước lượng FIR.
Nếu cả hai chuỗi tín hiệu {x(n)} và {y(n)} đều dừng, thì ta thay các phương trình(2.5) và (2.8) vào phương trình (2.6), ta được biểu thức cho hàm giá MSE như sau:
= E[(x(n)-hTy(n))2]
= E[x2(n)-2hTy(n)x(n)+hTy(n)yT(n)h]
= E[x2(n)]-2hTyx+ hTyy h (2.12)
Ở đây, yy là ma trận tự tương quan( N x N) của tín hiệu y:
yy = E[y(n)yT(n)] (2.13)
Còn yx là vector tương quan chéo N phần tử:
yx = E[y(n)x(n)] (2.14)
Như vậy, đối với một bộ lọc FIR, hàm giá MSE là một hàm bậc hai của các vector của các phân tử của vector đáp ứng xung h. Để được MSE cực tiểu, ta lấy vi phân MSE đối với mỗi phần tử của đáp ứng xung hj , lần lượt, rồi cho tất cả các vi phân đồng loạt bằng 0, như sau đây:
= E[]
= E[2e(n)]
Thay e(n) trong vi phân từng phần dùng các phương trình (2.5) và (2.8):
= E[2e(n) {x(n)-hTy(n)}]
Và, khai triển tín hiệu ra hTy(n) của bộ lọc thành tổng của N tích trong đó chỉ có một tích chứa hj :
= E[2e(n) {-hjy(n-j)}]
= E[-2e(n)y(n-j)]
= 0; ứng với j = 0,1,…, N-1
Lặp lại phép vi phân trên cho mọi giá trị của j, tạo ra 1 nhóm N phương trình vô hướng. Nhóm phương trình này tóm tắt nguyên tắc trực giao thống kê cho một bộ ước lượng FIR. Có thể nói, sai số đầu ra, e(n), đi đôi với một bộ lọc tối ưu thì không tương quan với tín hiệu quan sát nào cả trong số các tín hiệu y(n), y(n-1), .., y(n-N+1), đang có trong bộ lọc.
Nhóm phương trình cũng có thể viết gọn hơn dưới dạng vector bằng cách tập trung tất cả các số hạng vi phân vào 1 vector có tên là vector Gradient V:
= = -2E = -2Ee(n)
= 2E[y(n)e(n)] (2.15)
Thay e(n) vào(2.15) được:
= -2E[y(n)(x(n) – yT(n)h)]
= -2E[y(n)x(n)] + 2E[y(n)yT(n)h] (2.16)
Dùng định nghĩa của ma trận tự tương quan và vector tương quan chéo từ các phương trình( 2.13) và ( 2.14):
= -2yx + 2yy h (2.17)
Như vậy, đáp ứng xung tối ưu hopt giải thiểu sai số MSE sẽ là nghiệm của nhóm N phương trình tuyến tính đồng loạt bằng 0, đó là:
yy hopt = yx (2.18)
Bộ lọc xác định bởi phương trình (2.18) là bộ lọc FIR Wiener hoặc bộ lọc Levinson. Sai số MSE cực tiểu, opt, nhận được bằng cách thay phương trình (2.18) vào phương trình(2.12):
opt = E[x2(n)] - hoptyx (2.19)
Phương trình(2.18) là một phương tiện để thiết kế các bộ lọc FIR tuyến tính tối ưu. Tuy nhiên, muốn tính đáp ứng xung của bộ lọc tối ưu, cần biết rõ ma trận tự tương quan và vector tương quan chéo.
2.5.3.Các thuật toán lọc thích nghi:
2.5.3.1.Giới thiệu:
Các hệ thống xử lý tín hiệu qui ước làm việc theo kiểu vòng hở, nghĩa là cứ thực hiện cùng thao tác xử lý đó trong thời gian hiện tại không cần biết thao tác đó có cho kết quả đúng trong thời gian trước đó hay không. Hay là, các hệ thống đó giả thiết sự giảm cấp trong tín hiệu là đại lượng đã biết trước và bất biến theo thời gian. Việc thiết kế các bộ lọc tuyến tính tối ưu, hay còn gọi là ước lượng này, như lọc FIR Wiener đòi hỏi kiến thức rõ ràng hơn về môi trường của tín hiệu dưới dạng các hàm tương quan, mô hình không gian trạng thái hay ngay cả các hàm mật độ xác suất. Trong đa số các trường hợp, các hàm này là ẩn số và/hoặc là biến thiên theo thời gian.
Các bộ xử lý thích nghi được thiết kế để thực hiện gần đúng như các bộ ước lượng này. Chúng làm việc với vòng hồi tiếp kín, trong đó đáp ứng tần số của bộ xử lý được khống chế bởi thuật toán hồi tiếp. Điều này cho phép chúng bù lại các méo dạng biến đổi theo thời gian và vẫn đạt khả năng vận hành gần với hàm ước lượng tối ưu. Các bộ lọc thích nghi dùng một bộ lọc lập trình được có đáp ứng tần số, hoặc hàm truyền bị biến đổi, hoặc thích nghi hóa mà không làm suy giảm các thành phần mong muốn của một tín hiệu, và chỉ làm suy giảm các tín hiệu can nhiễu, tức là làm giảm thiểu các méo dạng có trong tín hiệu vào.
Cách thức biến đổi đáp ứng xung của bộ lọc thích nghi chính là thuật toán lọc thích nghi. Như vậy, bộ lọc thích nghi là bộ lọc biến đổi theo thời gian mà đáp ứng xung tại một thời điểm nào đó tùy thuộc vào tín hiệu vào, tín hiệu mong muốn và vào thuật toán lọc thích nghi. Bản chất biến đổi theo thời gian của một bộ lọc thích nghi dẫn đến khái niệm hội tụ.Trong một môi trường dừng, chỉ tiêu hội tụ là số lượng mẫu dữ liệu cần để đáp ứng xung của bộ lọc thích nghi đạt đến đáp ứng xung của bộ lọc tối ưu. Còn trong môi trường không dừng, chỉ tiêu hội tụ cũng là một số đo mức độ tương tương giữa đáp ứng xung của bộ lọc thích nghi với đáp ứng xung của bộ lọc tối ưu nay đã biến thiên theo thời gian. Tóm lại, bộ lọc thích nghi có thể là IIR hoặc FIR, nhưng FIR được sử dụng nhiều hơn do bản thân nó là loại bộ lọc ổn định. Như vậy, độ ổn định của toàn bộ bộ lọc thích nghi tùy thuộc vào thiết kế vòng hồi tiếp, tức là thuật toán để hiệu chỉnh các hệ số của bộ lọc.
Sơ đồ khối của bộ lọc FIR thích nghi tổng quát được thể hiện ở hình 2.10 sau.
Bộ lọc
FIR
Thuật toán
thích nghi
Tín hiệu phỏng định( tín hiệu huấn luyện) x(n)
Dãy tín hiệu {x(n)}
quan sát {y(n)}
Đáp ứng xung
Tín hiệu sai số
{e(n)}
Hình 2.10: Cấu trúc của một bộ lọc thích nghi tổng quát.
Chuỗi dữ liệu vào, {y(n)}, được chập với chuỗi FIR, {hi(n)}, và kết quả đầu ra của bộ lọc là:
x(n) = hi(n-1)y(n-i) (2.20)
Biểu thức này được viết lại dưới dạng một tích vector:
x(n) = hT(n-1)y(n) (2.21)
Điểm khác nhau ở đây là các hệ số của bộ lọc FIR được tiếp nhận một cách biến thiên theo thời gian, tức là h(n-1) thay vì là h. Đầu ra hiện hành, x(n), được tính dựa vào nhóm hệ số trước đó là h(n-1). Chuỗi tín hiệu huấn luyện, x(n), bị trừ đi tín hiệu đầu ra để cho một tín hiệu sai số vô hướng, e(n). Sai số bây giờ được dùng cùng với vector tín hiệu vào, y(n) để xác định nhóm hệ số tiếp theo của bộ lọc, h(n). Ký hiệu h(n) được sử dụng vì các dữ liệu từ trước và kể cả y(n) và x(n) đã được dùng để tính h(n). Mục tiêu cuối cùng của thuật toán bộ lọc thích nghi là phỏng định xấp xỉ đáp ứng xung tối ưu. Thông thường, tối ưu được xác định theo nghĩa MSE, nên bộ lọc tối ưu trong một môi trường tĩnh là bộ lọc FIR Wiener của phương trình(2.18). Sau đây chúng ta sẽ tìm hiểu một vài thuật toán chính điều khiển bộ lọc thích nghi.
2.5.3.2.Thuật toán LMS:
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:
Nó là cơ bản đầu tiên.
Nó rất đơn giản.
Trong thực tế nó làm việc rất tốt.
Nó yêu cầu ít phép toán.
Nó 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.
Nó đánh dấu sự thay đổi chậm trong thông tin tín hiệu số rất tốt.
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.
Tín hiệu vào bị làm trễ của bộ lọc tuyến tính kết hợp được đo và cộng lại để cho tín hiệu ra y(n):
y(n) = (2.22)
Phương trình này được viết lại dưới dạng vector là:
y(n) = W(n)XT(n) = X(n)WT(n) (2.23)
Trong đó:
W(n) = [w(0,n) w(1,n) … w(N,n)] (2.24)
X(n) = [x(0,n) x(1,n) … x(N,n)] (2.25)
Số mũ T biểu thị cho ma trận chuyển vị.
Số đo chất lượng làm việc của một bộ lọc là dựa trên tín hiệu sai số:
e(n) = d(n) – y(n) (2.26)
Các hệ số của bộ lọc được hiệu chỉnh sao cho tối thiểu hóa một hàm sai số trung bình bình phương. Đó là hàm E[e2(n)], với E biểu thị là giá trị kỳ vọng hay là toán tử kỳ vọng thống kê:
E[e2(n)] = E[d2(n)]- 2E[d(n)y(n)] + E[y2(n)] (2.27)
Nếu ta xét khi chỉ có một hệ số thì phương trình(2.27) trở thành:
E[e2(n)] = E[d2(n)]- 2E[d(n)x(n)]w(0) + E[x2(n)]w2(0) (2.28)
Nếu d(n) và x(n) hoàn toàn độc lập với nhau, ta có:
E[d(n)x(n)] = E[d(n)]E[x(n)] (2.29)
Nếu các tín hiệu d và x hoàn toàn không đổi theo thời gian, các giá trị mong đợi của tích của chúng cũng sẽ không đổi theo thời gian. Trong trường hợp đó, phương trình(2.28) được viết lại là:
E[e2(n)] = A - 2w(0) + Cw2(0) (2.30)
Với A = E[d2(n)]; = E[d(n)y(n)]; C = E[x2(n)] = E[x(n)]E[x(n)] = E[y(n)/w(0)]E[x(n)] w(0) = E[y(n)]E[x(n)]/C = E[y(n)x(n)]/C = E[y(n)d(n)]/C = /C; do đó, số đo chất lượng làm việc cho một hệ số là:
w(0) = /C (2.31)
mà nó biểu thị giá trị tại đó E[e2(n)] là cực tiểu. Để biểu diễn kết quả trên ta thể hiện ở hình vẽ(2.11) sau đây.
E[e2(n)]
min
0 /C w(0)
Hình 2.11: Đường biểu diễn chất lượng làm việc của 1hệ số.
Hệ số được cập nhật theo cách sau:
w(0,n+1) = w(0,n) - E[e2(n)] (2.32)
ở đây, là một hằng số xác định tốc độ độ hội tụ. Dấu trừ trong phương trình(2.32) gắn liền với chiều của bước. Từ hình(2.11) ta thấy nếu giá trị hiện tại của hệ số ở bên trái của trị cực tiểu /C, bước phải là dương( tăng lên). Mặt khác, nếu giá trị hiện tại của hệ số ở bên phải của trị cực tiểu /C, bước phải là âm( giảm xuống). Trường hợp này sẽ xác định vùng có độ dốc dương của hàm chất lượng. Như vậy, chiều của bước tỷ lệ với phần âm của độ dốc.
Người ta thường dùng phương trình sau đây để đại diện cho thuật toán LMS:
W(n+1) = W(n) + 2e(n)X(n) (2.33)
Phương trình(2.33) cho ta một phương tiện đơn giản nhưng mạnh mẽ và hiệu quả để cập nhật các hệ số, không cần lấy trung bình hoặc vi phân và sẽ được dùng để thực hiện các bộ lọc FIR thích nghi. Phương trình này thường được viết lại với = 2 trong các chương trình, tức là:
wk(n+1) = wk(n) +e(n)x(n-k) (2.34)
Thuật toán LMS rất phù hợp cho một số ứng dụng, gồm khử tạp âm và khử dội vang thích nghi, tiên đoán và cân bằng.
Các biến thể khác của thuật toán LMS đã được sử dụng, như: LMS dấu sai số, LMS dấu dữ liệu, và LMS dấu dấu.
Trong thuật toán LMS dấu sai số, thì phương trình(2.34) trở thành:
wk(n+1) = wk(n) +sgn[e(n)]x(n-k) (2.35)
Với sgn là hàm dấu được định nghĩa như sau:
sgn[e(n)] = (2.36)
Trong thuật toán LMS dấu dữ liệu, phương trình(2.4.30), trở thành:
wk(n+1) = wk(n) + e(n)sgn[x(n-k)] (2.37)
Trong thuật toán LMS dấu dấu, phương trình(2.34), trở thành:
wk(n+1) = wk(n) + sgn[e(n)]sgn[x(n-k)] (2.38)
Và được khai triển ra như sau:
wk(n+1) = (2.39)
Biến thể dấu dấu của thuật toán LMS cơ bản là gọn hơn về mặt toán học, vì thuật toán này không chứa phép nhân nào.
Việc thực hiện các biến thể của thuật toán LMS, không khai thác các đặc điểm xử lý đường ống( Pipeline) của các bộ xử lý tín hiệu số chuyên dụng. Tốc độ thi hành trên các bộ DSP đối với các biến thể này có thể chậm hơn so với thuật toán LMS căn bản do có thêm các lệnh vì để cộng thêm các cấu trúc kiểu giải quyết được yêu cầu cho các điều kiện kiểm tra gồm dấu của sai số hay của mẫu dữ liệu.
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.Các phương thức khác, như là thuật toán RLS sẽ được trình bày ở phần sau. Thuật toán này có thể tỏ ra có độ hội tụ nhanh hơn thuật toán LMS cơ bản, nhưng phải trả giá cho sự tính toán nhiều hơn. RLS dựa trên việc bắt đầu với giải pháp tối ưu và sau khi dùng mỗi mẫu vào để cập nhật đáp ứng xung nhằm duy trì quá trình tối ưu hóa. Số bước cần thiết và trực tiếp được định nghĩa qua mỗi mẫu thời gian.
Các thuật toán trở nên hữu dụng khi không có tín hiệu tham chiếu thích hợp. Bộ lọc được thích ứng trong một cái cách như để phục hồi vài đặc tính của tín hiệu đã bị mất từ trước khi đến bộ lọc. Thay vì lấy dạng sóng yêu cầu làm mẫu, như trong các thuật toán LMS hay RLS, đặc tính này được dùng trong quá trình thích nghi của bộ lọc. Khi có được tín hiệu yêu cầu, quy ước tiến gần như LMS có thể được sử dụng, còn nếu không thì dùng kiến thức biết trước về tín hiệu.
2.5.3.3.Thuật toán RLS:
Nếu thuật toán LMS trình bày là đơn giản nhất và dễ ứng dụng nhất cho các thuật toán thích nghi, thì thuật toán RLS được trình bày sẽ làm tăng thêm sự phức tạp, số lượng phép toán, và độ tin cậy. Trong hoạt động, RLS tiến đến gần bộ lọc Kalman trong các ứng dụng lọc thích nghi, ở mức độ nào đó làm giảm bớt sự phụ thuộc các số lượng đưa vào bộ xử lý.
So với thuật toán LMS, thì RLS tiến đến gần sự đưa ra độ hội tụ nhanh hơn và lỗi ít hơn, với đặc biệt nói về hệ thống chưa biết, sẽ phí tổn cho nhiều sự tính toán hơn. Trong sự tương quan với thuật toán LMS, từ cái mà nó có thể được chuyển hóa, thuật toán RLS tối thiểu lỗi xếp đặt hoàn toàn giữa tín hiệu mong muốn và ngỏ ra từ hệ thống chưa biết.
Trong sự giới hạn, chúng ta có thể sử dụng bất kỳ thuật toán thích nghi nào để làm sáng tỏ một vấn đề bộ lọc thích nghi bằng cách thay thế phần thích nghi của ứng dụng với một thuật toán mới. Khi thuật toán LMS tìm lỗi để tối thiểu hóa, nó chỉ nghĩ đến giá trị lỗi hiện thời, còn trong phương pháp RLS, lỗi được xem là lỗi toàn cục từ lúc bắt đầu đến điểm dữ liệu hiện thời. Nói cách khác, thuật toán RLS có bộ nhớ vô hạn- tất cả các lỗi dữ liệu là được đưa ra cân nhắc trong lỗi toàn cục. Trong các kiểu mà lỗi có thể đến từ một điểm hay nhiều điểm dữ liệu đầu vào không xác thực.
Để thực hiện bộ lọc FIR Wiener, phải nhận được vector tự tương quan, yy và vector tương quan chéo, yx từ các mẫu tín hiệu. Bộ lọc Wiener được thực hiện bằng cách tối thiểu hóa hàm giá MSE, , được xác định lại bằng toán tử E[.] của phương trình(2.16). Tuy nhiên trong thực tế ít khi đạt được các đại lượng trung bình thống kê như yy và yx . Mà thường chỉ có sẵn các phần nhỏ của chính các chuỗi dữ liệu. Một phương pháp xác định đáp ứng xung của một bộ lọc thích nghi là chọn các hệ số để tối thiểu hóa một hàm giá là tổng của bình phương sai số:
(x(k) – x(k))2 (2.40)
Khi hàm giá này được tối thiểu hóa đối với vector đáp ứng xung, h(n), kết hợp với vector ước lượng phỏng định( xấp xỉ), x(n), ta được một phỏng định bình phương bé nhất. Vector đáp ứng xung h(n), tối thiểu hóa hàm giá là tổng của bình phương sai số, bây giờ sẽ là một hàm của các mẫu dữ liệu có được chứ không phải là các trung bình thống kê. Trong khi đó, có thể tìm ra một biểu thức cho h(n) bằng phương pháp tương tự như đã dùng để tìm ra bộ lọc Wiener, một cách tiếp cận linh hoạt hơn là để ý thấy hai bài toán tối ưu hóa giống nhau và tìm được nghiệm bằng suy diễn tương tự. Vì hàm giá là tổng của bình phương sai số, phương trình(2.40) nhận được từ hàm giá MSE bằng cách thay kỳ vọng bằng phép tổng, nên vector đáp ứng xung h(n) có thể nhận được từ phương trình(2.18) bằng cách thay kỳ vọng bằng tổng. Như vậy:
Ryy(n)h(n) = ryx(n) (2.41)
Trong đó:
Ryy(n) = y(k)yT(k) (2.42)
Và: ryx(n) = y(k)x(k) (2.43)
Trong nhiều ứng dụng của bộ lọc thích nghi, đáp ứng xung phải sửa đổi hoặc cập nhật khi xuất hiện các mẫu dữ liệu mới. Phương pháp trực tiếp nhất để đáp ứng yêu cầu này là nới rộng thêm các giới hạn trên của các tổng của các phương trình(2.40), (2.42) và (2.43), và giải toàn bộ phương trình(2.41). Tuy nhiên, một phương pháp có hiệu quả về mặt tính toán hơn để đạt được một biểu thức đệ quy theo thời gian cho h(n) theo nghiệm cực tiểu bình phương h(n-1) trước đó và dữ liệu mới, y(n) và x(n). Bước thứ nhất là lấy cho được các biểu thức đệ quy cho Ryy(n) và ryx(n):
Ryy(n) = Ryy(n-1) + y(n)yT(n) (2.44)
ryx(n) = ryx(n-1) + y(n)x(n) (2.45)
Thay ryx trong phương trình(2.45) dùng phương trình (2.41):
Ryy(n)h(n) = Ryy(n-1)h(n-1) + y(n)x(n)
Sau đó dùng phương trình(2.40) để thay thế Ryy(n-1):
Ryy(n)h(n) = | Ryy(n) + y(n)yT(n)| h(n-1) + y(n)x(n)
Nhân hai vế với R-1yy(n), ta được:
h(n) = h(n-1) + R-1yy(n) y(n)e(n) (2.46)
Mà e(n) = x(n) – x(n) = x(n) - hT(n-1) y(n) (2.47)
Có thể suy ra một phương trình đệ quy cho R-1yy(n) áp dụng hằng đẳng thức Sherman-Morrison vào phương trình(2.44):
R-1yy(n), = R-1yy(n-1) - (2.48)
Tập hợp ba phương trình(2.46), (2.47) và(2.48) được gọi là thuật toán bình quân bé nhất đệ quy( RLS).
2.5.3.4.Thuật toán NLMS: [7]
2.5.3.4.1.Giới thiệu:
Dữ liệu đầu vào bị bóp méo có khuynh hướng là hư hỏng độ hội tụ của sự thực hiện các bộ lọc số thích nghi kiểu LMS. Để khắc phục nhược điểm này, Ozeki và Umeda đã đề nghị một thuật toán APA, dựa trên các hình chiếu không gian phụ có quan hệ với nhau. Thuật toán NLMS nổi bật ở sự cập nhật vector các hệ số chỉ dựa trên vector ngỏ vào hiện thời; APA cập nhật vector hệ số dựa trên K vector đầu vào. Trong cả hai kiểu NLMS và APA, số bước khống chế tốc độ của độ hội tụ và trạng thái ổn định vượt qua mức lỗi bình phương trung bình, MSE. Để thấy sự đối lập thủ tục của độ hội tụ nhanh và sự điều chỉnh không chính xác chậm, thì số bước hội tụ cần được điều khiển. Trong chuẩn LMS, các sự kết hợp khác nhau cho sự điều khiển số bước đã được đề xuất. Sự hoạt động của các quá trình phối hợp này đã được xác định bởi mức độ chính xác. Chúng có thể ước lượng đến chừng nào mà hoạt động của bộ lọc được tối ưu hoá. Các tiêu chuẩn khác nhau đã được đề xuất cho mục đính này. Kwong và Johnston dùng các lỗi xãy ra tức thời bình phương. Để cải thiện sự miễn nhiễu dưới tác dụng của nhiễu Gaussion; Aboulnasr và Mayyas dùng sự tự tương quan bình phương của các lỗi của các thời điểm kế liền. Và Pazaitis với Constantinides đã kế thừa tích chập bậc bốn của lỗi xảy ra tức thời. Số bước tối ưu hoá cho thuật toán NLMS là thu được từ việc tối thiểu nguồn gốc bình phương trung bình ở mỗi sự lặp lại. Tiêu chuẩn này hoạt đông rất hiệu quả cho LMS, không ứng dụng trực tiếp cho APA. Bởi vì lỗi xảy ra tức thời của APA là một vector không phải là một số lượng vô hướng như trong LMS.
Trong phần này chúng ta sẽ đề xuất một tiêu chuẩn mà cung cấp một sự đo lường của trạng thái bộ lọc thích nghi.v.v.nó cho biết cách đóng bộ lọc thích nghi để cho hoạt động được tối ưu hoá. Sử dụng tiêu chuẩn này, chúng ta trình bày một số bước có thể khác nhau APA, mà có tốc độ hội tụ nhanh hơn và sự điều chỉnh lỗi sai ít hơn các sự kết hợp thực thi. Chúng ta cũng sẽ trình bày, như một kiểu đặc biệt, một thuật toán NLMS số bước có thể khác nhau. Thông qua phần này, chúng ta chấp nhận các ký hiệu dưới đây: ||.|| là tiêu chuẩn Euclidean( Tiêu chuẩn của Ơ-clit) của một vector, và Tr(.) là dấu của một ma trận.
2.5.3.4.2.Số bước khác nhau APA:
Xem dữ liệu {d(i)} xuất phát từ kiểu:
d(i) = ui w0 + v(i) (2.49)
Ở đây, w0 là một vector cột chưa biết mà chúng ta mong muốn( xấp xỉ) để ước lượng, v(i) trả giá cho nhiễu phép đo và ui làm dấu 1xM hàng các vector đầu vào. Cho phép Wi là một ước lượng cho w0 ở sự lặp lại i. Thuật toán hình chiếu quan hệ tính toán Wi thông qua:
Wi = Wi-1 + Ui*(UiUi*)-1.ei (2.50)
Với:
Ui = ; di = ; ei = di - UiWi-1; và là số bước.
A.Tối ưu hoá số bước khác nhau:
Cập nhật sự đệ quy( 2.50) có thể được viết trong các dạng của vector hệ số lỗi, Wi~ = W0 - Wi hay:
Wi~ = Wi-1~ - Ui*(UiUi*)-1.ei (2.51)
Bình phương hai vế và lấy ước lượng, chúng ta tìm độ lệch bình phương trung bình MSD đáp ứng:
E||Wi~||2 = E||Wi-1~||2 -2Re(E[ei*(UiUi*)-1.Ui Wi-1~]) + 2E[ei*(UiUi*)-1.ei ]
E|| Wi-1~||2 - () (2.52)
Nếu chúng ta chọn để () là lớn nhất, sau khi chọn điều này được bảo đảm mà MSD sẽ phải giảm bớt một lượng lớn nhất từ sự lặp lại (i-1) để lặp lại i. Tối đa hóa:
() = 2Re(E[ei*(UiUi*)-1.Ui Wi-1~]) - 2E[ei*(UiUi*)-1.ei ] (2.53)
Số bước khác nhau NLMS và thuật toán hình chiếu quan hệ được thể hiện ở các hình sau thực nghiệm sau:
Hình 2.12: Đồ thị MSD cho VS-APA(Variable Step_Size APA) và chuẩn APA (K = 8, C = 0:15, đầu vào: Gaussian AR(1), cực ở 0.9).
Hình 2.13: Đồ thị của MSD cho VS-NLMS và chuẩn NLMS (K = 1, C =
0:0001, ngỏ vào: Gaussian AR(1), cực ở 0.9).
Hình 2.14: Đồ thị của MSD cho các thuật toán VS khác đã được đề xuất (K = 1,
C = 0:0001, ngỏ vào: Gaussian AR(1), cực ở 0.9).
Với sự chú ý đến , để tối ưu hóa số bước:
0(i) = (2.54)
Chuỗi nhiễu v(i) được xác định và không phụ thuộc sự phân bố theo một kiểu nào đó và không phụ thuộc thống kê của sự chuyển ngược dữ liệu{Ui}, và bỏ qua sự phụ thuộc của Wi-1~ trên nhiễu quá khứ, 0(i) được xác định như sau:
0(i) = (2.55)
Với :
= E[W~*i-1Ui*(UiUi*)-1.Ui Wi-1~] (2.56)
Ở đây
Ui*(UiUi*)-1.Ui là một ma trận hình chiếu lên trên R(Ui*), dãy không gian của Ui*. Chọn :
Pi Ui*(UiUi*)-1.Ui Wi-1~, là hình chiếu của Wi-1~ lên trên R(Ui*).
Từ ||Pi||2 = W~*i-1Ui*(UiUi*)-1.Ui Wi-1~, số bước tối ưu hóa ở phương trình(2.55) trở thành:
0(i) = (2.57)
Trong sự tính toán nhỏ 0(i) này, tuy nhiên sự lựa chọn Pi là không thể trong khi thích nghi, vì W0 là không biết.
B.Số bước thay đổi APA:
Khi v(i) = 0, Pi = Ui*(UiUi*)-1.ei và giống nhau với nhiễu, nó theo :
E[Pi] = E[ Ui*(UiUi*)-1.ei]
Để ước lượng Pi bằng thời gian trung bình như sau:
= + (1-) Ui*(UiUi*)-1.ei (2.58)
Với một nhân tố san bằng (0<1).
Sử dụng ||Pi||2 thay cho E||Pi||2 ở phương trình(2.57), số bước khác nhau (VS)APA trở thành:
Wi = Wi-1 + Ui*(UiUi*)-1.ei
(i) = max. (2.59)
Với C là một hằng số xác định. Từ (2.57) và (2.59), chúng ta biết rằng C quan hệ với , và đại lượng này có thể xuất hiện ở . Nên C tỷ lệ thuận với K và tỷ lệ nghịch với SNR.
Khi lớn, (i) hướng đến max. Khi nhỏ, số bước là nhỏ. Vì vậy sự phụ thuộc trên , (i) khác nhau giữa 0 và max. Để bảo đảm cho bộ lọc ổn định, max được chọn <2.
C.Số bước khác nhau NLMS:
Một kiểu đặc biệt của (2.59) là một thuộc toán NLMS số bước khác nhau thu được bằng cách điều chỉnh K = 1. Xem lại chuẩn NLMS, tính toán Wi thông qua:
Wi = Wi-1 + (i)ei (2.60)
Ở đây, e(i) = d(i) - uiWi-1. Từ( 2.59), số bước được tính toán khi:
(i) = max., với bây giờ:
= + (1-) ei (2.61)
2.5.3.4.3.Kết quả sự mô phỏng:
Chúng ta minh họa kết quả của sự hoạt động của các thuật toán đã đề xuất bằng các hình vẽ ở trên. Ở hình(2.12) chúng ta thể hiện MSD(). Các dòng nét liền chỉ cho biết các kết quả của APA với số bước cố định, ở đây chúng ta chọn = 0.002; 0.03 và 1. Nên có thể thấy, đề xuất VS_APA hội tụ nhanh hơn và có lỗi điều chỉnh sai thấp hơn.
2.6.KẾT LUẬN:
Chương này đã xây dựng được lý thuyết rất chặc chẽ để có thể hiểu về một bộ lọc thích nghi một cách rõ ràng, sự hoạt động, quá trình cập nhật các hệ số theo một thuật toán định trước. Các thuật toán như: LMS, RLS, NLMS được xây dựng lên cho ứng dụng cập nhật các hệ số một cách hiệu quả và thông minh. Đây là thuyết cơ sở để chương sau sẽ đi xây dựng bộ lọc thích nghi cho khử nhiễu với một thuật toán cụ thể được chọn cho việc cập nhật các hệ số.
CHƯƠNG 3:
KHỬ NHIỄU KIỂU THÍCH NGHI.
3.1.MỞ ĐẦU:
Chương này tiếp cận các ý tưởng cơ bản để thiết kế một bộ lọc thích nghi cho ứng dụng khử nhiễu, dựa trên các lý thuyết đã được giới thiệu ở các chương trước.
Khử nhiễu dựa trên việc trừ nhiễu từ tín hiệu nhận được, một hoạt động được điều khiển theo kiểu thích nghi nhằm mục đích cải tiến hoạt động( tăng tỷ số tín hiệu trên nhiễu) của hệ thống. Khi sự hoạt động của hệ thống được điều khiển bởi một quá trình xử lý thích nghi, nó có thể đạt được một hoạt động hệ thống cao vượt trội hơn so với khử nhiễu không thích nghi.
3.2.LÝ THUYẾT KHỬ NHIỄU KIỂU THÍCH NGHI: [5]
3.2.1.Các chế độ khử nhiễu kiểu thích nghi:
Về cơ bản, một bộ khử nhiễu thích nghi có một cặp ngỏ vào, các hệ thống điều khiển thích nghi lặp khép kín. Toàn bộ cấu trúc của hệ thống được xác định như hình 3.1 sau đây.
Hình 3.1: Cấu trúc khử nhiễu thích nghi.
Trong thực tế, hai ngỏ vào của hệ thống được xuất phát từ một đôi cảm biến: một bộ cảm biến chính và một bộ cảm biến tham khảo. Bộ cảm biến chính nhận một tín hiệu mang thông tin s(n) đã bị thay đổi bởi nhiễu cộng v0(n). Tín hiệu s(n) và nhiễu cộng là không tương quan với nhau. Bộ cảm biến tham khảo nhận một nhiễu v1(n) mà không tương quan với tín hiệu s(n) nhưng tương quan với nhiễu v0(n) ở ngỏ vào bộ cảm biến chính, theo một chiều hướng chưa xác định:
E[s(n)v1(n-k)] = 0 ; với mọi k (3.1)
E[v0(n)v1(n-k)] = p(k) (3.2)
Ở đây, trước khi các tín hiệu nhận giá trị thực và p(k) là một phép tương quan chéo chưa biết cho độ trễ k.
Tín hiệu tham khảo v1(n) được xử lý bằng một bộ lọc thích nghi để cung cấp tín hiệu ngỏ ra y(n). Ngỏ ra bộ lọc được trừ cho tín hiệu chính d(n), là đáp ứng mong muốn của bộ lọc thích nghi. Tín hiệu lỗi được định nghĩa như sau:
e(n) = d(n) – y(n) (3.3)
Tín hiệu lỗi quay vòng được sử dụng để điều chỉnh đưa ra các