Giới thiệu bộ lọc Wiener: Bộ lọc wiener là bộ lọc nổi tiếng trong thế giới của các loại tín hiệu.. Bộ lọc weiner dựa trên phương pháp thống kê để giảm nhiễu trong tín hiệu hiện tại
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÀI TẬP LỚN
Đề tài :
Giảng viên hướng dẫn: PGS.TS Nguyễn Linh Giang
Trung Thành Phương 20083674 Nguyễn Hoài Linh 20081534
Môn học : Mô phỏng các hệ thống truyền thông
Hà nội 11/2012
MỤC LỤC
I Tổng quan về bộ lọc Wiener……… …………2
Trang 22 Nguyên lý cơ bản của bộ lọc Wiener……….4
3 Vấn đề xây dựng bộ lọc Wiener………9
II Ứng dụng bộ lọc Wiener trong xử lý ảnh……… 11
1 Tổng quan về khôi phục ảnh……… …………11
2 Ước lượng sự xuống cấp……….12
3 Bộ lọc Wiener và khôi phục ảnh………14
4 Thiết kế bộ lọc FIR Wiener………21
III Mô phỏng thử nghiệm Wiener Filter……….27
1 Giới thiệu Matlab……….27
2 Tiến hành thử nghiệm……… 28
KẾT LUẬN……….38
Tài Liệu Tham Khảo………39
Trang 3I Tổng quan về bộ lọc Wiener:
1 Giới thiệu bộ lọc Wiener:
Bộ lọc wiener là bộ lọc nổi tiếng trong thế giới của các loại tín hiệu Bộ lọc
weiner là bộ lọc đã được Norbert Wiener (ông là nhà toán học nổi tiếng trên cả
phương diện toán học thuần túy và toán học ứng dụng, được coi là cha đẻ của ngành Điều khiển học, là người đi tiên phong trong nghiên cứu về quá trình ngẫu nhiên và quá trình nhiễu) đề xuất trong những năm 1940 và được công bố vào năm
1949
Bộ lọc wiener được dùng cho rất nhiều mục đích và có vai trò quan trọng trong
nhiều ứng dụng như cân bằng kênh, dự đoán tuyến tính, hủy bỏ tiếng vang, giảm
tiếng ồn, kênh dự toán, phục hồi tín hiệu …
Bộ lọc weiner dựa trên phương pháp thống kê để giảm nhiễu trong tín hiệu hiện tại bằng cách so sánh nó với một tín hiệu ước tính mong muốn không có nhiễu
Cùng lúc với thời điểm mà Wiener xây dựng bộ lọc có nghiên cứu đồng thời của
Kolmogorov và công bố vào năm 1941 Do đó lý thuyết này thường được gọi là lý
thuyết lọc Wiener – Kolmogorov mang tên cả hai tác giả Wiener-Kolmogorov đã
thiết kế mạch lọc đầu tiên và sau đó đã có nhiều nhà khoa học khác phát triển tiếp
trong đó có cả bộ lọc Kalman nổi tiếng
Trang 42 Nguyên lý cơ bản của bộ lọc Wiener:
Bộ lọc Wiener là một bộ lọc thích nghi (adaptive filter) tức là các giá trị hệ số của
bộ lọc thay đổi theo thời gian, thường là phản ứng với những thay đổi trong đặc
tính của tín hiệu đầu vào
Trước hết ta nhắc đến thuật toán Wiener Filter (WF), đây là thuật toán xuyên suốt
ý tưởng để xây dựng bộ lọc Wiener Nguồn gốc cơ bản của thuật toán WF là tạo ra
tín hiệu “sạch” không có hay ít nhiễu bằng cách nén nhiễu Ước lượng được thực
hiện bằng cách hạ thấp sai số bình phương trung bình (Mean Square Error) giữa tín
hiệu mong muốn và tín hiệu ước lương
Một bộ lọc Wiener có thể là một trong hai loại IIR hoặc FIR
IIRWiener là bộ lọc đáp ứng xung vô hạn bao gồm các phương trình phi tuyến FIR Wiener là bộ lọc đáp ứng xung hữu hạn bao gồm các phương trình tuyến tính
Bộ lọc Wiener thường được gắn với các công trình xây dựng bộ lọc FIR Điều này
là bởi vì các hệ số bộ lọc Wiener thay đổi theo thời gian, và bộ lọc IIR có thể trở
nên không ổn định cho các giá trị hệ số nhất định Để ngăn chặn điều không ổn
định này, chúng ta thường xây dựng các bộ lọc thích nghi với cấu trúc FIR
Trang 5Việc thiết kế các bộ lọc Wiener có nhiều cách tiếp cận khác nhau Giả thiết phải có
kiến thức về các tính chất quang phổ của tín hiệu ban đầu và nhiễu, và một
tìm kiếm thời gian lọc tuyến tính bất biến có đầu ra đến càng gần với tín hiệu ban
đầu càng tốt Bộ lọc Wiener được đặc trưng bởi sau:
1 Giả thiết: tín hiệu và nhiễu (nhiễu cộng) của quá trình ngẫu nhiên tĩnh tuyếntính với phổ đặc trưng hoặc tự tương quan và tương quan chéo đã biết
2 Yêu cầu: các bộ lọc phải có thể thực hiện vật lý / quan hệ nhân quả (yêu cầunày có thể được bỏ qua, dẫn đến một giải pháp không quan hệ nhân quả)
3 Hiệu suất tiêu chuẩn: tối thiểu hóa sai số bình phương trung bình (MinimumMean Square Error)
Vấn đề thiết lập bộ lọc Wiener (giả sử với trường hợp là tín hiệu liên tục):
Giả sử ta có đầu vào của bộ lọc Wiener là một tín hiệu s(t), bị sai lệch bởi nhiễu
cộng n(t), thì đầu ra ước lượng của bộ lọc ^s (t ) sau khi được lọc g(t) là tích chập sau:
Trang 6 n(t) là nhiễu cộng
^s(t ) là tín hiệu ước lượng ( mong muốn bằng giá trị s (t+α))
Lỗi được định nghĩa là:
e (t)=s(t +α )−^s(t )
Trong đó:
α là độ trễ của bộ lọc Wiener ( khi trướng hợp xét là nhân quả)
Đây là công thức tổng quát xấp xỉ giữa s(t ) và ^s(t ) hay nói cách khác lỗi là sai số
giữa tín hiệu ước tính và tín hiệu thật bị trượt đi α
Bình phương của lỗi:
Trang 7 Nếu α >0 thì là dự đoán (prediction) (tức là lỗi được giảm khi ^s (t ) tương tự 1giá trị sau này s).
Nếu α=0 thì là đang lọc (filtering) (tức là lỗi được giảm khi ^s (t ) tương tự vớigiá trị s (t ))
Nếu α <0 thì là làm mịn (smoothing) (tức là lỗi được giảm khi ^s (t ) tương tựvới 1 giá trị trước đó của s)
Viết giải chập của ^s(t ):
x (t )=s (t )+n(t ) là tín hiệu quan sát được
R s là hàm tự tương quan của s (t )
R x là hàm tự tương quan của x (t )
R xs là hàm tương quan chéo của x (t ) và s (t )
Trang 8Nếu tín hiệu s (t ) và nhiễu n(t) là không tương quan (tức là tương quanR sn là 0) thì
có nghĩa là:
R xs=R s
R x=R s+R n
Trên nhiều ứng dụng thì giả định nhiễu và tín hiệu không tương quan hợp lý
Mục tiêu của chúng ta là tối thiểu E(e2)giá trị kỳ vọng của bình phương lỗi, bằng
cách tìm hàm đáp ứng xung của bộ lọc Wiener g (τ ) tối ưu
Việc tối thiểu E(e2) có thể thực hiện bằng việc tính toán đạo hàm bậc nhất của nó
theo một giá trị g (τ )
δEE(e2)=−2∫
0
+∞
δE g (τ )¿ ¿¿
Để tối thiểu thì hàm bên trong phải loại bỏ nhau với mọi giá trị δE g ( τ ) và dẫn đến
phương trình wiener – hopf
R xs (τ +α )=∫
0
+∞
g (¿θ)R x(τ −θ)dτθ¿
Đây là phương trình cơ bản của lý thuyết Wiener, công thức bên phải giống như
là một giải chập nhưng miền chỉ là từ 0 → + ∞ Phương trình này có thể giải bằng
Trang 93 Vấn đề xây dựng bộ lọc Wiener:
Tiếp theo ta sẽ xét một số vấn đề của bộ lọc Wiener trước khi chuyển sang một
ứng dụng cụ thể của bộ lọc này
Bộ lọc Weiner sẽ có giải pháp trên các trường hợp có thể:
Bộ lọc không nhân quả chấp nhận được (a noncausal filter is acceptable):
yêu cầu một số lượng vô hạn của cả dữ liệu quá khứ và tương lai
và các giải pháp g (t )là hai mặt biến đổi Laplace nghịch đảo của G (s)
Bộ lọc nhân quả kỳ vọng được (a causal filter is desired) sử dụng một số
lượng vô hạn các dữ liệu quá khứ
Trang 10Trường hợp đầu tiên có thể là giải pháp đơn giản nhưng vấn đề ở chỗ nó không
phù hợp với hệ thống thời gian thực Khả năng mà bộ lọc giải quyết tốt hơn là ở
những hệ nhân quả và đáp ứng xung hữu hạn
Trên đây là phần mà nhóm đã tìm hiểu về lý thuyết Wiener, bộ lọc Wiener cũng
như phương trình của bộ lọc (tham khảo thêm tại: Wiener, Norbert
(1949) Extrapolation, Interpolation, and Smoothing of Stationary Time Series.
New York: Wiley), sau đây là phần thứ 2 của báo cáo về tìm hiểu ứng dụng của bộ
lọc Wiener, nhóm đã chọn một trong những ứng dụng điển hình của bộ lọc
Wiener là xử lý ảnh (lọc ảnh).
Trang 11II Ứng dụng bộ lọc Wiener trong xử lý ảnh
1 Tổng quan về khôi phục ảnh
Khôi phục ảnh đề cập tới các kỹ thuật loại bỏ hay tối thiểu hoá các ảnh hưởng của
môi trường bên ngoài hay các hệ thống thu nhận, phát hiện và lưu trữ ảnh đến ảnh
thu nhận được Các nguyên nhân gây biến dạng ảnh: do nhiễu bộ cảm nhận tín
hiệu, ảnh mờ do camera, nhiễu ngẫu nhiên của khí quyển, v v Khôi phục ảnh bao
gồm nhiều quá trình như: lọc ảnh, khử nhiễu nhằm làm giảm các biến dạng để có
thể khôi phục lại ảnh gần giống ảnh gốc tuỳ theo các nguyên nhân gây ra biến
dạng
Một hệ khôi phục ảnh
Sự lựa chọn hệ phục hồi ảnh phụ thuộc vào loại hình xuống cấp hay khôi phục ảnh
là nhằm xác định mô hình toán học của quá trình gây ra biến dạng Các thuật toán
làm giảm nhiễu cộng ngẫu nhiên khác với các thuật toán làm giảm nhoè ảnh Các
loại hình xuống cấp ta sẽ xét là nhiễu cộng ngẫu nhiên, nhoè và nhiễu phụ thuộc tín
hiệu, như nhiễu nhân Những loại hình xuống cấp này thường xảy ra trong thực
tiễn
Trang 12Kỹ thuật mà ta sẽ dùng với bộ lọc Wiener là kỹ thuật lọc tuyến tính.
2 Ước lượng sự xuống cấp
Có hai cách tiếp cận để có thông tin về sự xuống cấp Các thứ nhất là thu thập
thông tin từ chính ảnh bị xuống cấp Nếu ta có thể tìm ra các vùng cường độ xấp xỉ
đồng đều trong ảnh, chẳng hạn bầu trời, thì có thể ước lượng phổ công suất hoặc
hàm mật độ xác suất của nhiễu nền ngẫu nhiên từ sự tăng giảm cường độ trong các
vùng có nền đồng đều Một ví dụ khác như, khi ảnh bị nhoè nếu ta tìm được trong
ảnh đã xuống cấp một vùng mà tín hiệu gốc đã biết, thì có thể ước lượng hàm nhòe
xuống cấp trong vùng đó là g (m, n )thì quan hệ gần đúng giữa g (m, n ) và f ( m, n)là:
Theo giả thiết f ( m, n) và g (m, n ) đều đã biết, nên có thể được ước lượng được b (m , n)
từ (1)
Cách thứ hai là nghiên cứu cơ chế gây ra sự xuống cấp Ví dụ, xét một ảnh tương
có sự xuống cấp nào khác ngoại trừ nhoè vì máy ảnh chuyển động, ta có thể biểu
diễn ảnh bị xuống cấp g ( x , y ) là:
Trang 13Trong đó x0(t ) và y0(t)là sự tịnh tiến theo phương ngang và dọc của f ( x , y ) ở thời
điểm t và T là thời gian chớp Trong miền biến đổi Fourier:
Từ (4), thấy rằng nhòe vì chuyển động có thể được xem như một phép nhân chập
f ( x , y ) với b ( x , y ), mà biến đổi Fourier là B(Ω x , Ω y) tính theo công thức (5)
Trang 143 Bộ lọc Wiener và vấn đề khôi phục ảnh
Lọc Wiener là kỹ thuật lọc tuyến tính để khôi phục ảnh gốc từ ảnh đã xuống cấp
do bị nhiễu phá hủy
Ảnh sau khi qua một đáp ứng nào đó thì bị nhiễu và khác với ban đầu, theo lý
thuyết ta xây dựng một đáp ứng ngược lại để khôi phục ảnh dựa vào đáp ứng ban
đầu Tuy nhiên các phương pháp như lọc ngược và lọc giả ngược có một yếu điểm
là nhạy cảm với nhiễu vì vậy khi áp dụng các phương pháp này phải giả định là hệ
thống lý tưởng không có nhiễu Song trên thực tế thì không thể có điều này, vì vậy
người ta sử dụng kĩ thuật lọc wiener cho các hệ thống có nhiễu
Như ta đã biết mục tiêu của bộ lọc Wiener là để làm cực tiểu bình phương sai số,
trong xử lý ảnh thì là sai số giữa ảnh gốc và ảnh đang có Ta cài đặt một bộ lọc FIR
như là một tích chập của một bộ lọc trọng số g, để làm cực tiểu sai số bình phương
với ảnh thu được Việc tìm trọng số tương ứng với việc giải một phương trình thoả
mãn yêu cầu đặt ra, sau đó ta tìm ra bộ lọc để thực hiện việc tính tích chập Sau khi
tính xong thì ta thu được ảnh gần với ảnh gốc nhất
Bộ lọc Wiener thường là bộ lọc thông thấp, năng lượng của ảnh thường tập trung
ở vùng tần số thấp
Trang 15Bộ lọc Wiener và giảm nhiễu trong ảnh.
Mô hình ảnh xuống cấp bởi nhiễu cộng ngẫu nhiên:
g(n1, n2) = f(n1, n2)+v(n1,n2)
Trong đó v(n1, n2) là biểu diễn nhiễu cộng ngẫu nhiên độc lập với tín hiệu
phần tổng quan ở trên, lấy giá trị n dùng trong rời rạc không dùng cho nhiễu được nữa.
Nếu ta giả thiết rằng f(n1, n2)và v(n1, n2) là những mẫu độc lập tuyến tính của quá
trình ngẫu nhiên dừng trung vị bằng 0, và phổ công suất P f(❑1,❑2)và P v(❑1,❑2) của
chúng đã biết, thì có thể nhận được ước lượng tuyến tính tối ưu sai số quân phương
tối hiểu củaf(n1, n2) bằng cách cho g(n1, n2) qua bộ lọc wiener mà đáp ứng xung tần
số như sau:
H(❑1,❑2)= P f(❑1,❑2)
P f(❑1,❑2)+P v(❑1,❑2)
Bộ lọc trên là bộ lọc pha không Vì phổ công suất P f(❑1,❑2) và P v(❑1,❑2) là thực và
không âm nên giá trị H(❑1,❑2)cũng là thực và không âm Nhờ có bộ lọc Weiner chỉ
ảnh hưởng tới biên độ phổ chứ không ảnh hưởng đến pha Bộ lọc Weiner giữ
nguyên tỉ số SNR (tỉ số tín hiệu trên nhiễu) của các thành phần tần số cao, nhưng
làm giảm SNR của các thành phần tần số thấp Nếu ta cho P f(❑1,❑2) tiến gần tới 0
Trang 16thì H(❑1,❑2) sẽ tiến gần đến 1, cho ta thấy bộ lọc có xu hướng giữ nguyên SNR của
các thành phần tần số cao Nếu cho P f(❑1,❑2) tiến đến ∞ thì giá trị H(❑1,❑2) sẽ tiến
đến 0, cho ta thấy bộ lọc có xu hướng làm giảm SNR của các thành phần tần số
thấp
Bộ lọc Weiner dựa vào giả thiết là phổ công suất P f(❑1,❑2) và P v(❑1,❑2) đã biết
hoặc có thể ước lượng được Trong các bài toán thường gặp thì ước lượng phổ
công suất của nhiễu P v(❑1,❑2) là hoàn toàn có thể làm như phần 2 ở trên, tuy nhiên
là với phổ công suất của ảnh P f(❑1,❑2) ước lượng không đơn giản Một phương
pháp là lấy trung bình ¿F(ω1,ω2)∨¿2¿ cho nhiều ảnh f(n1, n2) Phương pháp khác là
mô hình hóa bằng một hàm đơn giản
R f(❑1,❑2)=p√n1 +n2
P f(❑1,❑2)=F [ R f(❑1,❑2)]
Trong đó 0<p<1 p là ước lượng từ ảnh bị xuống cấp g(n1, n2)
Trang 17Thông thường bộ lọc wiener được thực thi trên miền tần số bởi:
p(n1, n2)=IDFT [G(k1, k2) H(k1, k2)]
Các giá trị G(k1, k2) và H(k1, k2) là biến đổi Fourier rời rạc của g(n1, n2)và h(n1, n2)
Trong công thức trên thì kích thước DFT và biến đổi ngược DFT ít nhất cũng là
( N + M −1) x ( N + M −1)khi kich thước ảnh là N x Nvà kích thước bộ lọc làM xM Nếukích thước DFT nhỏ hơn ( N + M −1) x ( N + M −1)thì biến đổi Fourier ngược IDFT [
G(k1, k2) H(k1, k2)] sẽ không đồng nhất với g(n1, n2) *h(n1, n2) ở gần các đường biên của
ảnh đã xử lýp(n1, n2), vì hiệu ứng aliasing Trong hầu hết các trường hợp, kích thước
hiệu dụng của h(n1, n2)nhỏ, có thể nhận được kết quả vừa ý với biến đổi Fourier
(DFT) và biến đổi ngược Fourier (IDFT) có kích thước N x N Một cách để nhận
được H(k1, k2) là lấy mẫu đáp ứng tần số H(ω1, ω2)của bộ lọc Wiener bằng:
H(k1, k2)=H(ω1,ω2)¿
ω1=2 π k1
L , ω2 =2 π k2L
Trong đó: kích thước của DFT và IDFT là L x L
Bộ lọc wiener làm giảm nhiễu nền rõ rệt, tuy nhiên nó cũng làm nhòe ảnh Lý do là
bộ lọc wiener sử dụng một bộ lọc duy nhất trên toàn bộ ảnh, nó được triển khai với
giả thiết là qua các vùng khác nhau của ảnh đặc tính tín hiệu và nhiễu đều không
thay đổi Đó là bộ lọc bất biến trong không gian, mà thông thường trong một bức
Trang 18ảnh, từ vùng này sang vùng khác các đặc tính ảnh rất khác nhau Ví dụ, tường và
bầu trời có cường độ nền xấp xỉ đồng đều, trái lại các tòa nhà và cây có cường độ
thay đổi lớn, chi tiết) Sự xuống cấp cũng có thể thay đổi từ vùng này sang vùng
x (t ) là một tín hiệu đầu vào (không rõ) tại thời gian t
h (t ) là đáp ứng xung của một hệ thống tuyến tính bất biến thời gian
v (t ) là một nhiễu cộng không rõ, độc lập của x (t )
y (t) là tín hiệu quan sát
^
x (t )=g (t )∗y (t )
^x (t ) là một ước tính x (t ) rằng giảm thiểu các lỗi có nghĩa là hình vuông
¿
(f ) S ( f )
¿H ( f )∨¿2S (f )+N (f )¿
Trang 19 G (f ) và H (f ) được các Fourier biến g đổi h và tương ứng ở tần f số
S (f ) là có nghĩa là mật độ công suất phổ của tín hiệu đầu vào x (t )
N (f ) là mật độ công suất có nghĩa là quang phổ của tiếng ồn v (t )
Hoạt động lọc có thể được thực hiện trong miền thời gian, như ở trên, hoặc trong miền tần số:
^
X ( f )=G (f )Y (f )
Với ^X ( f )là biến đổi Fourier của ^x (t ) và sau đó thực hiện một biến đổi Fourier ngược ^X ( f ) để có được ^x (t ).
Các hoạt động của các bộ lọc Wiener trở nên rõ ràng khi các phương trình lọc ở trên được viết lại:
N (f ) là tỷ lệ tín hiệu trên nhiễu Khi
không nhiễu (tức là tín hiệu trên nhiễu vô hạn), thuật ngữ bên trong dấu ngoặc vuông bằng 1, có nghĩa rằng các bộ lọc Wiener chỉ đơn giản là nghịch đảo của hệ thống, như chúng ta có thể mong đợi Tuy
Trang 20nhiên, khi nhiễu ở tần số nhất định tăng, tỷ lệ tín hiệu trên nhiễu giảm xuống, vì vậy thuật ngữ bên trong dấu ngoặc vuông cũng giảm xuống Điều này có nghĩa là bộ lọc Wiener suy giảm tần số phụ thuộc vào tỷ
lệ tín hiệu trên nhiễu.
Các phương trình bộ lọcWiener trên đòi hỏi chúng ta phải biết nội dung phổ của một hình ảnh tiêu biểu,
và cả nhiễu Thông thường, chúng ta không thế tìm đến những số lượng chính xác, nhưng chúng ta có thể biết được một tình huống mà các ước tính tốt có thể được thực hiện Ví dụ, trong trường hợp của các hình ảnh, tín hiệu (hình ảnh ban đầu) thường có tần số thấp là mạnh và tần số cao yếu, và trong nhiều trường hợp nhiễu sẽ được tương đối bằng với tần số.