Tải bản đầy đủ (.pdf) (39 trang)

BÁO CÁO TỐT NGHIỆP: LẤY MẪU NÉN docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.48 MB, 39 trang )


TRƯỜNG ………………….
KHOA……………………….

[\[\

BÁO CÁO TỐT NGHIỆP


ĐỀ TÀI:


LẤY MẪU NÉN
Lời Nói Đầu
Trong cuộc cách mạng khoa học kỹ thuật diễn ra mạnh mẽ như ngày nay, các phát minh,
các nghiên cứu mới đã và đang làm cho cuộc sống của con người trở nên tiến bộ hơn, khoa
học không ngừng phát triển, các lý thuyết cũ được thay thế bằng những lý thuyết mới hơn, và
những lý thuyết mới hơn nữa sẽ dần thay thế nó.
Lấy mẫu nén (Compressed Sampling) là một trong những lý thuyết mới nhất trong lĩnh vực
xử lý tín hiệu hiện nay, được công bố năm 2006 là một bước ngoặt quan trọng trong lĩnh vực
này, dựa trên lý thuyết này, trong nhiều trường hợp, chúng ta có thể thực hiện được việc lấy
mẫu tín hiệu với tốc độ thấp hơn tốc độ lấy mẫu Nyquist - một trong những tiêu chuẩn được
coi là chuẩn mực trong xử lý tín hiệu - mà vẫn đảm bảo được việc khôi phục lại tín hiệu ban
đầu.
Qua 2 năm phát triển, lý thuyết này đã được nhiều tác giả quan tâm và hoàn thiện hơn.
Hiện nay lấy mẫu nén đang được tiếp tục nghiên cứu và phát triển về cả lý thuyết cũng như
ứng dụng tại nhiều trường đại học trên thế giới.
Với mục đích tiếp cận nhanh chóng lĩnh vực mới mẻ này, trong khóa luận tốt nghiệp của
mình tôi tập trung nghiên cứu phương pháp lấy mẫu nén trên hai mảng lớn:
• Nghiên cứu lý thuyết lấy mẫu nén và những thành tựu đã đạt được cho đến
thời điểm hiện tại.


• Nghiên cứu phát triển lý thuyết này với một ý tưởng mới về phương pháp lấy
mẫu nén dựa trên bộ lọc hỗn loạn (Chaos filter) để đóng góp vào những kết
quả đã đạt được.
Những nghiên cứu lý thuyết về lấy mẫu nén và những thành tựu đã đạt được cho đến thời điểm
hiện tại được trích dẫn và tham khảo từ nhiều bài báo được công bố bởi nhiều tác giả trên thế
giới như: Candès, Romberg, Baraniuk
Tôi xin cam đoan việc nghiên cứu phát triển mới (Chaos filter) là kết quả nghiên cứu của
tôi dưới sự hướng dẫn khoa học của TS. Nguyễn Linh Trung. Không có các nghiên cứu đã được
xuất bản từ trước hay viết bởi người khác.
Xin cảm ơn sự hướng dẫn khoa học của TS. Nguyễn Linh Trung, sự góp ý hướng dẫn của
GS. Huỳnh Hữu Tuệ, TS. Lê Vũ Hà và sự giúp đỡ của các thành viên Bộ môn Xử Lý Thông
Tin giúp tôi hoàn thành khóa luận này.
Hà Nội, Ngày 22 tháng 5 năm 2008
1
Mục lục
1 Giới Thiệu 4
1.1 Các Phương pháp nén cổ điển và nhược điểm của chúng . . . . . . . . . . . . . 4
1.1.1 Tín hiệu thưa và có thể nén . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Các phương pháp nén cổ điển và nhược điểm . . . . . . . . . . . . . . . . 5
1.2 Phương pháp lấy mẫu nén . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Hai vấn đề chính trong lấy mẫu nén . . . . . . . . . . . . . . . . . . . . . . . . . 6
I Kỹ Thuật Lấy Mẫu Nén 7
2 Lý thuyết về lấy mẫu nén 7
2.1 Phương pháp lấy mẫu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Điều kiện để khôi phục được tín hiệu . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Phương pháp khôi phục tín hiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3.1 Thuật toán khôi phục L1-minimization . . . . . . . . . . . . . . . . . . . 10
2.3.2 Thuật toán khôi phục OMP . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Ứng dụng của lý thuyết lấy mẫu nén 15
3.1 Trong nén dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 Trong truyền Thông . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Mô phỏng lấy mẫu nén 19
4.1 Nén tín hiệu thưa trong miền thời gian . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Nén ảnh sử dụng CS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3 Nén tín hiệu thưa trong miền tần số . . . . . . . . . . . . . . . . . . . . . . . . 21
II Phát triển lý thuyết lấy mẫu nén trên cơ sở bộ lọc hỗn độn
(Chaos filter) 23
5 Giả ngẫu nhiên và hỗn độn 23
5.1 Giới thiệu ngắn gọn về lý thuyết hỗn độn . . . . . . . . . . . . . . . . . . . . . . 23
5.1.1 Hỗn độn là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.1.2 Một số hàm hỗn độn thông thường . . . . . . . . . . . . . . . . . . . . . 24
5.2 Kỹ thuật sử dụng bộ lọc ngẫu nhiên(random filter) trong lấy mẫu nén và sự cần
thiết để phát triển bộ lọc hỗn độn(chaos filter) . . . . . . . . . . . . . . . . . . . 25
6 Thiết kế bộ lọc hỗn độn 28
6.1 Thiết kế bộ lọc hỗn độn và khôi phục tín hiệu dùng L1 minimization . . . . . . 28
6.1.1 Phương pháp lấy mẫu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6.1.2 Phương pháp khôi phục tín hiệu . . . . . . . . . . . . . . . . . . . . . . . 30
6.2 Thiết kế bộ lọc hỗn độn và khôi phục tín hiệu dùng OMP . . . . . . . . . . . . 31
2
7 Mô phỏng 34
7.1 Mô phỏng kỹ thuật lấy mẫu nén sử dụng bộ lọc ngẫu nhiên . . . . . . . . . . . 35
7.2 Mô phỏng sử dụng bộ lọc hỗn độn với phương pháp khôi phục L1 minimization 35
7.3 Mô phỏng sử dụng bộ lọc hôn độn với phương pháp khôi phục OMP . . . . . . . 36
8 Kết Luận 37
3
1 Giới Thiệu
Định lý lấy mẫu của Shannon/Nyquist nói rằng để không mất thông tin và có thể khôi phục
lại hoàn toàn tín hiệu thì phải lấy mẫu tín hiệu với tần số lấy mẫu cao hơn ít nhất 2 lần băng
tần của tín hiệu. Trong nhiều ứng dụng như trong ảnh số và camera số, tốc độ lấy mẫu Nyquist
là cao và thu quá nhiều mẫu cần thiết, do đó việc nén tín hiệu là cần thiết cho việc lưu trữ

hoặc truyền đi xa. Hay trong các ứng dụng khác như: hệ thống ảnh số với tốc độ cao, kỹ thuật
siêu cao tần, thu thập dữ liệu từ rada Đòi hỏi lấy mẫu ở tần số rất cao nếu tuân theo định
luật Nyquist, điều đó dẫn đến việc đòi hỏi các bộ chuyển đổi ADC tốc độ cao gây ra nhiều khó
khăn trong chế tạo, và giá thành trở nên rất đắt.
Nghiên cứu này trình bày một phương pháp mới để thu các tín hiệu với tốc độ lấy mẫu nhỏ
hơn tốc độ Nyquist. Phương pháp này gọi là lấy mẫu nén (compressed sampling), sử dụng các
ánh xạ (projections) tuyến tính không thích nghi lưu trữ cấu trúc của tín hiệu, tín hiệu sau
đó được tái tạo lại sử dụng các phương pháp của lý thuyết tối ưu như L1-minimization hoặc
OMP.
1.1 Các Phương pháp nén cổ điển và nhược điểm của chúng
1.1.1 Tín hiệu thưa và có thể nén
Cho một tín hiệu rời rạc x chiều dài hữu hạn, x có thể được biểu diễn như một vectơ cột
N × 1 trong R
N
với các thành phần x[n], n = 1, 2, N. Bất kỳ tín hiệu trong R
N
nào đều có
thể biểu diễn thông qua một hệ các vectơ cơ sở trực chuẩn N × 1 : {ψ
i
}
N
i=1
. Sử dụng ma trận
cơ sở N × N : Ψ = [ψ
1
ψ
2
ψ
N
] với các vectơ {ψ

i
} là các vectơ cột, thì một tín hiệu x có thể
biểu diễn như sau:
x =
N

i=1
s
i
ψ
i
hoặc
x = Ψ.s
Ở đây s là vectơ cột N × 1 của các trọng số s
i
=< x, ψ
i
>= ψ
T
i
x và .
T
là ký hiệu ma trận
chuyển vị. Nói cách khác thì x và s là sự biểu diễn của cùng một tín hiệu, x trong miền thời
gian (hoặc không gian) và s trong miền ψ.
Tín hiệu x chiều dài N được gọi là thưa K (K-sparse) nếu x là một sự kết hợp tuyến tính
của duy nhất K vectơ cơ sở, do đó chỉ có duy nhất K trọng số s
i
là khác không và (N-K) trọng
số là bằng không. Trong trường hợp mà K  N thì tín hiệu x gọi là thưa và có thể nén tức là

nó có thể được biểu diễn chỉ với K trọng số lớn và nhiều trọng số nhỏ.
4
1.1.2 Các phương pháp nén cổ điển và nhược điểm
Các kỹ thuật nén cổ điển (điển hình như DCT rời rạc, hay wavelet) sử dụng 1 phép biến đổi
thuận nghịch (transform coding) để xấp xỉ tín hiệu có thể nén bằng K trọng số lớn.Cho một
tín hiệu x dài N mẫu và là tín hiệu thưa K, sử dụng phép biến đổi thông qua :
s = Ψ
T
x
Ψ
T
ở đây đại diện cho một phép chuyển đổi nào đó (DCT rời rạc hoặc wavelet) chúng ta sẽ
thu được một tập hợp các trọng số s
i
trong đó K trọng số lớn nhất sẽ được lấy và mã hóa, còn
lại (N-K) trọng số nhỏ sẽ được loại bỏ.
Tuy nhiên chính cách làm này xuất hiện những nhược điểm của phương pháp:
• Số lượng N các mẫu thu là lớn trong khi K lại là nhỏ K  N
• Tất cả N mẫu đều phải được tính toán trong khi chúng ta chỉ giữ lại K giá trị còn lại
(N-K) giá trị bị loại bỏ.
• Việc mã hóa K giá trị sau khi giữ lại (với mục đích lưu trữ hoặc truyền đi) chúng ta lại
phải thêm vào các bit tiêu đề, các bít sửa lỗi
Tất cả các nhược điểm đó làm chậm tốc độ xử lý dữ liệu. Và điều này càng thể hiện rõ hơn
trong trường hợp tín hiệu x với băng tần cao lại đòi hỏi tốc độ lấy mẫu phải rất lớn mới đảm
bảo khôi phục lại dữ liệu (theo tiêu chuẩn Nyquist).
1.2 Phương pháp lấy mẫu nén
Được đề xướng như một lý thuyết lẫy mẫu mới vào năm 2006 bởi Emmanuel Candès, Justin
Romberg, và Terence Tao, phương pháp lấy mẫu nén cho phép thu trực tiếp tín hiệu dưới dạng
nén mà không thông qua việc thu N mẫu tín hiệu rồi mới sử dụng các phương pháp nén như
phương pháp thông thường.

Với tín hiệu x chiều dài N, phương pháp lấy mẫu nén sử dụng M quá trình đo tuyến tính
(M  N) được biểu diễn bởi phép nhân giữa x và một tập hợp các vectơ {φ
j
}
M
j=1
:
y
j
=< x, φ
j
>
Tập hợp các phép đo y
j
được sắp xếp trong một vectơ Y chiều dài M × 1 và các vectơ φ
T
j
được
sắp xếp như một hàng trong ma trận Φ kích thước M × N và do đó có thể được viết như sau:
Y = ΦX = ΦΨs = Θs
Quá trình đo ở đây là không thích nghi, tức là Φ là cố định và không phụ thuộc vào tín hiệu x.
5
1.3 Hai vấn đề chính trong lấy mẫu nén
Mục tiêu của phương pháp lấy mẫu nén bây giờ là việc thiết kế và xây dựng:
• Ma trận đo Φ ổn định có thể thu và lưu trữ các thông tin về tín hiệu ( tín hiệu thưa K
hay tín hiệu có thể nén ) trong M phép đo (M  N) mà vẫn đảm bảo khôi phục lại tín
hiệu.
• Thuật toán khôi phục tín hiệu có thể tái tạo tín hiệu x từ M phép đo y
6
Phần I

Kỹ Thuật Lấy Mẫu Nén
2 Lý thuyết về lấy mẫu nén
2.1 Phương pháp lấy mẫu
Phương pháp lấy mẫu truyền thống thường được biểu diễn bởi sơ đồ sau
Hình 1: Phương pháp lẫy mẫu truyền thống
Tín hiệu đầu vào x là một tín hiêu chiều dài N và thưa K (tín hiệu có thể nén) có thể được
biểu diễn qua một tập hợp các vectơ cơ sở ψ
i
:
x =
N

i=1
s
i
ψ
i
Do x là thưa K nên x có thể được biểu diễn bằng xấp xỉ của K trọng số lớn nhất:
x ≈

K
s
i
ψ
i
Việc thực hiện nén trong khối compress có thể thực hiện bằng một phương pháp nào đó như
DCT rời rạc, Wavelet Tín hiệu sau đó gồm K trọng số lớn nhất được mã hóa và truyền đi. Ở
nơi thu từ K trọng số lớn nhất thu được người ta tái tạo lại tín hiệu sử dụng các phép biến đổi
DCT ngược hoặc Wavelet ngược (do các phép biến đổi này là hoàn toàn thuận nghịch)
Tuy nhiên do những nhược điểm như đã trình bày của nó, mà lý thuyết lấy mẫu nén được phát

triển.
7
Hình 2: Phương pháp lẫy mẫu nén
Phương pháp này sử dụng M các phép đo tuyến tính không thích nghi:
Y = ΦX = ΦΨs = Θs
Hình 3: Quá trình thu tín hiệu Y bằng M phép đo tuyến tính không thích nghi
Trong đó Φ là ma trận kích thước M × N. Từ "không thích nghi" ở đây có nghĩa là ma
trận Φ là cố định và không phụ thuộc tín hiệu đầu vào x.
8
2.2 Điều kiện để khôi phục được tín hiệu
Vấn đề là chọn ma trận đo Φ thế nào để cho phép tái tạo lại tín hiệu x từ M phép đo (M<N)
- tức là khôi phục x từ vectơ y. Do M<N cho nên bài toán sẽ không thể có duy nhất nghiệm.
Tuy nhiên nếu x là tín hiệu thưa K và vị trí của K hệ số khác 0 này được biết trước thì bài
toán trở thành giải hệ phương trình K ẩn với M phương trình (M ≥ K) và bài toán sẽ có duy
nhất nghiệm. Một điều kiện cần và đủ cho vấn đề này là, cho vectơ v bất kỳ có K hệ số khác
0, với  > 0 thì Θ cần thỏa mãn điều kiện sau đây:
1 −  ≤
Θv
2
v
2
≤ 1 + 
Điều kiện này được gọi là điều kiện RIP (Restricted isometry property).
Một điều kiện khác yêu cầu các hàng của ma trận Φ không được xuất hiện thưa thớt trong
các cột của ma trận Ψ. Điều kiện này gọi là điều kiện tách biệt (Incoherence).
Trong nghiên cứu của Emmanuel Candès, Justin Romberg, và Terence Tao đã chứng minh
rằng:
Với việc sử dụng ma trận Φ là ma trận ngẫu nhiên, phân bố Gaussian, thì cả điều
kiện RIP và điều kiện tách biệt (incoherence) đều được thỏa mãn. Và với việc sử
dụng số các phép đo tiến hành M ≥ cKlog(N/K) với c là một hằng số nhỏ thì hoàn

toàn có thể tái tạo được tín hiệu x thưa K và có chiều dài N ban đầu
Hình 4: Sử dụng ma trận ngẫu nhiên trong việc thu tín hiệu
2.3 Phương pháp khôi phục tín hiệu
Với phương pháp lấy mẫu nén chúng ta đã thu được tín hiệu:
Y = ΦX
Bài toán ngược đặt ra là tìm lại tín hiệu X từ các giá trị Y. Dưới đây là 2 phương pháp phổ
biến được dùng cho việc khôi phục tín hiệu cho lấy mẫu nén
9
2.3.1 Thuật toán khôi phục L1-minimization
Chúng ta cần khôi phục lại X, tức là tìm lại chính xác các giá trị x[n], n = 1, 2 N, khi mà
chúng ta có M phép đo Y . Tuy nhiên do M < N tức là số phương trình thiết lập được là nhỏ
hơn số ẩn cần tìm, do đó sẽ có vô số các nghiệm thỏa mãn, và hiển nhiên nếu không cho thêm
bất kỳ thông tin gì về nghiêm cần tìm chúng ta không thể biết nghiệm nào là đúng.
Tuy nhiên trong trường hợp này, tín hiệu mà chúng ta cần khôi phục là đã biết về mặt cấu
trúc tức nó là tín hiệu thưa K hay tín hiệu có thể nén.
Về mặt toán học, dưới giả thiết tín hiệu X là thưa, chúng ta có thể khôi phục lại tín hiệu X
bằng các phương pháp minimization.
• Sử dụng L
0
:
x = min
x∈R
N
x
l
0
Với điều kiện:
Y = ΦX
Ở đây x
l

0
= |{i : x
i
= 0}|. Phương pháp này có thể cho phép khôi phục chính xác dữ
liệu bằng cách kiểm tra từng dữ liệu để thỏa mãn 2 phương trình trên, tuy nhiên tốc độ
tính toán của phương pháp là chậm. Nên thuật toán này ít được sử dụng trong thực tế
và không sử dụng trong lấy mẫu nén.
• Sử dụng L
2
:
x = min
x∈R
N
x
l
2
= min
x∈R
N
N

i=1
|x
i
|
2
Với điều kiện:
Y = ΦX
Phương pháp này không khôi phục đúng dữ liệu.
• Sử dụng L

1
:
x = min
x∈R
N
x
l
1
= min
x∈R
N
N

i=1
|x
i
|
Với điều kiện:
Y = ΦX
Thuật toán này có thể khôi phục chính xác tín hiệu thưa K sử dụng M phép đo tuyến
tính không thích nghi với M ≥ cKlog(N/K). Phương pháp này sử dụng trong lấy mẫu
nén cho việc khôi phục dữ liệu.
Nghiên cứu mới đây (tháng 9 năm 2007) của Emmanuel J.candès, Michael B.Walkin và
Stephen P.Boyd đã cải tiến phương pháp này cho phép khôi phục tín hiệu chính xác hơn gọi là
10
phương pháp L1 minimization được trọng số hóa (Reweighted l1 minimization). Phương pháp
này khôi phục tín hiệu bằng phương trình sau:
x = min
x∈R
N

W x
l
1
= min
x∈R
N
N

i=1
w
i
|x
i
|
Với điều kiện:
Y = Φx
Ở đây ma trận W là ma trận chéo với w
1
, w
2
w
n
là các trọng số dương nằm trên đường chéo,
các trọng số còn lại bằng 0.
Các trọng số dương của ma trận W này được tính toán sử dụng các bước trong thuật toán sau
đây:
• 1. Thiết đặt l=0 và w
(0)
i
, i = 1, , N

• 2. Tính:
x
(l)
= minW
(l)
x
l
1
với
Y = Φx
• 3. Cập nhật các giá trị trọng số: với i=1, ,n :
w
(l+1)
i
=
1
|x
(l)
i
| + 
• 4. Kết thúc thuật toán nếu w hội tụ hoặc khi l đạt tới một số cực đại, ngược lại tăng l
lên 1 đơn vị và quay trở lại bước 2.
Phương pháp này khôi phục tín hiệu chính xác hơn, để minh họa điều này ta xét ví dụ sau,
cho x =
0 1 0
T
(sơ đồ 1(a) thể hiện tín hiệu gốc x) và :
Φ =
2 1 1
1 1 2

Ta có tín hiệu thu được:
Y = Φx =
1 1
T
Nhìn vào sơ đồ bên dưới, với phương pháp L1 minimization, l1 biểu thị như một quả bóng giao
với đường biểu diễn Y = Φx tại vị trí x =
1
3
0
1
3
T
= x giá trị này cho chúng ta kết quả
không chính xác. Sơ đồ 1(b)
Bây giờ nếu chúng ta đưa vào ma trận trọng số W = diag(
3 1 3
T
) sơ đồ 1(c)thể hiện quả
bóng "weighted l1 " hội tụ tới điểm tín hiệu nguồn một cách chính xác.
11
Hình 5: So sánh phương pháp sử dụng l1 minimization và weighted l1 minimization
2.3.2 Thuật toán khôi phục OMP
a) 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 1 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ố g
n
nào đó:
x =
N


n=0
a
n
g
n
Chúng ta có thể nói rằng việc biểu diễn tín hiệu x 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 g
n
trong một tập hợp các hàm số để biểu diễn tín hiệu x.
Các hệ số a
n
được tính bởi:
a
n
=< x, g
n
>
Chúng ta phải biểu diễn tín hiệu không biết x một cách chính xác nhất có thể bằng cách
chọn các hàm g
n
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:
x ≈
N

n=1
a
n
g

n
Đ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 g
n
là nhỏ nhất:
 = x −
N

n=0
a
n
g
n
 = min
12
Để tìm được một sự kết hợp tuyến tính có thể của N hàm g
n
sao cho sai số là nhỏ nhất,
chúng ta sử dụng thuật toán đuổi khớp (matching pursuit).



R
0
x = x
R
n
x =< R
n
x, g

γ
n
> g
γ
n
+ R
n+1
x
g
γ
n
= argmax
g
γ
n
∈D
| < R
n
x, g
γ
x
> |
Bước đầu tiên thuật toán sẽ chọn g
γ
0
lớn nhất được cho bởi phép nhân trong (inner product)
với tín hiệu x, trong mỗi bước g
γ
n
được khớp với tín hiệu R

n
x. Cứ như vậy N hàm g
n
sẽ được
tìm kiếm bằng thuật toán trên.
b)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 y
i
, i = 1, 2 M
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ó K thành phần khác 0, các thành phần còn lại bằng 0.
Như vậy, mỗi thành phần y
i
là sự kết hợp tuyến tính của K thành phần từ K cột của ma trận
Φ. Do đó để khôi phục tín hiệu X dài N từ M thành phần của vectơ Y chúng ta cần tìm ra
được 1 tổ hợp K cột trong ma trận Φ(có số cột là N) (N>M>K) để thỏa mãn:
Y = ΦX
Bài toán lại trở về giống như tìm các từ trong 1 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
• Độ thưa K của tín hiệu đầu vào x
1. Khởi tạo:
r

