Bài toán lọc Kalman là bài toán mà trong đó các phương trình phép đo và phương trình tuyến tính trạng thái được giải chung để tìm các trạng thái chưa biết dưới dạng tối ưu. Bài toán có thể phát biểu như sau:
Sử dụng các dữ liệu quan sát chứa trong véc tơ y(1), y(2), .,y(k), để với mỗi tìm đánh giá trạng thái x(i) với sai số bình phương trung cực tiểu.
31 trang |
Chia sẻ: maiphuongdc | Lượt xem: 4971 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đề tài Bộ lọc Kalman, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Click to edit Master title style Click to edit Master text styles Second level Third level Fourth level Fifth level 24/06/2011 ‹#› Bộ lọc Kalman Giáo viên hướng dẫn: Trần Cao Trưởng Sinh Viên: Trần Ngọc Phương Nguyễn Đức Anh Trương Ngọc Khánh Tổng quan về bộ lọc - Bộ lọc là một quá trình xử lý nhằm loại bỏ những gì không có giá trị hoặc không quan tâm đến và giữ lại những gì có giá trị sử dụng. Tiếng Anh gọi là filter. Trong xử lý tín hiệu, bộ lọc được thiết kế để lọc tín hiệu ‘‘sạch’’ (cần tìm) từ trong tín hiệu trộn lẫn giữa tín hiệu sạch và nhiều tín hiệu ‘‘bẩn’’ (không cần thiết) Ví dụ đơn giản - Ví dụ đơn giản là bạn có tín hiệu S (signal) trộn lẫn với nhiễu N (noise) trong một tín hiệu tổng hợp X. Và ta cần lọc để loại bỏ N ra khỏi X. X(k) = S(k) + N(k) - Biết rằng nhiễu N dao động xung quanh 0 và có giá trị trung bình là 0 khi M đủ lớn. - Ta thấy rằng để loại bỏ N, ta có thể lấy tổng của X trên một ‘‘đoạn’’ có kích thước M. - Nhìn ở một khía cạnh nào đó ta đã loại bỏ được N * Tuy nhiên, cũng cần phải chú ý rằng cái bộ lọc có lọc kiểu gì thì cũng không thể loại hết toàn bộ nhiễu. Thế nên, các bộ lọc cũng chỉ lọc ra được tín hiệu sạch, theo nghĩa không còn nhiều nhiễu, nhưng cũng chỉ là ước lượng của tín hiệu thực, chứ không phải chính xác là tín hiệu thực. Tìm hiểu về nhiễu - Nhiễu là loại tín hiệu ngẫu nhiên, nó làm ảnh hưởng và làm thay đổi đến tín hiệu trong quá trình truyền và quá trình xử lý tín hiệu tiếng nói. Nhiễu trong tín hiệu tiếng nói làm ảnh hưởng và thay đổi đến tiếng nói trong quá trình truyền và quá trình xử lý tín hiệu tiếng nói. Nó bao gồm các loại nhiễu sau: + Nhiễu trắng (white noise) + Nhiễu màu (colored noise) + Nhiễu xung (Impusive noise) * Trong đồ án này ta chỉ quan tâm đến Nhiễu trắng Nhiễu trắng (White Noise) - Nhiễu trắng là một loại tín hiệu ngẫu nhiên có mật độ phân bố công suất phẳng nghĩa là tín hiệu nhiễu có công suất bằng nhau trong toàn khoảng băng thông. Tín hệu này có tên là nhiễu trắng vì nó có tính chất tương tự với ánh sáng trắng. - Nhiễu trắng là một loại nhiễu có hàm mật độ xác suất Gaussian. - Về mặt toán học nguồn nhiễu trắng n(t) có thể mô hình bằng một biến xác suất Gaussian với giá trị kỳ vọng và bình phương độ lệch chuẩn - Về mặt lý thuyết nhiễu trắng có băng tần vô hạn và công suất nhiễu là như nhau ở mọi tần số. Nhưng trên thực tế, phổ công suất của nhiễu trắng có băng tần giới hạn. Bộ lọc Kalman là gì? Vào năm 1960, R.E Kalman đã công bố bài báo nổi tiếng về một giải pháp truy hồi để giải quyết bài toán lọc thông tin rời rạc tuyến tính. Từ đó đến nay cùng với sự phát triển của tính toán kỹ thuật số, bộ lọc Kalman đã trở thành chủ đề nghiên cứu sôi nổi và được ứng dụng trong nhiều ngành kỹ thuật công nghệ khác nhau : trong tự động hóa, trong định vị cũng như trong viễn thông (và nhiều lĩnh vực khác nữa). Một cách khái quát, bộ lọc Kalman là một tập hợp các phương trình toán học mô tả một phương pháp tính toán truy hồi hiệu quả cho phép ước đoán trạng thái của một quá trình sao cho trung bình phương sai của độ lệch (giữa giá trị thực và giá trị ước đóan) là nhỏ nhất. Bộ lọc Kalman rất hiệu quả trong việc ước đoán các trạng thái trong quá khứ, hiện tại và tương lai thậm chí ngay cả khi tính chính xác của hệ thống mô phỏng không được khẳng định. Học bộ lọc Kalman như thế nào Từ một tín hiệu cần đo, khi chúng ta đo, sẽ có những sai số từ cảm biến, ảnh hưởng đến tín hiệu cần đo, môi trường đo có nhiễu... Tất cả những thứ này, tổng hợp lại, sẽ cho ta một kết quả đo.* Một trong những kiến thức nền tảng để có thể hiểu về nguyên lý của bộ lọc Kalman chính là xác suất. Hình trên mô hình hóa hoạt động của mạch lọc Kalman. Chúng ta có tín hiệu đo được, chúng ta có mô hình của tín hiệu đo được (đòi hỏi tuyến tính) và sau đó là áp dụng vào trong hệ thống phương trình của mạch lọc để ước lượng trạng thái quan tâm. Thực ra tín hiệu đo là không khó, phương trình đã có sẵn, cái chung ta cần chính là mô hình hoá hệ thống. Để có thể ứng dụng một cách hiểu quả mạch lọc Kalman thì chúng ta phải mô hình hóa được một cách tuyến tính sự thay đổi của trạng thái cần ước lượng Bộ lọc Kalman Bộ lọc Kalman gắn liền với hệ động học tuyến tính, nó cung cấp một thuật toán truy hồi cho bài toán lọc tối ưu tuyến tính. Trong đó, mỗi trạng thái đánh giá được cập nhật được tính từ đánh giá trước đó và dữ liệu quan sát mới. Như vậy chỉ có trạng thái tại bước thời gian trước bước hiện tại được lưu trữ. Thêm nữa, bằng việc loại trừ sự việc lưu trữ nhiều dữ liệu quan sát quá khứ mà bộ lọc kalman tính toán đơn giản hơn việc tính trực tiếp từ tập dữ liệu quan sát quá khứ tại mỗi bước của quá trình lọc Xét một hệ động học tuyến tính, rời rạc theo thời gian được mô tả bởi sơ đồ khối Phương trình tuyến tính quá trình: Trong đó F(k, k-1) là ma trận biến đổi trạng thái x(k-1) từ thời điểm k-1 sang thời điểm k. Nhiễu quá trình w(k) được giả thiết là nhiễu trắng Gauss cộng tính với kỳ vọng bằng không và ma trận tương quan được xác định bởi: khi n=k khi n≠k Phương trình phép đo: trong đó, y(k) là phép đo được tại thời điểm k và H(k) là ma trận đo, nhiễu v(k) được giả định là nhiễu trắng Gause tính với kỳ vọng bằng không và ma trận tương quan: * Nhiễu đo v(k) không tương quan với nhiễu trình w(k) Bài toán lọc Kalman là bài toán mà trong đó các phương trình phép đo và phương trình tuyến tính trạng thái được giải chung để tìm các trạng thái chưa biết dưới dạng tối ưu. Bài toán có thể phát biểu như sau: Sử dụng các dữ liệu quan sát chứa trong véc tơ y(1), y(2),….,y(k), để với mỗi tìm đánh giá trạng thái x(i) với sai số bình phương trung cực tiểu. Đánh giá tối ưu Thiết kế bộ lọc Tại thời điểm k, tín hiệu tiếng nói được mô trả bởi 2 phương trình: Phương trình tuyến tính trạng thái (1) Kết quả phép đo (2) * Yêu cầu sử dụng thông tin chứa trong phép đo mới y(k) để cập nhật đánh giá trạng thái chưa biết x(k) Đặt là đánh giá tiên nghiệm của trạng thái mà tồn tại tại thời điểm k. Với bộ đánh giá tuyến tính, chúng ta có thể biểu diễn đánh giá hậu nghiệm là tổ hợp tuyến tính của đánh giá tiên nghiệm và phép đo mới: (3) ma trận thừa số và K(k) cần được xác định Sai số véc tơ trạng thái được xác định bởi: (4) Áp dụng nguyên lý trực giao chúng ta có thể viết: với (5) Áp dụng (2) (3) (4) (5) ta có (6) Do nhiễu quá trình và nhiễu đo không tương quan nên Sắp xếp lại các số hạng, chúng ta có thể viết lại (6) Trong đó, I là ma trận đơn vị. Áp dụng nguyên lý trực giao và chúng ta có (7) (7) trở thành (8) Đối với các giá trị bất kỳ của x(k) và quan sát y(i), biểu thức (8) chỉ có thể thoả mãn nếu (9) Thay thế biểu thức (9) vào (3), chúng ta có thể biểu diễn đánh giá hậu nghiệm của trạng thái tại thời điểm k như sau: (10) Ma trận K(k) còn gọi là ma trận khuyếch đại Kalman. Từ nguyên lý trực giao chúng ta có: (11) (12) trong đó, là đánh giá của y(k) cho trước phép đo trước đó . Định nghĩa quá trình khôi phục: (13) Quá trình khôi phục biểu diễn một phép đo thông tin "mới" chứa trong y(k). Cũng có thể biểu diễn thành: (14) (11) – (12) và áp dụng (13) ta có: (15) Sử dụng biểu thức (2) và (10), chúng ta có thể biểu diễn vectơ trạng thái sai số (16) Thay thế (14) và (16) vào (15), ta nhận được: (17) Do nhiễu đo v(k) độc lập với trạng thái x(k) và do đó biểu thức (17) trở thành: (18) Định nghĩa ma trận tương quan sai số tiên nghiệm (19) Dựa vào định nghĩa ma trận phương sai của nhiễu Gauss v(k) và (19), chúng ta có thể viết biểu thức (18) (20) Giải phương trình này, chúng ta nhận được (21) K(k) được xác định theo các thành phần của ma trận tương quan tiên nghiệm P(k|k-1) - Tương quan sai số tiên nghiệm P(k|k-1) tại thời điểm k được xác định theo (19). Cho trước P(k|k-1), ma trận tương quan sai số hậu nghiệm tại thời điểm k, được xác định bởi (22) - Cho ma trận phương sai hậu nghiệm "cũ", P(k-1|k-1), tính ma trận tương quan tiên nghiệm P(k|k-1). Để thực hiện ở trên, chúng ta thay (16) vào (22) và chú ý quá trình ngẫu nhiên v(k) độc lập với sai số đánh giá tiên nghiệm , chúng ta nhận được: (23) Khai triển các thành phần trong biểu thức (23) và sau đó sử dụng (21), chúng ta có thể xác định lại sự phụ thuộc của ma trận tương quan hậu nghiệm P(k|k) theo ma trận tương quan tiên nghiệm P(k|k-1) với dạng đơn giản sau: (24) Đối với bước 2 của lan truyền tương quan sai số, đầu tiên chúng ta nhận thấy rằng, đánh giá tiên nghiệm của trạng thái được xác định theo thành phần đánh giá hậu nghiệm cũ như sau: (25) Chúng ta có thể sử dụng (1) và (25) để biểu diễn sai số đánh giá tiên nghiệm ở dạng khác: (26) Sử dụng (26) vào (19) và chú ý là nhiễu quá trình w(k) độc lập với , nhận được: (27) Công thức này xác định sự phụ thuộc của ma trận tương quan tiên nghiệm P(k|k-1) vào ma trận tương quan hậu nghiệm "cũ" P(k-1|k-1). Với (25), (27), (21), (10) và (24), chúng ta có thể tóm tắt việc đánh giá truy hồi trạng thái trong bảng 1.1 trong đó đánh giá trạng thái ban đầu được chọn là: và giá trị ban đầu của ma trận tương quan hậu nghiệm: Lựa chọn này cho điều kiện đầu không chỉ thoả mãn về mặt trực giác mà còn đảm bảo đánh giá không chệch trạng thái x(k). Kết luận Tóm lại mạch lọc Kalman bao gồm 2 bước : 1- Ước đoán trạng thái tiên nghiệm, và sau đó, 2- Dựa vào kết quả đo để hiệu chỉnh lại ước đoán. Ta có thể tóm tắt lại hoạt động của mạch lọc Kalman bằng các phương trình sau: Như hình vẽ Tài liệu tham khảo Speech Enhancement using Kalman Filtering Kalman Filtering Theory & Practice Using Matlab Tracking & Kalman Filtering Made Easy Nhiều bản dịch tiếng việt Kalman Filter