Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 81 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
81
Dung lượng
1,14 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA HỒNG ĐỨC HẢO KHƠI PHỤC TÍN HIỆU NÉN TRONG MIỀN WAVELET SỬ DỤNG MƠ HÌNH CÂY MARKOV ẨN Chun ngành Toán Ứng Dụng Mã số 604636 LUẬN VĂN THẠC SĨ TP HỒ CHÍ MINH, tháng năm 2014 Cơng trình hồn thành tại: Trường Đại học Bách Khoa – ĐHQG-HCM Cán hướng dẫn khoa học: (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét 1: (Ghi rõ họ, tên, học hàm, học vị chữ ký) Cán chấm nhận xét 2: (Ghi rõ họ, tên, học hàm, học vị chữ ký) Luận văn thạc sĩ bảo vệ Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày tháng năm Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: (Ghi rõ họ, tên, học hàm, học vị Hội đồng chấm bảo vệ luận văn thạc sĩ) Xác nhận Chủ tịch Hội đồng đánh giá LV Trưởng Khoa quản lý chuyên ngành sau luận văn sửa chữa (nếu có) CHỦ TỊCH HỘI ĐỒNG ………… ………… TRƯỞNG KHOA ………… ………… ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: HOÀNG ĐỨC HẢO Ngày, tháng, năm sinh: 26 tháng 08 năm 1984 Chuyên ngành: Toán Ứng Dụng MSHV: 11240496 Nơi sinh: Quảng Trị Mã số : I TÊN ĐỀ TÀI: KHƠI PHỤC TÍN HIỆU NÉN TRONG MIỀN WAVELET SỬ DỤNG MƠ HÌNH CÂY MARKOV ẨN NHIỆM VỤ VÀ NỘI DUNG: • • • • Nghiên cứu lý thuyết cảm biến nén Trình bày thuật tốn khơi phục tín hiệu nén Ứng dụng mơ hình Markov ẩn để cải tiến thuật tốn khơi phục tín hiệu nén miền wavelet Viết chương trình mơ Matlab II NGÀY GIAO NHIỆM VỤ : (Ghi theo QĐ giao đề tài): 10/02/2014 III NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo QĐ giao đề tài): 20/06/2014 IV CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): TS Nguyễn Tiến Dũng Tp HCM, ngày 24 tháng 07 năm 2014 CÁN BỘ HƯỚNG DẪN (Họ tên chữ ký) CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên chữ ký) TRƯỞNG KHOA (Họ tên chữ ký) LỜI CẢM ƠN Lời đầu tiên, xin bày tỏ lịng biết ơn sâu sắc tới thầy hướng dẫn Tiến sĩ Nguyễn Tiến Dũng – Giảng viên Bộ mơn Tốn Ứng Dụng, khoa Khoa Học Ứng Dụng, trường Đại học Bách Khoa Tp.Hồ Chí Minh, người định hướng, ln khuyến khích, quan tâm giúp đỡ, truyền đạt kiến thức tạo điều kiện thuận lợi giúp tơi hồn thành luận văn tốt nghiệp Tơi xin bày tỏ lịng biết ơn chân thành đến tập thể Thầy, Cơ giáo mơn Tốn Ứng Dụng – Khoa Khoa Học Ứng Dụng, phòng Đào Tạo Sau Đại Học – trường Đại học Bách Khoa, Đại học Quốc Gia Tp HCM tận tình truyền đạt kiến thức, giúp đỡ tơi suốt khóa học Cuối cùng, xin gửi lời cảm ơn đến tập thể lớp Tốn Ứng Dụng khóa K2011 K2012 – người bạn yêu quý đồng hành, giúp đỡ chia khó khăn tơi suốt q trình học tập Tp Hồ Chí Minh, tháng 6, năm 2014 Hồng Đức Hảo TĨM TẮT Cảm biến nén (CS - Compressive Sensing) kỹ thuật lĩnh vực Xử Lý Tín Hiệu Số ứng dụng để khơi phục tín hiệu thưa hay tín hiệu dễ nén từ tập nhỏ ánh xạ vector ngẫu nhiên với chi phí lấy mẫu tính toán giảm thiểu Lý thuyết CS phát triển dựa nghiên cứu Candes, Romberg Tao, nghiên cứu Donoho Các nghiên cứu hai nhóm tác giả tín hiệu có biểu diễn thưa sở khơi phục từ tập nhỏ phép chiếu lên sở đo mà sở đo khơng liên kết với sở Ở đây, hai sở không liên kết nghĩa thành phần sở có biểu diễn thưa theo sở Các phép chiếu ngẫu nhiên đóng vai trị trung tâm sở đo chung theo nghĩa chúng không liên kết với sở cố định với xác suất cao Các thuật toán cổ điển thuật toán tuyến tính sử dụng lĩnh vực CS để khơi phục tín hiệu thưa hay tín hiệu dễ nén Tuy nhiên, thuật tốn có chi phí tính tốn sai số lớn Các thuật tốn khơng sử dụng cấu trúc đặc biệt tín hiệu ngoại trừ tính chất “thưa” chúng Tuy nhiên, với vài loại tín hiệu cụ thể, lợi dụng thêm vài tính chất biết trước tín hiệu để giảm chi phí tính tốn và/hoặc cho độ xác cao q trình khơi phục tín hiệu Ví dụ, tín hiệu trơn khúc khơng có tính chất thưa miền waveletmà hệ số wavelet chúng cịn có tính chất phân cụm quanh liên thông miền wavelet.Với việc áp dụng thêm tính chất phân cụm này, thuật tốn CS cải tiến sai số thấp so với phương pháp cũ Luận văn tìm hiểu vấn đề lĩnh vực cảm biến nén, sau tìm hiểu trình bày chun sâu thuật tốn khơi phục tín hiệu cho loại tín hiệu trơn khúc miền wavelet Thuật tốn xây dựng sở mơ hình hệ số wavelet loại tín hiệu trơn khúc theo mơ hình Markov ẩn Từ cho thấy mơ hình Markov ẩn sử dụng để tăng tính xác cho thuật toán Mục lục GIỚI THIỆU CƠ SỞ TOÁN HỌC CỦA LÝ THUYẾT 2.1 Các Khái Niệm Cơ Bản 2.1.1 Không gian định chuẩn 2.1.2 Tín hiệu thưa 2.2 Bộ mã hóa, giải mã tối ưu 2.3 Bộ giải mã tối ưu l1 2.4 Tính chất RIP ma trận ngẫu nhiên CÁC PHƯƠNG PHÁP SỐ TRONG CS 3.1 Giới thiệu 3.2 Thuật toán đồng luân 3.3 Thuật toán lặp với trọng số l1 3.4 Thuật toán lặp với trọng số l2 CẢM BIẾN NÉN 9 10 11 13 19 20 20 21 26 33 MIỀN WAVELET VÀ MƠ HÌNH CÂY MARKOV ẨN 4.1 Miền Wavelet 4.1.1 Biến đổi Wavelet liên tục 4.1.2 Biến đổi wavelet rời rạc 4.1.3 Tính chất tín hiệu trơn khúc miền wavelet 4.2 Mô Hình Markov Ẩn 4.2.1 Mơ hình Markov ẩn rời rạc 4.2.2 Thuật toán giải toán huấn luyện - Thuật toán EM 4.2.3 Thuật toán giải toán xác định khả hợp lệ 4.2.4 Thuật toán giải toán dự đoán trạng thái - Thuật toán Viterbi 4.3 Mơ Hình Markov Ẩn Cho Các Hệ Số Wavelet 4.4 Một cải tiến thuật toán IRWL1 42 42 42 45 45 46 47 48 51 52 53 56 MÔ 5.1 5.2 5.3 58 58 63 64 PHỎNG VÀ ĐÁNH GIÁ Đánh giá sai số So sánh sai số tốc độ hội tụ Khơi phục tín hiệu hai chiều thuật toán IRWL1 IRWL1+HMT KẾT LUẬN 65 Phụ lục A THUẬT TOÁN IRWL1 VÀ IRWL1+HMTR 66 Phụ lục B SO SÁNH TỐC ĐỘ HỘI TỤ VÀ SAI SỐ 71 Phụ lục C HƯỚNG DẪN CÀI ĐẶT VÀ MÔ PHỎNG 75 Danh sách hình vẽ 2.1 2.2 Bao lồi f¯ f Nghiệm tối ưu l1 không gian R2 14 15 4.1 4.2 4.3 Các tham số xác suất mơ hình Markov ẩn Mơ hình Gaussian hỗn hợp cho hệ số wavelet Cấu trúc nhị phân hệ số wavelet 46 54 55 5.1 5.2 5.3 5.4 Sơ đồ khối chương trình mô 58 Kết khơi phục tín hiệu thuật toán IRWL1 IRWL1+HMT 60 Thống kê sai số 50 lần chạy thuật toán IRWL1 IRWL1+HMT 60 So sánh sai số tốc độ hội tụ thuật toán IRWL1 thuật toán IRWL1+HMT 63 Kết khơi phục ảnh thuật tốn IRWL1 thuật toán IRWL1+HMT 64 So sánh sai số trình khơi phục ảnh thuật tốn IRWL1 thuật toán IRWL1+HMT 64 5.5 5.6 Chương GIỚI THIỆU Thuật ngữ “Cảm Biến Nén” (Compressive Sensing - CS), đề xuất Candes [5] Donoho [7]), kỹ thuật lĩnh vực Xử Lý Tín Hiệu Số (DSP) không bị chi phối định lý lấy mẫu Nyquist/Shannon Kỹ thuật cho phép nén tín hiệu có biểu diễn “thưa” ngõ vào cảm biến Tính chất “nén” hiểu theo nghĩa tín hiệu “thưa” ngõ vào cảm biến đo tập nhỏ phép chiếu lên vectơ ngẫu nhiên, sau tín hiệu gốc khôi phục từ tập phép chiếu Nói cách khác, kỹ thuật cho phép giảm cách đáng kể tần số lấy mẫu (thấp nhiều so với tần số Nyquist) giảm chi phí tính tốn cảm biến Đề tài nghiên cứu thuật toán lĩnh vực cảm biến nén ứng dụng việc khôi phục tín hiệu thưa miền Wavelet sử dụng mơ hình Markov ẩn Một tảng lĩnh vực Xử Lý Tín Hiệu Số (DSP) định lý Nyquist/Shannon Định lý Nyquist phát biểu tần số lấy mẫu cần thiết để khôi phục lại tín hiệu mà khơng bị lỗi bị ràng buộc băng thơng tín hiệu, cụ thể tần số lấy mẫu phải hai lần băng thơng tín hiệu Vì thế, trước đây, thiết bị điện tử mà tín hiệu đầu vào có băng thơng lớn (như loại máy ảnh có độ phân giải cao, thiết bị siêu cao tần, thiết bị radar, ), tốc độ lấy mẫu đòi hỏi phải lớn Yêu cầu đòi hỏi thiết bị điện tử phải có tốc độ xử lý cao dung lượng nhớ lớn để đáp ứng yêu cầu thời gian thực Điều dẫn đến phức tạp thiết kế phần cứng phần mềm, làm tăng chi phí nghiên cứu sản xuất Từ năm 2006, kỹ thuật mang tính đột phá lĩnh vực DSP giới thiệu Đó kỹ thuật “Cảm Biến Nén” (CS) Lý thuyết CS phát triển dựa nghiên cứu Candes, Romberg Tao [5], nghiên cứu Donoho [7] Các nghiên cứu hai nhóm tác giả tín hiệu có biểu diễn thưa sở khôi phục từ tập nhỏ phép chiếu lên sở đo mà sở đo khơng liên kết với sở Ở đây, hai sở khơng liên kết nghĩa khơng có thành phần sở có biểu diễn thưa theo sở Các phép chiếu ngẫu nhiên đóng vai trị trung tâm sở đo chung theo nghĩa chúng không liên kết với sở cố định với xác suất cao Theo lý thuyết CS, tín hiệu đầu vào tín hiệu có biểu diễn “thưa” sở tần số lấy mẫu cảm biến giảm cách đáng kể, nghĩa tần số lấy mẫu thấp nhiều so với tần số Nyquist mà N khơi phục khơng lỗi tín hiệu gốc [7] √ rằng, tín hiệu thưa x ∈ R khơi phục xác với M = O( N log(N )) thành phần mã hóa (hay thành phần đo) từ tín hiệu gốc Trong vài trường hợp đặc biệt, M nhỏ nhiều Ví dụ lấy mẫu mã hóa ảnh tựa hoạt hình [7], cần lưu trữ M = O(N 1/4 log(N )) điểm ảnh thay phải lưu trữ tất N điểm ảnh Các thuật tốn khơi phục tín hiệu dựa lý thuyết CS đề xuất [5, 7, 11, 19] không sử dụng cấu trúc đặc biệt tín hiệu ngoại trừ tính chất “thưa” chúng Tuy nhiên, với vài loại tín hiệu cụ thể, lợi dụng thêm vài tính chất biết trước tín hiệu để giảm chi phí tính tốn và/hoặc cho độ xác cao q trình khơi phục tín hiệu Ví dụ, tín hiệu trơn khúc khơng có tính chất thưa miền waveletmà hệ số wavelet chúng cịn có tính chất phân cụm quanh liên thông miền wavelet [6, 8, 12, 18] Với việc áp dụng thêm tính chất phân cụm này, thuật tốn CS cải tiến để đạt hiệu cao Kể từ giới thiệu Candes, Romberg, Tao Donoho vào năm 2006, lĩnh vực CS nhận quan tâm lớn nhà nghiên cứu ý nghĩa thực tế khả ứng dụng to lớn nhiều lĩnh vực khác Các nghiên cứu gần giới tập trung vào vấn đề ứng dụng lý thuyết CS lĩnh vực khác như: Camera nén điện thoại di động, xử lý ảnh, nhận dạng, máy quét MRI (Magnetic Resonance Imaging) sử dụng y học, hệ thống Radar, hệ thống truyền nhận tín hiệu viễn thơng mạng cảm biến khơng dây [17] Qua tìm hiểu, chúng tơi thấy nghiên cứu nước lĩnh vực chưa trọng Rất nghiên cứu cơng bố tạp chí nước quốc tế Mục đích luận văn hệ thống lại kiến thức lĩnh vực cảm biến nén, tìm hiểu thuật tốn khơi phục tín hiệu dựa lý thuyết CS, tìm hiểu thuật tốn CS ứng dụng để khơi phục tín hiệu thưa có hệ số Wavelet phân cụm theo cấu trúc dựa mơ hình Markov ẩn Luận văn bắt đầu việc hệ thống sở Toán học làm tảng cho lý thuyết CS nghiên cứu tác giả Candes, Romberg, Tao [5], Donoho [7], sau đó, trình bày chi tiết thuật toán CS nghiên cứu ứng dụng Dựa thuật tốn này, chương trình mơ Matlab triển khai Cuối cùng, kết mô so sánh đánh giá để thấy rõ tính hiệu việc áp dụng mơ hình việc khơi phục tín hiệu thưa Luận văn bao gồm nội dung sau đây: • Chương 1: Giới Thiệu • Chương 2: Cơ Sở Tốn Học Của Lý Thuyết CS 5.3 Khơi phục tín hiệu hai chiều thuật tốn IRWL1 IRWL1+HMT Hình 5.5 mơ tả kết khơi phục ảnh thuật toán IRWL1 thuật toán IRWL1+HMT So sành với ảnh gốc, ta thấy thuật tốn IRWL1+HMT khơi phục ảnh với chất lượng ảnh tốt thuật toán IRWL1 Hình 5.6 thể sai số thuật tốn IRWL1+HMT ln tốt so với thuật tốn IRWL1 Hình 5.5: Kết khơi phục ảnh thuật tốn IRWL1 thuật tốn IRWL1+HMT Hình 5.6: So sánh sai số q trình khơi phục ảnh thuật tốn IRWL1 thuật toán IRWL1+HMT 64 KẾT LUẬN Kể từ giới thiệu Candes, Romberg, Tao Donoho vào năm 2006, lĩnh vực CS nhận quan tâm lớn nhà nghiên cứu ý nghĩa thực tế khả ứng dụng to lớn nhiều lĩnh vực khác Các nghiên cứu gần giới tập trung vào vấn đề ứng dụng lý thuyết CS lĩnh vực khác như: Camera nén điện thoại di động, xử lý ảnh, nhận dạng, máy quét MRI (Magnetic Resonance Imaging) sử dụng y học, hệ thống Radar, hệ thống truyền nhận tín hiệu viễn thơng mạng cảm biến khơng dây Luận văn tìm hiểu vấn đề lĩnh vực cảm biến nén, sau tìm hiểu trình bày chun sâu thuật tốn khơi phục tín hiệu cho loại tín hiệu trơn khúc miền wavelet (thuật toán IRWL1+HMT) Thuật toán xây dựng sở mơ hình hệ số wavelet loại tín hiệu trơn khúc theo mơ hình Markov ẩn Ưu điểm thuật toán IRWL1+HMT cho sai số thấp so với phương pháp lặp với trọng số l1 (thuật tốn IRWL1) Các mơ Chương rằng, với tốc độ hội tụ, thuật tốn lặp sử dụng mơ hình Markov ẩn cho sai số tốt so với thuật toán lặp với trọng số l1 , trung bình tốt khoảng 18.75 lần Trong thực tế, tín hiệu trơn khúc dạng tín hiệu đặc trưng cho tín hiệu hình ảnh Chính vậy, thuật tốn IRWL1+HMT ứng dụng để thiết kế cảm biến hình ảnh với độ nhạy cao hay ứng dụng giải nén hình ảnh với sai số thấp 65 Phụ lục A THUẬT TOÁN IRWL1 VÀ IRWL1+HMTR % % % % % Author : Hoang Duc Hao Advisor : Dr Nguyen Tien Dung Date : June, 2014 Project : Master Thesis in Apllied Math at HCM University of Technology License : These codes are free to use and modify without warranty 10 11 12 13 14 function test_irwl1_hmt() clear; path(path, ’Library\rwt−master\bin’); path(path, ’Library\modelcs_v1.1\modelcs_v1.1\Utils’); path(path, ’Library\modelcs_v1.1\modelcs_v1.1\1D trees’); path(path, ’Library\hmt1d’); path(path, ’Library\YALL1_v1.4’); 15 16 17 18 19 % simulation parameters N = 1024; % Length of signal L = log2(N); % Number of signal levels h = daubcqf(4); % scaling filter of wavelet transform 20 21 22 MaxOrder = 3; % Order of piecewise polynomial signal bpoints = 5; % Number of dis−continuos points of piecewise polynomial signal 23 24 25 26 27 28 29 SimulationNumber = 10; MSE1 = zeros(1, SimulationNumber); MSE2 = zeros(1, SimulationNumber); rs1 = zeros(SimulationNumber, N); rs2 = zeros(SimulationNumber, N); 30 31 32 % set options digit = 4; 66 33 34 35 opts.tol = 10^(−digit); opts.print = 0; opts.nu = 0.8; 36 37 38 39 40 41 42 43 44 InterationNum = 10; sim = 1; while (1) if (sim > SimulationNumber) break; end % generate piecewise polynomial signal s = transpose(genPWpoly(N,MaxOrder,bpoints)); 45 46 47 % discrete wavelet transform [wn0, lv] = mdwt(s, h, L); 48 49 50 51 % Finding the sparse signal from wavelet signal Bn = abs(wn0).^2; maskn = cssa1(Bn, L, 0.1∗N); 52 53 54 % Setup sparese signal wn = 0∗wn0; f = find(maskn > 0); wn(f) = wn0(f); 55 56 57 % size of sparity T = length(f); 58 59 60 % Size of measurement matrix M = 2∗round(3/2∗T); 61 62 63 % measurement matrix A = (1/sqrt(M))∗randn(M,N); 64 65 66 67 68 69 70 71 % measurement signal SNR = 60; a = norm(A∗wn’)^2; b = 10^(SNR/10); c = a/b; d = c/M; sigma = sqrt(d); e = randn(M,1)∗sigma; y = A∗wn’+e; 72 73 74 75 [recover_signal1, MSE] = irwl1_yall1(s, A, y, wn, InterationNum, opts, L, h); rs1(sim,:) = recover_signal1; MSE1(1,sim) = MSE; 76 77 [recover_signal2, MSE] = irwl1_hmt_yall1(s, A, y, wn, InterationNum, N, opts, L, h); 78 79 80 rs2(sim,:) = recover_signal2; MSE2(1,sim) = MSE; 67 81 fprintf(’At simulation %d: N = %d, M = %d, K = %d, MSE1 = %1.5f, MSE2 = %1.5f.\n’, sim, N, M, T, MSE1(1,sim), MSE2(1,sim)); 82 83 84 sim = sim + 1; 85 end 86 87 t1 = sprintf(’Thuat toan IRWL1, MSE %1.4f’, MSE1(1,SimulationNumber)); t2 = sprintf(’Thuat toan IRWL1+HMT, MSE %1.4f’, MSE2(1,SimulationNumber)); 88 89 90 figure, plot(s, ’Color’, ’black’, ’LineWidth’,2), title(’Tin hieu goc’); axis([0 1024 min(s)−(max(s) − min(s))/20 max(s) + (max(s) − min(s))/20]); grid on; 91 92 93 94 figure, plot(recover_signal1, ’Color’, ’black’, ’LineWidth’,2), title(t1); axis([0 1024 min(recover_signal1)−(max(recover_signal1) − min(recover_signal1))/20 max(recover_signal1) + (max(recover_signal1) − min(recover_signal1))/20]); grid on; 95 96 97 98 99 figure, plot(recover_signal2, ’Color’, ’black’, ’LineWidth’,2) , title(t2); axis([0 1024 min(recover_signal2)−(max(recover_signal2) − min(recover_signal2))/20 max(recover_signal2) + (max(recover_signal2) − min(recover_signal2))/20]); grid on; 100 101 102 103 104 if (SimulationNumber > 1) figure plot(MSE1, ’−ro’, ’Color’, ’black’, ’LineWidth’,2); hold on plot(MSE2, ’Color’, ’black’, ’LineWidth’,2); legend(’Sai so cua IRWL1’,’Sai so cua IRWL1+HMT’); grid on; end 105 106 107 108 109 110 111 112 113 114 end 115 116 117 118 119 function [rs, MSE] = irwl1_yall1(s, Phi, y, x, rwt, opts, L, h) xh_old = x; N = size(Phi,2); M = size(Phi,1); 120 121 122 123 124 125 epsilon = 0.2; MSE1 = 0.0; rwt_itr = 1; MAX_LOOP = 100; while (1) 68 % Update weights if rwt_itr > W = 1./(abs(xh_old)+epsilon); else W = 1∗ones(N,1); end 126 127 128 129 130 131 132 digit = 4; opts.tol = 10^(−digit); opts.weights = W; opts.print = 0; [xa, ~] = yall1(Phi,y,opts); xh_old = xa; 133 134 135 136 137 138 139 rs = midwt(xh_old, h, L); MSE2 = norm(rs − s’, 2); d = abs(MSE2 − MSE1); MSE1 = MSE2; if (d < 1e−8) break; end rwt_itr = rwt_itr + 1; if (rwt > && rwt_itr > rwt) break; end if (rwt_itr > MAX_LOOP) break; end 140 141 142 143 144 145 146 147 148 149 150 151 152 153 end 154 155 % Inverse discrete wavelet transform rs = midwt(xh_old, h, L); MSE = norm(rs − s’, 2); 156 157 158 159 end 160 161 162 function [rs, MSE] = irwl1_hmt_yall1(s, A, y, x, rwt, N, opts, L, h) 163 164 165 166 167 % Using EM algorithm to train Hidden Markov Model NumberOfState = 2; EM_Iterations = 60; [ES, POS, MU_VAL, SI] = trainEM_tree(x, NumberOfState, EM_Iterations); 168 169 170 M = size(A,1); epsilon = 1e−14; 171 172 173 xh_old = x; rwt_itr = 1; 69 MSE1 = 0; MAX_LOOP = 100; while(1) %beta = M∗(norm(xh_old,2)/norm(xh_old,1))^2; %q = power(beta, 1/10); %q = power(10, −q); q = power(10, −1.4); 174 175 176 177 178 179 180 181 % Update weights if (rwt_itr > 1) [gamma,~] = updown_tree(xh_old, ES, POS, MU_VAL, SI, 1); W = 1./((((gamma(2,:))+epsilon).^(q))); W(1) = 1./(abs(xh_old(1))+0.2); W = W’; else W = 1∗ones(N,1); end 182 183 184 185 186 187 188 189 190 191 digit = 4; opts.tol = 10^(−digit); opts.weights = W; opts.print = 0; [xa, ~] = yall1(A,y,opts); xh_old = xa; 192 193 194 195 196 197 198 rs = midwt(xh_old, h, L); MSE2 = norm(rs − s’, 2); d = abs(MSE2 − MSE1); MSE1 = MSE2; if (d < 1e−8) break; end rwt_itr = rwt_itr + 1; if (rwt > && rwt_itr > rwt) break; end if (rwt_itr > MAX_LOOP) break; end 199 200 201 202 203 204 205 206 207 208 209 210 211 212 end 213 214 % Inverse discrete wavelet transform rs = midwt(xh_old, h, L); MSE = norm(rs − s’, 2); 215 216 217 218 end 70 Phụ lục B SO SÁNH TỐC ĐỘ HỘI TỤ VÀ SAI SỐ % % % % % Author : Hoang Duc Hao Advisor : Dr Nguyen Tien Dung Date : June, 2014 Project : Master Thesis in Apllied Math at HCM University of Technology License : These codes are free to use and modify without warranty 10 11 12 13 14 function error_vs_converge_irwl1_hmt() clear; path(path, ’Library\rwt−master\bin’); path(path, ’Library\modelcs_v1.1\modelcs_v1.1\Utils’); path(path, ’Library\modelcs_v1.1\modelcs_v1.1\1D trees’); path(path, ’Library\hmt1d’); path(path, ’Library\YALL1_v1.4’); 15 16 17 18 19 % simulation parameters N = 1024; % Length of signal L = log2(N); % Number of signal levels h = daubcqf(4); % scaling filter of wavelet transform 20 21 22 23 MaxOrder = 3; % Order of piecewise polynomial signal bpoints = 5; % Number of dis−continuos points of % piecewise polynomial signal 24 25 26 27 28 29 % set options digit = 4; opts.tol = 10^(−digit); opts.print = 0; opts.nu = 0.8; 30 31 % generate piecewise polynomial signal 71 s = transpose(genPWpoly(N,MaxOrder,bpoints)); 32 33 % discrete wavelet transform [wn0, lv] = mdwt(s, h, L); 34 35 36 % Finding the sparse signal from wavelet signal Bn = abs(wn0).^2; maskn = cssa1(Bn, L, 0.1∗N); 37 38 39 40 % Setup sparese signal wn = 0∗wn0; f = find(maskn > 0); wn(f) = wn0(f); 41 42 43 % size of sparity T = length(f); 44 45 46 % Size of measurement matrix M = 2∗round(3/2∗T); 47 48 49 % measurement matrix A = (1/sqrt(M))∗randn(M,N); 50 51 52 % measurement signal SNR = 60; a = norm(A∗wn’)^2; b = 10^(SNR/10); c = a/b; d = c/M; sigma = sqrt(d); e = randn(M,1)∗sigma; y = A∗wn’+e; 53 54 55 56 57 58 59 60 error1 = irwl1_yall1(s, A, y, wn, 30, opts, L, h); error2 = irwl1_hmt_yall1(s, A, y, wn, 30, opts, L, h); 61 62 63 figure plot(log(error1), ’−−’, ’Color’, ’black’, ’LineWidth’,2); hold on plot(log(error2), ’Color’, ’black’, ’LineWidth’,2); legend(’Sai so cua IRWL1’,’Sai so cua IRWL1+HMT’); grid on; 64 65 66 67 68 69 70 end 71 72 73 74 function error = irwl1_yall1(s, Phi, y, x, rwt, opts, L, h) xh_old = x; N = size(Phi,2); 75 76 77 78 79 epsilon = 0.4; rwt_itr = 1; error = []; while (1) 72 % Update weights if rwt_itr > W = 1./(abs(xh_old)+epsilon); else W = 1∗ones(N,1); end 80 81 82 83 84 85 86 digit = 4; opts.tol = 10^(−digit); opts.weights = W; opts.print = 0; [xa, ~] = yall1(Phi,y,opts); xh_old = xa; 87 88 89 90 91 92 93 rs = midwt(xh_old, h, L); MSE = norm(rs − s’, 2); error = [error, MSE]; fprintf(’[IRWL1] At iteration %d: MSE = %1.9f.\n’, rwt_itr, MSE); rwt_itr = rwt_itr + 1; if (rwt > && rwt_itr > rwt) break; end 94 95 96 97 98 99 100 101 end 102 103 end 104 105 106 function error = irwl1_hmt_yall1(s, A, y, x, rwt, opts, L, h) 107 108 109 110 111 % Using EM algorithm to train Hidden Markov Model NumberOfState = 2; EM_Iterations = 60; [ES, POS, MU_VAL, SI] = trainEM_tree(x, NumberOfState, EM_Iterations); 112 113 114 115 N = size(A,2); epsilon = 1e−16; q = power(10, −1.4); 116 117 118 119 120 121 122 123 124 125 126 127 xh_old = x; rwt_itr = 1; error = []; while(1) % Update weights if (rwt_itr > 1) [gamma,~] = updown_tree(xh_old, ES, POS, MU_VAL, SI, 1); tau = 1; W = tau./((((gamma(NumberOfState,:))+epsilon).^(q))); W(1) = tau./(abs(xh_old(1))+0.2); W = W’; 73 else 128 W = 1∗ones(N,1); 129 end 130 131 digit = 4; opts.tol = 10^(−digit); opts.weights = W; opts.print = 0; [xa, ~] = yall1(A,y,opts); xh_old = xa; 132 133 134 135 136 137 138 rs = midwt(xh_old, h, L); MSE = norm(rs − s’, 2); error = [error, MSE]; fprintf(’[IRWL1+HMT] At iteration %d: MSE = %1.9f.\n’, rwt_itr, MSE); rwt_itr = rwt_itr + 1; if (rwt > && rwt_itr > rwt) break; end 139 140 141 142 143 144 145 146 end 147 148 end 74 Phụ lục C HƯỚNG DẪN CÀI ĐẶT VÀ MƠ PHỎNG • Để chạy source code Matlab phụ lục A B, cần phải cài đặt thư viện sau: – Thư viện Wavelet Toolbox – Thư viện CS – Thư viện Hidden Markov Tree – Thư viện YALL1 • Cách cài đặt – Tải thư viện Wavelet Toolbox https://github.com/ricedsp/rwt/archive/ master.zip – Tải thư viện CS http://dsp.rice.edu/sites/dsp.rice.edu/files/ modelcs_v1.1.zip – Tải thư viện Hidden Markov Tree http://dsp.rice.edu/sites/dsp rice.edu/files/software/hmt1d.tar.gz – Tải thư viện YALL1 http://www.caam.rice.edu/~optimization/L1/ YALL1/.v.beta/YALL1-v1.4.zip – Sau đó, giải nén thư viện theo cấu trúc thư mục đây: CS | |— Library | | | |—- rwt-master | | | |—- modelcs_v1.1 | | | | | |— MACOSX 75 | | | | | |— modelcs_v1.1 | | | |—- hmt1d | | | |—- YALL1_v1.4 | |— test_irwl1_hmt.m | |— error_vs_converge_irwl1_hmt.m – Cài đặt thư viện Wavelet Toolbox ∗ Thực thi lệnh "mex -setup" ∗ Biên dịch Wavelet Toolbox cách chạy file ’compile.m’ thư mục "CS\Library\rwt-master\bin" – Cuối cùng, để mơ thuật tốn IRWL1 IRWL1+HMT, chạy hai file "test_irwl1_hmt.m" "error_vs_converge_irwl1_hmt.m" phụ lục A B 76 Tài liệu tham khảo [1] Erik J Balder On subdifferential calculus 2010 [2] Richard Baraniuk, Mark Davenport, Ronald DeVore, and Michael Wakin A simple proof of the restricted isometry property for random matrices Constructive Approximation, 28(3):253–263, 2008 [3] E J Candes, Emmanuel J., Michael B Wakin, and Stephen P Boyd Enhancing sparsity by reweighted l1 minimization Journal of Fourier analysis and applications, 14:877–905, 5-6 2008 [4] Emmanuel J Candes The restricted isometry property and its implications for compressed sensing Comptes Rendus Mathematique, 346(9):589–592, 2008 [5] Emmanuel J Candès et al Compressive sampling 3:1433–1452, 2006 [6] Matthew S Crouse, Robert D Nowak, and Richard G Baraniuk Wavelet-based statistical signal processing using hidden markov models Signal Processing, IEEE Transactions on, 46(4):886–902, 1998 [7] David L Donoho Compressed sensing Information Theory, IEEE Transactions on, 52(4):1289–1306, 2006 [8] Marco F Duarte, Michael B Wakin, and Richard G Baraniuk Wavelet-domain compressive signal reconstruction using a hidden markov tree model pages 5137– 5140, 2008 [9] Bradley Efron, Trevor Hastie, Iain Johnstone, Robert Tibshirani, et al Least angle regression The Annals of statistics, 32(2):407–499, 2004 [10] Massimo Fornasier Theoretical foundations and numerical methods for sparse recovery, volume Walter de Gruyter, 2010 [11] Jarvis Haupt and Robert Nowak Signal reconstruction from noisy random projections Information Theory, IEEE Transactions on, 52(9):4036–4048, 2006 [12] Stéphane Mallat A wavelet tour of signal processing Academic press, 1999 [13] Stéphane G Mallat and Zhifeng Zhang Matching pursuits with time-frequency dictionaries Signal Processing, IEEE Transactions on, 41(12):3397–3415, 1993 77 [14] Balas Kausik Natarajan Sparse approximate solutions to linear systems SIAM journal on computing, 24(2):227–234, 1995 [15] Deanna Needell Topics in compressed sensing arXiv preprint arXiv:0905.4482, 2009 [16] Yurii Nesterov, Arkadii Nemirovskii, and Yinyu Ye Interior-point polynomial algorithms in convex programming, volume 13 SIAM, 1994 [17] Saad Qaisar, Rana Muhammad Bilal, Wafa Iqbal, Muqaddas Naureen, and Sungyoung Lee Compressive sensing: From theory to applications, a survey Communications and Networks, Journal of, 15(5):443–456, 2013 [18] Justin K Romberg, Hyeokho Choi, and Richard G Baraniuk Bayesian treestructured image modeling using wavelet-domain hidden markov models Image Processing, IEEE Transactions on, 10(7):1056–1068, 2001 [19] J Tropp and Anna C Gilbert Signal recovery from partial information via orthogonal matching pursuit 2005 78 ... đổi Wavelet – Hệ số Wavelet – Các tính chất hệ số Wavelet như: tính chất cụm, tính chất ổn định tính chất suy hao – Mơ hình Markov ẩn – Xây dựng mơ hình cậy Markov ẩn cho tín hiệu thưa miền wavelet. .. [8] 45 4.2 Mơ Hình Markov Ẩn Mơ hình Markov ẩn mơ hình thống kê Markov hệ thống mơ hình trình Markov với giả sử trạng thái trình Markov ẩn (tức khơng quan sát được) Trong mơ hình Markov đơn giản... chi phí tính tốn cảm biến Đề tài nghiên cứu thuật toán lĩnh vực cảm biến nén ứng dụng việc khơi phục tín hiệu thưa miền Wavelet sử dụng mơ hình Markov ẩn Một tảng lĩnh vực Xử Lý Tín Hiệu Số (DSP)