0
= y, t = 1
2. Tính toán cột i
t
của ma trận Φ:
i
t
= argmax
i
| < r
t−1
, Φ
i
> |
13
3. Tính:
r
t
= y − P
t
y
Trong đó :
P
t
y =
N

k=1

θ

i
k
Φ
i
k

θ
i
k
là các trọng số được ước lượng của tín hiệu X.
4. Nếu t<N 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

X
14
3 Ứng dụng của lý thuyết lấy mẫu nén
3.1 Trong nén dữ liệu
Thành tựu điển hình của lấy mẫu nén là việc thu các bức ảnh số với tốc độ lấy mẫu nhỏ
trong một camera có duy nhất 1 sensor thu được gọi là CAMERA 1 ĐIỂM ẢNH (single pixel
camera).
Sơ đồ khối của Camera được cho như trong hình bên:
Ở đây việc tạo ra một ma trận DMD bao gồm N mảnh gương rất nhỏ với hệ số phản xạ trên
Hình 6: Camera số 1 điểm ảnh
mỗi gương là ngẫu nhiên được điều khiển bởi bộ phát số ngẫu nhiên RNG (Random number
generator) thay thế cho việc tạo ra ma trận Φ trong lý thuyết lấy mẫu nén mà Candès, Romberg
và Tao đã đề cập.
Toàn bộ bức ảnh đi qua một thấu kính thứ nhất và rơi vào ma trận gương DMD với hệ số
phản xạ ngẫu nhiên, sau đó được hội tụ tại một điểm khi đi qua thấu kính thứ hai, tại điểm
đó một photodiode được đặt thu nhận và lấy mẫu, do đó chỉ cần một photodiode và thực hiện

