Thuật toán đuổi khớp (Matching pursuit)
Nhiều phương pháp phân tích tín hiệu tìm cách biểu diễn một tín hiệu không biết x bằng một tổ hợp tuyến tính của các hàm số gn nào đó:
x = (2.46)
Chúng ta có thể nói rằng việc biểu diễn tín hiệu tương tự như việc chọn các từ trong một quyển từ điển để tạo ra một câu văn có nghĩa nào đó. Trong trường hợp này là chúng ta chọn các hàm gn trong một tập hợp các hàm số để biểu diễn tín hiệu . Các hệ số an được tính bởi:
= <x, > (2.47)
Chúng ta phải biểu diễn tín hiệu không biết một cách chính xác nhất có thể bằng cách chọn các hàm gn một cách tối ưu từ một thư viện dư thừa các hàm D. Trong thực tế chúng ta chỉ có thể biểu diễn tín hiệu x một cách gần đúng:
[50]
x (2.48)
Điều kiện để phép biểu diễn của chúng ta tối ưu là sai số giữa tín hiệu x thật và tín hiệu x biểu diễn gần đúng bằng các hàm gn là nhỏ nhất:
= || x - || = min (2.49) Để tìm được một sự kết hợp tuyến tính có thể của N hàm gn sao cho sai số là nhỏ nhất, chúng ta sử dụng thuật toán đuổi khớp (matching pursuit).
(2.50)
Bước đầu tiên thuật toán sẽ chọn gY0 lớn nhất được cho bởi phép nhân trong (inner product) với tín hiệu , trong mỗi bước gYn được khớp với tín hiệu Rnx. Cứ như vậy N hàm gn sẽ được tìm kiếm bằng thuật toán trên.
Phương pháp khôi phục tín hiệu OMP trong lấy mẫu nén
OMP là chữ viết tắt của phương pháp orthogonal matching pursuit, hay phương pháp "đuổi khớp trực giao". Nhắc lại rằng, chúng ta có tín hiệu X thưa K có chiều dài N, và M phép đo yi,i = trong vectơ cột Y : Y = x ,với là ma trận đo kích thước M N.
Do tín hiệu X là thưa K, tức là chỉ có thành phần khác không, các thành phần còn lại bằng không. Như vậy, mỗi thành phần yi là sự kết hợp tuyến tính của thành phần từ cột của ma trận . Do đó để khôi phục tín hiệu X dài từ M thành phần của vectơ Y chúng ta cần tìm ra được 1 tổ hợp cột trong ma trận ϕ (có số cột là ) để thỏa mãn: Y = x
Bài toán lại trở về giống như tìm các từ trong một quyển từ điển để ghép thành câu có nghĩa nào đó. Và chúng ta sử dụng thuật toán OMP (Orthogonal matching pursuit) để thực hiện điều này:
Đầu Vào:
Ma trận
Vectơ dữ liệu nén Y.
[51]
Bước 1: Khởi tạo: = y, t = 1
Bước 2: Tính toán cột it của ma trận : it = argmaxi|<rt-1, i>|
Bước 3: Tính : rt = y - Pty
Trong đó :
Pty =
là các trọng số được ước lượng của tín hiệu X.
Bước 4: Nếu tăng t lên 1 đơn vị và lặp lại bước 2, ngược lại kết thúc thuật toán.
Đầu ra: Tín hiệu khôi phục