1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO BÀI TẬP LỚN đại SỐ TUYẾN TÍNH ỨNG DỤNG SVD để KHỬ NHIỄU âm THANH

17 816 18

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 747,45 KB

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM KHOA KHOA HỌC & ỨNG DỤNG BỘ MƠN TỐN ỨNG DỤNG BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH CHỦ ĐỀ 8: ỨNG DỤNG SVD ĐỂ KHỬ NHIỄU ÂM THANH LỚP L08 _ NHÓM GV HƯỚNG DẪN: NGUYỄN ANH THI NGUYỄN XUÂN MỸ TP.HCM, Ngày tháng 12 năm 2021 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM KHOA KHOA HỌC & ỨNG DỤNG BỘ MƠN TỐN ỨNG DỤNG BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH CHỦ ĐỀ 8: ỨNG DỤNG SVD ĐỂ KHỬ NHIỄU ÂM THANH Danh sách thành viên: MSSV Họ tên Ghi 2113932 Lê Quang Long Soạn Word 2113940 Nguyễn Thành Long 2114063 Nguyễn Trần Thái Minh 2110504 Nguyễn Thanh Sang Tìm Thơng tin 2115057 Đào Nguyễn Nam Trân Tìm thơng tin 2111057 Lê Trung Điền Coder 2110130 Bùi Minh Đức Coder Tìm thơng tin Coder TP.HCM, ngày tháng 12 năm 2021 LỜI CẢM ƠN Để hoàn thành đề tài tập lớn lần này, trước hết nhóm chúng em xin chân thành cảm ơn hướng dẫn, giúp đỡ, quan tâm từ quý thầy cô, bạn bè lớp Đặc biệt, nhóm xin gửi đến Nguyễn Anh Thi (lý thuyết) cô Nguyễn Xuân Mỹ (bài tập) sức truyền đạt, dẫn chúng em đề tài báo cáo lần lời cảm ơn sâu sắc Khơng thể khơng nhắc tới hợp tác, đồn kết thành viên nhóm, xin cảm ơn người góp sức, góp lực để hồn thành báo cáo Vì cịn tồn hạn chế mặt kiến thức, trình trao đổi, hồn thành project cuối kì , chúng em khơng tránh khỏi sai sót, kính mong nhận đóng góp từ q thầy, Những góp ý từ thầy động lực để chúng em hồn thiện Một lần nữa, nhóm 8_ L08 xin gửi lời biết ơn chân thành đến thầy, giúp chúng em đạt kết Nhóm thực đề tài Nhóm - Lớp L08 LỜI MỞ ĐẦU MƠN HỌC Đại số tuyến tính mơn học có tầm quan trọng khơng sinh viên trường đại học Bách Khoa Thành phố Hồ Chí Minh nói riêng mà cịn sinh viên ngành khoa học kỹ thuật, cơng nghệ nói chung Đại số tuyến tính nói chung có nhiều ứng dụng hầu hết lĩnh vực khoa học: kinh tế, mơi trường, cơng nghệ máy tính, xử lí tín hiệu, đồ họa,… Một phần nhỏ số phải nhắc đến phương pháp phân tích SVD nhiều tốn khác Phương pháp phân tích suy biến (singular value decomposition) viết tắt SVD phương pháp thuộc nhóm matrix factorization phát triển lần đầu nhà hình học vi phân Ban đầu mục đích phương pháp tìm phép xoay khơng gian cho tích vơ hướng vector không thay đổi Từ mối liên hệ khái niệm ma trận trực giao hình thành để tạo phép xoay đặc biệt Phương pháp SVD phát triển dựa tính chất ma trận trực giao ma trận đường chéo để tìm ma trận xấp xỉ với ma trận gốc Phương pháp sau ứng dụng rộng rãi lĩnh vực hình học vi phân, hồi qui tuyến tính, xử lý hình ảnh, cluaxstering, thuật toán nèn giảm chiều liệu, khử nhiễu âm thanh… MỤC LỤC TRANG LỜI CẢM ƠN MỞ ĐẦU MỞ HỌC VÀ SƠ LƯỢC BTL Chương 1: CƠ SỞ LÍ THUYẾT CỦA PHÂN TÍCH SVD Chương 2: ỨNG DỤNG CỦA SVD TRONG KHỬ NHIỄU ÂM THANH Chương 1: CHƯƠNG TRÌNH MATLAB 13 3.1 Các câu lệnh sử dụng 13 3.2 Đoạn code 14 DANH MỤC CÁC TÀI LIỆU THAM KHẢO 15 CƠ SỞ LÍ THUYẾT CỦA PHÂN TÍCH SVD: Mục tiêu phân tích suy biến SVD Phương pháp SVD tìm lớp ma trận xấp xỉ tốt với ma trận cho trước dựa khoảng cách norm Frobenios ma trận Người ta chứng minh ma trận xấp xỉ tốt biểu diễn dạng tích ma trận đặc biệt bao gồm ma trận trực giao (orthogonal matrix) ma trận đường chéo (diagonal matrix) Quá trình nhân ma trận thực chất trình biến đổi điểm liệu ma trận gốc thông qua phép xoay trục (rotation) phép thay đổi độ lớn (scaling) từ tạo điểm liệu không gian Điều đặc biệt ma trận đường chéo phần tử giá trị riêng ma trận gốc Những điểm liệu khơng gian giữ 100% thông tin ban đầu giữ phần lớn thông tin liệu ban đầu thông qua phép truncate SVD Bằng cách xếp trị riêng theo thứ tự giảm dần đường chéo thuật tốn SVD thu ma trận xấp xỉ tốt mà đảm bảo giảm hạng ma trận sau biến đổi kích thước ma trận nhân tử nằm giới hạn cho phép Do tiết kiệm thời gian chi phí tính tốn đồng thời tìm giá trị dự báo cho ma trận gốc với mức độ xác cao Do đó, để tiếp cận thuật tốn phân tích SVD, cần phải nắm kiến thức sở tạo nên Gọi tắt Cơ sở lí thuyết việc phân tích SVD Chúng ta tham khảo thêm khái niệm, tính chất định lí liên quan đến vấn đề qua quyển: “Đặng Văn Vinh, Giáo trình Đại số tuyến tính, NXB ĐHQG 2020) - Ma trận, Định thức - Trị riêng vecto riêng - Khái niệm Họ trực giao trực chuẩn Trực giao hóa GramSchmidt - Chéo hóa ma trận, chéo hóa trực giao tính chất chúng Q trình phân tích SVD ma trận dựa sở lí thuyết nêu trên: Singular Value Decomposition ứng dụng bật Đại số tuyến tính Bất kỳ ma trận A với cấp mxn (không thiết phải ma trận vuông), ta phân tích thành dạng: (!) Trong Q P ma trận trực giao; Σ ma trận chéo không vuông (cấp mxn) với phần tử đường chéo , Σ khơng phải ma trận vng nhưng, ta coi ma trận chéo miễn phần tử khác nằm đường chéo (tức vị trí có số hàng số cột nhau); r Rank(A) số lượng phần tử khác ma trận đường chéo Σ *Chú ý cách biểu diễn (!) khơng nhất, ta cần đổi dấu Q P thỏa mãn • Biểu diễn SVD qua trường hợp ma trận A: +TH1: +TH2: (H1: SVD cho ma trận A khi: (hình trên), (hình dưới) Σ ma trận đường chéo với phần tử giảm dần không âm Màu đỏ đậm thể giá trị cao Các ô màu trắng ma trận thể giá trị 0.)  NGUỒN GỐC SVD Cho A ma trận thực mxn Ta chứng minh tập hợp trị riêng khác không trùng Thật vậy, giả sử trị riêng (eigenvalue) khác vector riêng (eigenvector) tương ứng Khi : ➪ Suy ra: Điều tương đương với Vì khác nên khác Suy trị riêng vector riêng Vì ma trận ma trận đối xứng, nên chúng chéo hóa trực giao Khi đó:  (vì , ma trận đơn vị)  (vì , ma trận đơn vị) Suy - Các cột ma trận sở không gian riêng ma trận sau trực giao hóa Gram - Schmidt trị riêng khác - Các cột ma trận sở không gian riêng ma trận sau trực giao hóa Gram - Schmidt trị riêng khác - ma trận chéo với trị riêng tương ứng Ta xếp cho (hình A1)  Gọi COMPACT SVD ( SVD gọn nhẹ hơn) Viết lại biểu thức (!) dạng tổng với Rank (A) = Với ma trận có hạng Rõ ràng với cách phân tích này, ta nhận thấy ma trận phụ thuộc vào r cột r phần tử khác không đường chéo Ta có phân tích gọn gọi Compact SVD : Với ma trận tạo nên từ cột tương ứng, ma trận tạo hàng cột Nếu ma trận có rank nhỏ nhiều so với số hàng số cột , ta lợi nhiều việc lưu trữ Dưới ví dụ minh hoạ với (H2: Biểu diễn SVD dạng thu gọn biểu diễn ma trận dạng tổng ma trận có rank 1.) Sau đây, ta xét số ví dụ phân tích SVD ma trận bất kì: Bước : Xác định ma trận A(cỡ bao nhiêu) để tiến hành phân tích SVD Bước : Thực chéo hóa trực giao : 2.1 : Viết phương trình đặc trưng Từ tính giá trị riêng Viết ma trận đường chéo có phần tử giá trị riêng, ta vừa tìm được.(Lưu ý phải xếp theo thứ tự giảm dần) 2.2 : Tìm vecto riêng Sau trục giao hóa Gram - Schmidt sở không gian riêng Từ ta tính ma trận , cột vecto riêng Bước : Thực chéo hóa trực giao  Tương tự bước 2.1, 2.2 ta tính Bước 4: Chọn cách chọn ma trận cỡ tương ứng phù hợp với hay Sau lấy bậc tất phần tử đường chéo Bước 5:Vậy phân tích SVD ma trận A : Giả sử phân tích SVD ma trận vuông cấp 2, ta thực sau : Nhận xét: Như từ liệu ban đầu, viết dạng ma trận Q q trình chéo hóa trực giao ma trận ma trận chuyển vị nó, phân tích SVD Trên sở đó, ta dễ dàng ứng dụng chúng vào nhiều lĩnh vực khác khoa học ỨNG DỤNG CỦA PHÂN TÍCH SVD TRONG VIỆC 10 KHỬ NHIỄU ÂM THANH Đặt vấn đề: Trong sống nay, bắt gặp nhiều loại âm khác hoàn cảnh khác Chẳng hạn như: âm buổi hịa nhạc, tiếng trẻ nơ đùa với nhau, tiếng xe cộ chạy đường… Đôi muốn ghi lại âm thanh, khoảng khắc đó, ta sử dụng nhiều phương tiện khác như điện thoại, máy ghi âm Hay ta muốn nghe lại nhạc nhẹ nhàng Nhưng điều chắn khơng thể tránh khỏi tập tin âm ln chứa đầy tạp âm(tiếng ồn, tiếng gió hú ríu rít,…) khiến cho chất lượng âm giảm đáng kể gây khó chịu cho người nghe Lấy ví dụ điển hình bạn học sinh muốn ghi âm lại lời thầy giáo giảng lớp, file ghi âm ngun thủy ( file gốc chưa qua xử lí) cậu khó chịu có nhiều tạp âm xung quanh, ảnh hưởng đến việc tiếp thu bạn học sinh Như vậy, vấn đề cần đặt để khử nhiễu tập tin âm mà mong muốn?  Về mặt ý nghĩa: Nếu như, xử lí tốt tập tin âm theo tiêu chí (trọng tâm, xác , hiệu tiết kiệm thời gian) việc giúp ích cho ta nhiều Trong nghiên cứu âm thanh, giúp ta tiết kiệm11 thời gian Còn doanh nghiệp chuyên lĩnh vực truyền thơng đa phương tiện, xử lí tốt file âm thanh, tiết kiệm nhiều chi phí việc thiết kế phần mềm đó, hay đơn giản tăng chất lượng âm q trình edit video chun nghiệp Từ hướng đến nhiều đối tượng khách hàng với trải nghiệm chất lượng âm tuyệt vời, chân thật đặt biệt khơng cịn tạp âm  Chẳng hạn tập đồn cơng nghệ hàng đầu lớn giới chạy đua, cạnh tranh gay gắt với việc thu phát âm thiết bị điện thoại thông minh, ti vi thông minh… cho tối ưu hiệu Điều đồng nghĩa với việc tạo điều kiện mở rộng hội việc làm lĩnh vực âm nói chung cơng nghệ số nói riêng Nắm bắt xu thế, nắm bắt công nghệ nắm lấy thành cơng Khử nhiễu âm qua thuật tốn phân tích SVD a Về ứng dụng hỗ trợ: Hiện có nhiều ứng dụng hỗ trợ xử lí âm thanh, đặc biệt khử nhiễu dễ sử dụng tiếp cận với người dùng cách nhanh chóng Có thể kể đến như: Audio Editor, Ringtone Editor, WavePad Sound Editor, AudioDroid, Điểm chung tất phần mềm chúng viết dựa đoạn Code xử lí âm C++, C#, Pascal, Python, Matlab….Chúng ta nghiên cứu cách xử lí âm từ ngơn ngữ lập trình Trên phương diện khảo sát nhóm, thực khử nhiễu âm Matlab lẽ: phần mềm cung cấp mơi trường hồn hảo cơng cụ tính tốn lập trình Người sử dụng thực phép tính tốn với ma trận , vẽ đồ thị, hàm số tạo thuật toán riêng cho Đồng thời matlab liên kết với nhiều ngơn ngữ lập trình khác thuận tiện cho người sử dụng b Về thuật tốn Trong Matlab, có nhiều phương pháp khác để khử nhiễu âm phép biến đổi Fourier hữu hạn, phân tích SVD, phân tích thành phần PCA… Như trình bày phần 1.1, việc khử nhiễu phân tích SVD có nhiều ưu điểm thuận lợi, thông qua việc biến đổi điểm liệu không gian, mà đảm bảo hạng ma trận kích thước nhân tử ma trận giới hạn cho phép Như vậy, nhờ thuật tốn cod thể xóa bỏ “vết nhiễu” âm từ giúp đầu âm chất lượng Quá trình khử nhiễu âm bằnh SVD thơng qua Matlab: Q trình phân tích SVD cho file âm matlab trải qua bước sau 12 Bước 1: Giả sử, ta có file âm máy (đi dạng wav, mp3…) ta chèn vào matlab Bằng lệnh “audioread” Bước 2: Chúng ta chọn giá trị mẫu(y) tần số mẫu(Fs, đơn vị Hz), sau thơng qua lệnh “sound”, kiểm tra file âm vừa nạp vào matlab Bước 3: Qua câu lệnh “plot(y)” hay plot the sound, thấy file âm trực quan biểu đồ, giả sử sau chèn file âm thanh, ta có biểu đồ sau: ( với phần đánh dấu x màu xanh đoạn âm có nhiễu với tần số xuất cao, cần phải loại bỏ chúng) Thông qua câu lệnh “Zoom plot(y)” ta quan sát kĩ phần bị nhiễu đoạn âm đó: Bước 4: Chúng ta tiến hành phân tích SVD để khử đoạn âm bị nhiễu đó, nguyên tắc mã hóa thành ma trận gồm nhân tử để chương trình matlab nhận dạnng được, từ bắt đầu phân tích SVD để khử nhiễu a) Chuyển sound ma trận A b) Phân tích SVD ma trận A lệnh [U,S,V]= svd(A) Ta nhập liệu U,S,V để tiến hành phân tích SVD Với U V ma trận trực giao S ma trận đường chéo.(Như hình minh họa giá trị U,S,V ) 13 Bước 5: Trải qua trình phân tích ma trận A thành SVD, chọn điểm khơng gian đoạn bị tạp âm, để xử lí.Sau xử lí hồn tất, ta dùng câu lệnh “figure, subplot” để hiển thị đoạn âm mà ta vừa xử lí, để đối chiếu so sánh Dùng lệnh “zoom plot”để ta quan sát kĩ hơn, phần bị loại bỏ trình khử nhiễu phân tích SVD:  Như qua thao tác kết hợp với sở lí thuyết, có thể: Hiểu chất SVD Các q trình việc phân tích SVD ma trận A Ý nghĩa, tầm qua trọng việc khử nhiễu âm nói chung phân tích SVD thơng qua chương trình Matlab nói riêng Nắm sơ lược cáv thao tác bản, bước đầu làm quen với giao diện Matlab 14 CHƯƠNG TRÌNH MATLAB: Các câu lệnh sử dụng -Clear all: Xóa biến, liệu trước -Audioread(‘Tên file’): Mở file âm cần khử nhiễu có sẵn máy tính -Reshape: Sắp xếp thứ tự số hạng ma trận hay tạo nhiều mảng ma trận -[U,S,V] = svd (A) : phân tích SVD ma trận A -Sigmas= diag(S): gán giá trị đường chéo ma trận S -plot: Vẽ đồ thị -rank= [1000] : Đặt giá trị k để file xuất âm không bị nhiễu -for i=1:length(rank) approx_sigmas = sigmas : loại bỏ trị riêng thấp -approx_S = S : gắn trị riêng xử lí vào ma trận S -Figure: đặt tên file đồ thị -Xlebel, ylebel: đặt tên trục x, trục y - Sound: Lệnh phát âm - Pause: Thực câu lệnh sau 20s - Diag: Lấy giá trị đường chéo - Reduction_diagonal_line(80:end) = 0: Khử giá trị đường chéo từ hàng 80 trở giá trị - Fillmissing: Điền vào giá trị trống vào giá trị đứng trước Đoạn code %% BTL NHĨM ĐẠI SỐ TUYẾN TÍNH GV : NGUYỄN ANH THI , NGUYỄN XUÂN MỸ clc; clear; %% CODE % Đọc file âm [Y,Hz] = audioread('amthanh.wav'); 15 X = reshape(Y,[],768); [U,S,V] = svd(X); t = 0:1/Hz:(length(Y)-1)/Hz; figure('name','File đồ thị âm ban đầu'); plot(t,Y); xlabel('Thoi gian (s)'); ylabel('Bien tin hieu'); title('Đồ thị âm ban đầu'); sound(Y,Hz); pause(20); % Khử nhiễu reduction_diagonal_line = diag(S); reduction_diagonal_line(80:end) = 0; len_S = length(reduction_diagonal_line); reduciton_S = S; reduciton_S(1:len_S,1:len_S) = diag(reduction_diagonal_line); new_X = U*reduciton_S*transpose(V); new_Y = reshape(new_X,[],2); new_Y = fillmissing(new_Y,'previous'); figure('name','File đồ thị âm sau khử nhiễu'); plot(t,new_Y,'b'); title('đồ thị âm sau khử nhiễu'); xlabel('Thoi gian (s)'); ylabel('Bien tin hieu'); sound(new_Y,Hz); 16 Nhận xét: Qua trình khử nhiễu SVD chương trình Matlab , ta thấy âm ghi âm lọc bớt tạp âm (tiếng rè, tiếng nói chuyện từ xa) phần đoạn cuối giúp cho âm tiếng đàn trở nên rõ ràng, NGUỒN THAM KHẢO Trong q trình nhóm thực việc nghiên cứu, có sử dụng, tham khảo số tài liệu, trang web sau: Aisha, 2019 Viblo [Online] Available at: https://viblo.asia/p/handbook-singular-values-decomposition-va-mot-soung-dung-yMnKMOoml7P Anon., 2015 [Online] Available at: http://vimach.net/threads/matlab-co-ban-9-vecto-mang-voi-file-amthanh.160/ Available at: https://www.mathworks.com/help/audio/ug/spectral-descriptors.html? searchHighlight=noise%20reduction%20audio%20code&s_tid=srchtitle DayCode, T., 2018 Youtube [Online] Available at: https://www.youtube.com/watch?v=xXk9nS6YdU8&feature=youtu.be hai, n v d., 2020 YouTube [Online] Available at: https://www.youtube.com/watch?v=P4DOF7lHb8E&feature=share Talkie, K., 2019 Youtube [Online] Available at: https://www.youtube.com/watch?v=SJRHv5vvlnU&feature=youtu.be Vinh, Đ V., 2020 Đại số tuyến tính NXB Đại Học Quốc Gia 17 ... khử nhiễu âm thanh? ?? MỤC LỤC TRANG LỜI CẢM ƠN MỞ ĐẦU MỞ HỌC VÀ SƠ LƯỢC BTL Chương 1: CƠ SỞ LÍ THUYẾT CỦA PHÂN TÍCH SVD Chương 2: ỨNG DỤNG CỦA SVD TRONG KHỬ NHIỄU ÂM THANH ... phân tích SVD:  Như qua thao tác kết hợp với sở lí thuyết, có thể: Hiểu chất SVD Các trình việc phân tích SVD ma trận A Ý nghĩa, tầm qua trọng việc khử nhiễu âm nói chung phân tích SVD thơng... 14 DANH MỤC CÁC TÀI LIỆU THAM KHẢO 15 CƠ SỞ LÍ THUYẾT CỦA PHÂN TÍCH SVD: Mục tiêu phân tích suy biến SVD Phương pháp SVD tìm lớp ma trận xấp xỉ tốt với ma trận cho trước dựa khoảng cách norm

Ngày đăng: 18/12/2021, 07:31

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w