M phép đo cần thiết chúng ta có thể khôi phục lại bức ảnh.
Hình 7: Thực hiện M phép đo
15
Sơ đồ bố trí của Camera như trong hình:
Hình 8: Sơ đồ bố trí Camera
Và kết quả của nó:
Hình 9: So sánh kết quả giữa ảnh nguồn và ảnh gốc
16
3.2 Trong truyền Thông
Trong các ứng dụng truyền thông không dây ngày nay, việc tiết kiệm băng tần là một vấn đề
rất quan trọng, đem lại hiệu quả về mặt kinh tế. Các hệ thống cảm nhận thông minh hiện nay
cho phép cảm nhận môi trường phổ tần vô tuyến để phát hiện các khoảng phổ trống (Việc làm
này dựa trên các mô hình ước lượng và nhận biết phổ), từ đó có thể nhanh chóng điều chỉnh
các thông số truyền và nhận để có thể gửi tín hiệu vào trong các khoảng phổ trống đó. Cách
làm này cho phép các nhà cung cấp dịch vụ tận dụng tối đa băng thông cho phép, phục vụ
hiệu quả người sử dụng mà vẫn đảm bảo tránh gây nhiễu cho những người sử dụng ưu tiên.
Đối với truyền thông băng thông rộng, thách thức lớn nhất đối với các mô hình ước lượng
và nhận biết phổ là tần số lấy mẫu là quá lớn, nếu lấy mẫu không đủ sẽ không cung cấp đầy
đủ thông tin về mặt thống kê cho các thuật toán khôi phục tín hiệu tuyến tính truyền thống.
Tuy nhiên, do tính chất điển hình của các tín hiệu trong truyền thông không dây là thưa
về mặt tần số. Nguyên nhân của tính chất này là do trong thực tế các kênh radio được sử
dụng chiếm dụng phổ rất ít. Đây chính là tiền đề để có thể áp dụng kỹ thuật lấy mẫu nén
(Compressed Sensing) trong mô hình nhận biết vô tuyến để có thể giảm tốc độ lấy mẫu xuống
trong khi vẫn đảm bảo tính chính xác trong việc ước lượng các khoảng phổ trống.
Một nghiên cứu của các tác giả Z.Tian, G.B.Giannakis cho thấy kết quả tốt khi áp dụng
phương pháp lấy mẫu nén cho việc nhận biết phổ vô tuyến. Trong bài báo này, kỹ thuật lấy
mẫu nén được sử dụng để khôi phục dải phổ từ mô hình lấy mẫu ngẫu nhiên - với số mẫu ít
hơn so với tiêu chuẩn Nyquist - từ đó xác định vị trí của các dải tần bằng phương pháp xác
định biên dựa trên kỹ thuật wavelet (wavelet based edge detector). Chúng ta có thể tóm lược
phương pháp sử dụng lấy mẫu nén mà các tác giả đã trình bày trong việc ứng dụng cho nhận

