Professional Documents
Culture Documents
(123doc) Bao Cao Mon Qua Trinh Ngau Nhien Va Ung Dung
(123doc) Bao Cao Mon Qua Trinh Ngau Nhien Va Ung Dung
(123doc) Bao Cao Mon Qua Trinh Ngau Nhien Va Ung Dung
Hà Nội, 30-11-2014
LỜI NÓI ĐẦU
Việc ứng dụng các bộ lọc trong lọc nhiễu tín hiệu là một nhu cầu bức thiết
trong quản lý và thu thập thông tin hiện nay. Điều đó đóng vai trò quan trọng trong
kĩ thuật định hướng, định vị và điều khiển các phương tiện di chuyển, cùng với kĩ
thuật phân tích dữ liệu trong các lĩnh vực xử lý tín hiệu và kinh tế nhất là trong thời
đại công nghệ thông tin phát triển như hiện nay.
Bộ lọc Kalman, được Rudolf (Rudy) E. Kálmán công bố năm 1960, là thuật
toán sử dụng chuỗi các giá trị đo lường, bị ảnh hưởng bởi nhiễu hoặc sai số, để ước
đoán biến số nhằm tăng độ chính xác so với việc sử dụng duy nhất một giá trị đo
lường. Bộ lọc Kalman thực hiện phương pháp truy hồi đối với chuỗi các giá trị đầu
vào bị nhiễu, nhằm tối ưu hóa giá trị ước đoán trạng thái của hệ thống.
Để hoàn thành được bài tập lớn này, nhóm chúng em xin được gửi lời cảm
ơn chân thành đến cô giáo hướng dẫn, PGS.TS Nguyễn Thị Hoàng Lan, Giảng
viên Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội - đã hết lòng
giúp đỡ, hướng dẫn, chỉ dạy tận tình để nhóm em hoàn thành được đề tài này.
Nhóm 18
2. Mô hình ứng dụng lọc Kalman lọc nhiễu tín hiệu ………………………5
II. PHÂN BIỆT MÔ HÌNH ỨNG DỤNG LỌC KALMAN VỚI MÔ HÌNH
ỨNG DỤNG LỌC WIENER LỌC NHIỄU TÍN HIỆU………………………12
III. MÔ PHỎNG BỘ LỌC KALMAN VỚI LỌC NHIỄU TÍN HIỆU DÙNG
MATLAB ………………………………………………………………………..13
Khái niệm: Bộ lọc Kalman đơn giản là thuật toán xử lí dữ liệu hồi quy tối ưu.
Cách xác định tối ưu, phụ thuộc tiêu chuẩn đánh giá. Bộ lọc Kalman hợp nhất
tất cả thông tin được cung cấp tới nó. Nó xử lí tất cả các giá trị sẵn có, ngoại
trừ độ sai số, ước lượng giá trị tạm thời của những giá trị quan tâm.
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 qủa cho phép ước đoán trạng
thái của một quá trình (process) 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 đóan 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.
Chúng ta có tín hiệu đó được, mô hình của tín hiệu đo được (tín hiệu tuyến tính),
sau đó á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 được quan tâm. Để ứng dụng hiệu quả mạch Kalman, ta cần mô hình hóa được
một cách tuyến tính sự thay đổi trạng thái cần ước lượng hoặc dự đoán.
- Giả sử khả năng quan sát trạng thái được thực hiện thông qua một hệ thống
đo lường có thể hiện được biểu diễn bằng PT tuyến tính:
z k =H k x k + v k
zk là thông tin quan sát hay đo lường thực hiện tại thời điểm k, x k là
trạng thái tại thời điểm k, H k là ma trận quan sát, v k là nhiễu cộng trong
quá trình đo lường.
Với:
Tóm tắt các phương trình tổng quát trong 2 quá trình: ước lượng và điều chỉnh
Bộ lọc Kalman dựa vào trạng thái ước lượng điều chỉnh ^x k∨k - là ước lượng của
x k để ước lượng trạng thái ^x k+1∨k - là ước lượng dự đoán của x k+1 cho phép
đo z k+1
- Đo lường dư đoán:
^z k+1∨k =H k+1 x^ k +1∨k
- Độ lệch đo lường:
r k +1=z k+1−H k+1 x^ k +1∨k
- Độ lời Kalman:
T −1
K k+ 1=Pk+1∨k H k+1 S k+ 1
Hình trên mô hình hóa hoạt động của bộ lọc Kalman. Chúng ta có tín hiệu
đo được, chúng ta có mô hình 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 bộ lọc để ước lượng trạng thái quan
- Bộ lọc Kalman đề cập đến bài toán tổng quát hóa đi ước lượng trạng thái của
một quá trình được mô hình hóa một cách rời rạc theo thời gian bằng một
phương trình ngẫu nhiên tuyến tính như sau:
x k+1=F k x k +G k uk + wk (1)
Trong đó w và v là 2 vector biến ngẫu nhiên đại diện cho nhiễu hệ thống và nhiễu
đo đạc. 2 biến ngẫu nhiên này độc lập và được giả sử tuân theo phân bố Gauss với
trung bình bằng 0 và ma trận hiệp biến (covariance) lần lượt là Q và R.
w ~N(0,Q)
v ~N(0,R)
Nếu vector trạng thái x có kích thước là n, thì ma trận A sẽ có kích thước là nxn.
B(nxl) là ma trận phụ thuộc vào điều khiển tối ưu u, với u là vector có kích thước l.
Vector đo đạc z có kích thước là m nên ma trận H sẽ là mxn. Chú ý rằng các ma
trận Q,R,A,H có thể thay đổi theo thời gian (từng bước k) nhưng ở đây chúng được
giả sử là không đổi.
Đến đây ta thấy bài toán lọc Kalman chính là đi tìm giá trị ước lượng và
ước đoán của trạng thái x khi ta biết được sự biến thiên của nó và ta đo được
đại lượng z mà phụ thuộc tuyến tính vào x.
Ví dụ trong bài toán chuyển động, ta biết được quy luật thay đổi vận tốc nhưng ta
lại có thể đo đạc được sự thay đổi của vị trí. Khi đó cái ta cần tìm là vận tốc ước
lượng.
−¿¿
Nếu ta giả sử x^ k ϵ Rn , ^x k ϵ Ŕ n
lần lượt là xác suất tiên nghiệm và
hậu nghiệm ước lượng giá trị của x tại thời điểm k. Giá trị tiên nghiệm chỉ phụ
Đềề tàà i 18 – QTNN&UD Tràng 9
thuộc vào mô hình hệ thống (1), còn giá trị hậu nghiệm là giá trị thu được sau khi
đã có kết quả đo đạc zk (2).
Khi đó sai số của ước đoán tiên nghiệm và hậu nghiệm lần lượt là:
−¿¿ −¿¿
ek = xk – x^ k
ek
= x k – ^x k
Ma trận hiệp biến của 2 sai số trên lần lượt được tính theo công thức:
−¿¿ −¿ e−T
Pk = E( e ¿ k )
k
Pk = E( e k eTk )
Mục đích của chúng ta bây giờ là đi tìm hệ số K thỏa mãn phương trình:
−¿¿ −¿
^x k = x^ k + K * ( z k – H * x^ ¿k )
(3)
Thay giá trị ek vào Pk, lấy đạo hàm Pk theo K, ta sẽ tìm được giá trị K mà
tương ứng với nó Pk là nhỏ nhất:
−¿ H T + R
−¿ H
T
H P¿k
Kk = P¿k ¿
¿
¿
Kk thay đổi theo thời gian k và chính là độ lời cần tìm của bộ lọc Kalman
trong mỗi ước đoán.
* Lọc Wiener là giải pháp cho mô hình bài toán ngược,ứng dụng nhiều trong
vấn đề khôi phục tín hiệu gốc bị nhiễu chỉ từ tín hiệu quan sát được. Nói cách
khác thì lọc Wiener là giải pháp ước lượng cho tín hiệu.
* Lọc Kalman là phương pháp thuật toán lọc nhiễu ra khỏi thông tin,ước lượng
quá trình ngẫu nhiên quan sát được. Lọc Kalman nhằm ước lượng trạng thái của
hệ thống tuyến tính theo dạng hộp đen mà tại đó chỉ có thể truy cập đến tín hiệu
đầu ra của hộp,không quan sát được những gì xảy ra trong hộp. Lọc Kalman là
giải pháp không chỉ cho ước lượng tín hiệu mà còn cả trong ước lượng trạng
thái của các quá trình ngẫu nhiên quan sát được.
Ví dụ:
Bài toán Kalman ước lượng vị trí và vận tốc của một ôtô đang chạy trên
đường:
ft
- Mô hình quan sát đo lường vector u tại thời điểm t: ut =
m
Với f là lực đẩy ôtô tại thời điểm t và m là trọng lượng ôtô.
- Chu kỳ ∆t là thời gian tác động lực đẩy giữa thời điểm t – 1 và t
- Các trạng thái vị trí và vận tốc ôtô tại thời điểm t được xác định bởi:
f (∆ t)2
xt = x t−1 + ( ^x t−1 * ∆t) + t
2m
f t ∆t
xt = ^x t−1 +
m
=> Từ đó xác định được các ma trận F t, Bt và xây dựng bộ lọc Kalman
ước lượng vị trí và vận tốc toa tàu
Nhiệm vụ: Từ bộ cảm biến này xác định độ nhiễu của tín hiệu bằng bộ lọc Kalman.
Phân tích:
Định nghĩa:
−¿¿
x^ k ϵ Rn là xác suất tiên nghiệm ước lượng trạng thái k
n
^x k ϵ Ŕ là xác suất hậu nghiệm ước lượng trạng thái k cho giá trị
đo đạc zk
−¿¿
Pk = Pk−1 +Q
−¿
Pk = (1 - K k ) P¿k
Giả thiết:
- Kết quả mong muốn là đường nét liền màu đen, giá trị từ cảm biến là các
điểm màu xanh, kết quả ước lượng là đường nét liền màu đỏ.
Nhận xét: Ta thấy được sự khác biệt rõ rệt của 2 đồ thị. Ở đồ thị 2 số lượng điểm
tập trung quanh kết quả mong muốn dày đặc, kết quả ước lượng (đường nét liền
màu đỏ) khá thẳng so với kết quả mong muốn (đường nét liền màu đen).
%equivelent covariance
%initial value
xpre = 0; %chosing this value is not import;
Ppre = 1; %must different from Zero;
%loop
for i=1:number
%making input and output
x = input(i) + w*randn;
z = x + v*randn;
clf
plot(time, pos, '*')
hold on
plot(time,posest,'LineWidth',3,'MarkerEdgeColor','r','M
arkerFaceColor','g','MarkerSize',20,'Color','r');
end
ĐỀ BÀI: Cho quá trình x ( t ) là quá trình ổn định theo nghĩa rộng và E { x ( t ) }=0 .
BÀI LÀM:
2
Ta có: C xx ( τ )=R xx ( τ )−( E { x ( t ) } )
Vì
¿ Rxx ( τ ) ¿
E { x ( t ) }=0 )
2
C zz ( τ )=R zz ( τ )−( E { z ( t ) } )
2
¿ Rzz ( τ )−( E {x 2 ( t ) } )
2
Mà: E { x 2 ( t ) }=R ( 0 ) → C zz ( τ )=R zz ( τ )−( R ( 0 ) )
¿ E { x 2 ( t +τ ) } . E { x 2 ( t ) }+2 E2 { x ( t+ τ ) x ( t ) }
2
¿ ( R ( 0 ) ) +2 R2xx ( τ )
2 2
→C zz ( τ )=2 R xx ( τ ) =2C xx (τ )
→ đpcm
a. Chứng minh rằng nếu X(t) là quá trình ngẫu nhiên với trung bình bằng 0 và
t
có hàm tự tương quan R XX (t 1 ,t 2) = f (¿¿ 1)f ( t 2 ) w(t 1−t 2 ) thì quá trình:
¿
X (t)
Y(t) = f ( t) là quá trình WSS với hàm tự tương quan w(τ).
b. Chứng minh rằng nếu X(t) là nhiễu trắng với hàm tự tương quan có dạng
X (t)
R XX (t 1 ,t 2) = q (t1 )δ (t 1−t 2) thì quá trình Z(t) = là quá trình nhiễu
√q (t)
trắng WSS.
BÀI LÀM:
Để một quá trình A(t) nào đó là WSS thì E{A(t)} = hằng số và hàm tự tương
quan R AA (t 1 ,t 2) chỉ phụ thuộc vào hiệu số ( t 1 −t2 ).
X (t)
a. Ta có: E{Y(t)} = E{ Y (t ) } = 0 = hằng số (do E{X(t)} = 0 theo giả thiết)
1 2 X (t ) X (t ) R XX (t 1 ,t 2)
Và RYY (t 1 , t 2) = E{Y( t 1 )Y( t 2 )} = E{ f (t ) f (t ) } = f ( t 1 ) . f (t 2 )
=
1 2
t
w (¿ ¿ 1−t 2) , chỉ phụ thuộc vào ( t1 −t2 )
¿
Suy ra Z(t) là quá trình WSS với hàm tự tương quan δ (τ ) (1)
Ta có: với t1 ≠ t 2
(do µ z ( t 1) ¿ µ z ( t 2 ) = 0)
V. KẾT LUẬN
Trên đây là báo cáo tìm hiểu về bộ lọc Kalman trong lọc nhiễu tín hiệu. Thông qua
báo cáo này chúng ta hiểu thêm về mô hình và ứng dụng của lọc Kalman trong bài
toán lọc nhiễu.
Do thời gian làm báo cáo không có nhiều nên chắc chắn có sai sót. Rất mong thầy
cô giáo và các bạn góp ý bổ sung để chúng em có thể hoàn thiện báo cáo hơn.
Chúng em xin chân thành cám ơn cô Nguyễn Thị Hoàng Lan đã giúp đỡ tận tình để
chúng em có thể hoàn thành được nội dung đề tài này!!!
[2] http://www.cs.unc.edu/~welch/kalman/
[3] “An Introduction to the Kalman filter”. Department of Computer Science, Uni-
versity of North Carolina at Chapel Hill, 2006, tác giả Leslie Lamport
[4] http://en.wikipedia.org/wiki/Kalman_filter/
[5] “Nghiên Cứu Bộ Lọc Kalman Áp Dụng Cho Bài Toán Cảm Biến” – 8/2008, tác
giả Nguyễn Quốc Dính.