biết phổ vô tuyến như sau:
Giả sử một mạng không dây băng rộng có dải tần tổng cộng là B Hz (từ f
0
đến f
N
). Hàm
mật độ phổ công suất (PSD) trên dải tần này được thể hiện trong hình:
Hình 10: Mật độ phổ công suất trên dải tần tín hiệu
Dải phổ này được thể hiện bằng tín hiệu liên tục r(t) (đây cũng chính là tín hiệu mà bộ
17
cảm nhận phổ vô tuyến (CR) phải cảm nhận). Giả sử khoảng thời gian cần thiết để CR cảm
nhận là t ∈ [0, MT
0
]. Trong đó T
0
là chu kỳ lấy mẫu theo Nyquist ⇒ cần tối thiểu M mẫu
để khôi phục r(t) tức là chúng ta phải có một vectơ Γ
t
kích thước M × 1 với các thành phần
r
t
(n) = r(t)|
t=nT
0
. Đặt biến đổi Fourier M điểm của Γ
t
là Γ
f
: Γ
f

= F
M
Γ
t
, trong đó F
M
là ma
trận biểu diễn biến đổi Fourier rời rạc M điểm. Nhiệm vụ của bài toán CR là xác định được
Γ
f
để từ đó xác định được các khoảng phổ trống, rồi điều chỉnh thông số và gửi tín hiệu vào
trong khoảng phổ đó.
Gọi F là tập hợp các khoảng phổ làm cho r(t) khác 0 trong miền tần số (trong trường hợp
không có nhiễu). Do r(t) là thưa trong miền tần số nên |F |  B hay một cách tương đương
khi rời rạc hóa, vectơ Γ
t
có trung bình khoảng K
b
= |F |M/B hệ số khác 0 và K
b
 M.
Kỹ thuật lấy mẫu nén cho phép khôi phục chính xác vectơ Γ
t
từ một vectơ Υ
t
có kích thước
K × 1(K
b
≤ K ≤ M) : Υ
t

= S
T
c
Γ
t
, trong đó S
c
là một ma trận đo có kích thước M × K
(trường hợp đơn giản có thể lấy S
c
là một ma trận lấy ngẫu nhiên K cột từ ma trận đơn vị).
Như vậy, chúng ta có thể biểu diễn: Υ
t
= (S
T
c
F
M
)r
f
, và chúng ta có thể ước lượng r
f
dựa trên
các phương pháp l1 minimization hoặc OMP:
r
t
= arg min
r
f
r

f

1
, S
T
c
Γ
t
= Υ
t
18
4 Mô phỏng lấy mẫu nén
4.1 Nén tín hiệu thưa trong miền thời gian
Xét tín hiệu thưa x trong miền thời gian, chiều dài N = 512 thưa K = 20. Số các phép đo sử
dụng M = 100. Sử dụng phương pháp L1 minimization cho việc khôi phục tín hiệu.
Sơ đồ bên dưới trình bày kết quả mô phỏng:
Hình 11: Kết quả mô phỏng
4.2 Nén ảnh sử dụng CS
Như chúng ta đã biết, JPEG là một trong những chuẩn nén tốt sử dụng trong nén ảnh, tuy
nhiên nếu bức ảnh JPEG là thưa, việc sử dụng phương pháp lấy mẫu nén vẫn có thể cho phép
nén bức ảnh xuống nhiều lần.
Xét bức ảnh:
Hình 12: Ví dụ về bức ảnh JPEG thưa gồm 189280 điểm ảnh
19
Bức ảnh này phần lớn các điểm ảnh là màu đen, chỉ có số ít các điểm ảnh màu trắng biểu
thị vòng tròn màu trắng. Nếu coi các điểm màu đen có giá trị là 0 và các điểm màu trắng có
giá trị là 1, thì mỗi dòng trong bức ảnh gốc sẽ được coi như một tín hiệu thưa x(n), sử dụng
phương pháp lấy mẫu nén áp dụng cho tất cả các dòng thưa này, chúng ta sẽ nén được toàn
bộ bức ảnh xuống chỉ còn 33280 điểm ảnh. Tức là bức ảnh JPG giảm xuống chỉ còn 17.5% so
với bức ảnh ban đầu. Việc khôi phục lại bức ảnh sử dụng thuật toán L1 minimization.

Kết quả được thể hiện trong hình dưới:
Hình 13: Kết quả mô phỏng việc nén ảnh JPEG bằng lấy mẫu nén
20
4.3 Nén tín hiệu thưa trong miền tần số
Như trong lý thuyết xử lý tín hiệu mà chúng ta đã biết, một tín hiệu dạng sin/cos vô hạn về
mặt thời gian thì nó được biểu diễn bởi 1 vạch phổ trong miền tần số. Vì vậy, để tạo ra một
tín hiệu thưa trong miền tần số, chúng ta sử dụng kỹ thuật cộng gộp 5 tín hiệu dạng sin tại 5
tần số khác nhau trong miền thời gian, khi đó trong miền tần số tín hiệu được biểu diễn chỉ
với 5 vạch phổ, khi đó tín hiệu gọi là thưa trong miền tần số.
Dạng của tín hiệu trong miền thời gian và tần số được thể hiện trong sơ đồ bên dưới(trong
mô phỏng sử dụng chiều dài là 512):
(a) Dạng tín hiệu trong miền thời gian
(b) Dạng tín hiệu trong miền tần số
Hình 14: Tạo tín hiệu thưa trong miền tần số
Sử dụng phương pháp lấy mẫu nén, chúng ta nhận được kết quả:
21
Hình 15: Nén tín hiệu thưa trong miền tần số
Do trong mô phỏng sử dụng chiều dài tín hiệu là 512 chứ không phải ∞ nên tín hiệu trong
miền tần số có dạng không hoàn hảo là các vạch như mong muốn, do đó kết quả tín hiệu khôi
phục trong miền thời gian chỉ gần giống với tín hiệu gốc. Để hạn chế điều này chúng ta có thể
tăng chiều dài của tín hiệu trong miền thời gian, nhưng việc làm này không thực sự quan trọng
nên chúng ta vẫn sử dụng chiều dài 512 trong mô phỏng của mình.
22
Phần II
Phát triển lý thuyết lấy mẫu nén trên
cơ sở bộ lọc hỗn độn (Chaos filter)
5 Giả ngẫu nhiên và hỗn độn
5.1 Giới thiệu ngắn gọn về lý thuyết hỗn độn
5.1.1 Hỗn độn là gì?
Ngay từ thời cổ xưa, các nhà thiên văn cổ đại đã cố gắng dự đoán sự di chuyển của mặt

trăng xung quanh trái đất, và sự di chuyển của các hành tinh trong hệ mặt trời, chúng là các
hệ thống động. Việc hiểu biết về điều này là rất quan trọng trong việc xác định tọa độ cho
các con thuyền khi chúng di chuyển trên biển. Bảng Kepler và 3 định luật kepler ra đời là một
phát kiến lớn cho vấn đề này.
Các hệ thống động tồn tại rất phổ biến trong tự nhiên, và khác với một hệ thống ngẫu
nhiên, hệ thống động có trạng thái hoàn toàn xác định được với các điều kiện khởi tạo ban đầu
thích hợp, bởi vì một hệ thống động sẽ được đặc trưng bởi một hàm số biết trước nào đó.
Một hệ thống động với các điều kiện khởi tạo ban đầu thích hợp sẽ dễ dàng đánh lừa chúng ta
rằng nó là hệ thống ngẫu nhiên khi kết quả của nó rất giống ngẫu nhiên. Đó chính là Chaos
(hỗn độn).
Vậy một hệ thống gọi là hệ thống hỗn độn(hay hệ thống động) nếu thỏa mãn cả 2 điều kiện
sau:
• Hàm số đặc trưng cho hệ thống là hoàn toàn xác định.
• Gía trị theo thời gian (hoặc không gian) của hệ thống phải rất gần với ngẫu
nhiên.
Chúng ta xét một ví dụ đơn giản sau để có thể so sánh, cho chuỗi x được tạo bởi lệnh tạo số
ngẫu nhiên: x = rand(1, 30).
Và một chuỗi y được tạo bởi hàm số sau:
y(n + 1) = cy(n)(1 − y(n)) + y(n)
Với các giá trị khởi tạo : c=3, y(0)=0.5. Hình 6 biểu diễn kết quả của hai chuỗi số, chúng
ta thấy được với các điều kiện khởi đầu như trên chuỗi tạo bởi phương trình trên cho kết quả
giống như ngẫu nhiên.
23
Hình 16: Sự giống nhau giữa giá trị tạo bởi hàm chaos và giá trị ngẫu nhiên
Thực tế, trong truyền thông chúng ta cũng gặp một ứng dụng của chaos dưới một cái tên
khác là chuỗi giả ngẫu nhiên (Preudorandom). Để gửi một bản tin qua một đường truyền viễn
thông, bản tin được chuyển đổi thành tín hiệu số (được biểu diễn bởi hai bit 0 và 1). Để bảo
mật cho bản tin, người ta cộng nhị phân bản tin ở dạng số với một chuỗi giả ngẫu nhiên được
tạo bởi một hàm hỗn độn thông qua phép XOR:
0 ⊕ 0 = 0 0 ⊕ 1 = 1 1 ⊕ 0 = 1 1 ⊕ 1 = 0

Ở nơi thu đã biết chuỗi giả ngẫu nhiên thông qua hàm hỗn độn, do đó chỉ cần đồng bộ lại
và thực hiện phép XOR lại với chuỗi giả ngẫu nhiên tạo bởi hàm hỗn độn, toàn bộ bản tin sẽ
được khôi phục.
5.1.2 Một số hàm hỗn độn thông thường
Hiện nay số lượng các hàm hỗn độn ứng dụng trong các lĩnh vực khoa học là rất nhiều, ở đây
tôi chỉ nêu ra một số hàm hỗn độn tôi sử dụng trong nghiên cứu này:
1)
x
n+1
= ax
n
(1 − x
n
) a = 4, x
0
= 0.5
2)

x
n+1
= 1 − ax
2
n
+ by
n
y
n+1
= x
n
24

×