Biểu diễn SVD qua các trường hợp của ma trận...5Phần III: Ứng dụng của phân tích SVD trong khử nhiễu âm thanh...71.. Các dạng phân tích suy biếnThông thường việc phân tích suy biến một m
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
KHOA KHOA HỌC ỨNG DỤNG
BỘ MÔN TOÁN ỨNG DỤNG
BÁO CÁO BÀI TẬP LỚN ĐẠI SỐ TUYẾN TÍNH
Đề tài:
Phân tích SVD để khử nhiễu âm thanh hoặc hình ảnh
Nhóm thực hiện: Nhóm 11 – Lớp L05
Trần Đăng Nhật 2312486 Tìm thông tin
Trang 2MỤC LỤC:
A NỘI DUNG 2
Phần I: Cơ sở lý thuyết của SVD 2
1 Phát biểu SVD: 2
2 Các dạng phân tích suy biến 3
Phần II: Các bước phân tích SVD 5
1 Quá trình phân tích SVD của một ma trận dựa trên cơ sở lý thuyết đã nêu trên: 5
2 Biểu diễn SVD qua các trường hợp của ma trận 5
Phần III: Ứng dụng của phân tích SVD trong khử nhiễu âm thanh 7
1 Các vấn đề liên quan đến âm thanh: 7
2 Ý nghĩa của việc khử nhiễu: 7
3 Khử nhiễu âm thanh thông qua thuật toán phân tích SVD 8
B ỨNG DỤNG CODE MATLAB: 9
C TÀI LIỆU THAM KHẢO: 10
D LỜI CẢM ƠN: 10
A NỘI DUNG
Phần I: Cơ sở lý thuyết của SVD
1 Phát biểu SVD:
Phép phân tích suy biến (Singular Value Decomposition) viết tắt là SVD là một
dạng matrix factorization Theo đó phương pháp này cũng nhằm phân rã một ma trận thành tích của ba ma trận số thực hoặc số phức Trong đó hai ma trận ở vị trí đầu tiên và cuối cùng là ma trận
Trang 3trực giao có thể không là khả nghịch của nhau và ở giữa là ma trận đường chéo có thể không vuông
Kích thước ma trận được để ở bên dưới chân ma trận, tức là ma trận A R Trong công mn∈ m*n
thức trên thì Umm,Vnn là các ma trận trực giao và Σ mn là ma trận đường chéo
Minh hoạ phép phân tích suy biến
Trang 4Mô tả SVD củ a ma trận A trong hai trường hợp m < n và m > n trường hợp m = n có thể xếp mn
vào một trong hai trường hợp trên
2 Các dạng phân tích suy biến
Thông thường việc phân tích suy biến một ma trận có kích thước lớn sẽ rất lâu vì trước tiên ta phải giải phương trình đặc trưng để tìm ra các giá trị đặc trưng, từ đó suy ra ma trận đường chéo Tiếp theo để tìm ra ma trận trực giao ta xuất phát từ phương Σ V
trình để suy ra
Như vậy đối với một cột bất kỳ của ma trận ta có:V I V
Phương pháp Compact SVD
Trang 5Rõ ràng trong cách biểu diễn này, ma trận A chỉ phụ thuộc vào r cột đầu tiên của U,V và r giá trị khác 0 trên đường chéo của ma trận Σ Vì vậy ta có một cách phân tích gọn hơn và gọi
Với Ur,Vr lần lượt là ma trận được tạo bởi r cột đầu tiên của U và V Σr là ma trận con được tạo bởi r hàng đầu tiên và r cột đầu tiên của Σ Nếu ma trận A có rank nhỏ hơn nhiều so với số hàng
và số cột r m,n ta sẽ được lợi nhiều về việc lưu trữ.≪
Dưới đây là ví dụ minh hoạ với m=4, n=6, r=2
Trang 6Phần II: Các bước phân tích SVD
1 Quá trình phân tích SVD của một ma trận dựa trên cơ sở lý thuyết đã nêu trên:
Singular Value Decomposition (SVD) là một ứng dụng nổi bật trong Đại số tuyến tính Với một
ma trận A cấp m×n bất kỳ nào (không nhất định là một ma trận vuông), ta có thể phân tích thành dạng:
(1) Trong đó: U , V là các ma trận trực giao, Σ là ma trận đường cháo không vuông (cấp mxn) với các phần tử trên đường chéo σ1≥ σ2≥ ≥ σr≥0=0= =0 và r là rank của ma trận A Lưu ý, mặc ⋯ ⋯
dù Σ không phải ma trận vuông, ta vẫn có thể coi nó là một ma trận chéo nếu các thành phần khác không của nó chỉ nằm ở vị trí đường chéo, nghĩa là tại các vị trí có chỉ số hàng và chỉ số cột là như nhau Số lượng các phần tử khác 0 trong Σ là rank của ma trận A
* Chú ý rằng cách biểu diễn của (1) không là duy nhất, ta chỉ cần đổi dấu của cả U và V thì vẫn thoả mản (1)
2 Biểu diễn SVD qua các trường hợp của ma trận
TH1: với m<n:
Trang 7TH2:với m<n:
H1: SVD cho ma trận A khi: m<n (ở hình trên), và m>n (ở hình dưới) Σ là một ma trận đường
chéo với các phần tử trên đó giảm dần và không âm Màu đỏ càng đậm thể hiện giá trị càng cao Các ô màu trắng trên ma trận này thể hiện giá trị 0
Trang 8Phần III: Ứng dụng của phân tích SVD trong khử nhiễu âm thanh
File ghi âm có lẫn tạp âm cần được xử lí:
noise.wav
1 Các vấn đề liên quan đến âm thanh:
Trong đời sống, âm thanh đóng vai trò quan trọng trong các hoạt động, công việc liên lạc và nhu cầu giải trí Ví dụ như : âm thanh còi báo động, còi xe, âm nhạc,
Đôi lúc trong công việc chúng ta gần làm việc với âm thanh, chẳng hạn như gửi, nhận âm thanh
và ghi âm Việc ghi lại âm thanh đôi khi sẽ sinh ra một vấn đề đó là các tạp âm không mong muốn sẽ được ghi lại, và làm giảm chất lượng âm thanh ( tiếng ồn, tiếng gió ríu rít, ) Vậy vấn đề đặt ra là làm sao để chúng ta khử nhiễu một tập tin âm thanh để tạo ra tập tin âm thanh mà ta mong muốn ?
2 Ý nghĩa của việc khử nhiễu:
- Việc khử nhiễu âm thanh sẽ giúp chúng ta tiết kiệm về thời gian trong việc phân tích âm thanh
Ví dụ như trong việc nghiên cứu âm thanh trong vũ trụ, các âm thanh trong lòng trái đất,
- Một file âm thanh đã được khử nhiễu sẽ góp phần làm tăng chất lượng của sản phẩm, ứng dụng
mà con người tạo ra Ví dụ trong việc tạo video, làm phim, các ứng dụng liên lạc, Từ đó sẽ tạo
ra những trải nghiệm về âm thanh tuyệt vời, chân thực
- Thúc đẩy cuộc chạy đua về công nghệ để tạo ra những ứng dụng, thiết bị thu âm, khử nhiễu nhằm cải thiện các vấn đề liên quan đến âm thanh
Trang 93 Khử nhiễu âm thanh thông qua thuật toán phân tích SVD
- Bước 1 : Ta đang có một file âm thanh trong máy ( đuôi các file này có thể là MP3, WAV, AAC,
WMA) Sau đó ta chèn file muốn khử nhiễu vào Matlab bằng lệnh ‘‘audioread’’.
- Bước 2: Chúng ta chọn giá trị mẫu (y) và tần số của mẫu (Fs, đơn vị là Hz), sau đó bằng lệnh
‘’sound’’, ta có thể kiểm tra file âm thanh vừa được chèn vào Matlab.
- Bước 3: Thông qua câu lệnh ‘‘plot(y)’’ (plot the sound),ta có thể thấy được file âm thanh đó
một cách trực quan trên biểu đồ, giả sử sau khi chèn được file âm thanh ta sẽ có biểu đồ như sau : Những phần được đánh dấu x màu xanh là những đoạn âm thanh có nhiễu với tần số xuất hiện cao, đây là những phần cần được loại bỏ
- Bước 4: Ta tiến hành phân tích SVD để khử nhiễu những đoạn âm thanh đó, dựa trên nguyên tắc
mã hóa thành một ma trận gồm các nhân tử để chương trình Matlab có thể nhận dạng được, từ đó tiến hành phân tích SVD để khử nhiễu
a) Chuyển sound về ma trận A
b) Phân tích SVD ma trận A bằng lệnh [U,S,V]=svd(A)
- Bước 5 : Sau khi phân tích ma trận A thành SVD, chọn các điểm trong không gian chính là
những đoạn bị tạp âm, để xử lí hoàn tất, ta dùng câu lệnh ‘‘figure,subplot’’ để hiển thị đoạn âm
thanh mà ta xử lí để đối chiếu so sánh
Trang 10B ỨNG DỤNG CODE MATLAB:
% Doc file am thanh
[x, fs] = audioread('noise.wav');
% Thuc hien phan tich SVD
[U, S, V] = svd(x,'econ');
% Tinh nang luong cua cac thanh phan chinh
E = diag(S);
% Chuan hoa cac thanh phan chinh
S_norm = S / sqrt(sum(E));
% Chuyen doi ma tran am thanh da duoc loc thanh dang am thanh
x_filtered = U * S_norm * V';
% Xuat file am thanh da duoc loc
audiowrite('filtered_audio.wav',x_filtered,fs);
Chú thích:
-Hàm audioread() : đọc file âm thanh cần xử lý
-Hàm svd() thực hiện phân tích SVD âm thanh x thành 3 ma trận U,S,V ('econ' giúp hàm tính toán phân tích theo kiểu tiết kiệm bộ nhớ, chỉ tính toán các thành phần chính)
-Hàm diag(): tạo ra một ma trận vuông với các giá trị trên đường chéo chính là các giá trị của ma trận S, chứa các gía trị năng lượng của thành phần chính
-Hàm sqrt() : tính căn bậc hai của từng phần tử trong ma trận E
-V' là ma trận chuyển vị của ma trận V
- Hàm audiowrite() : ghi file âm thanh đã được lọc ( Tham số fs trong hàm audiowrite() là tần số lấy mẫu của file âm thanh Tần số lấy mẫu là số lần tín hiệu âm thanh được lấy mẫu trong một giây Tần số lấy mẫu càng cao thì tín hiệu âm thanh càng được mô tả chính xác)
SẢN PHẨM:
san pham_audio.wav
Trang 11C TÀI LIỆU THAM KHẢO:
Singular Value Decomposition - Stanford University
https://www.youtube.com/watch?v=xXk9nS6YdU8
D LỜI CẢM ƠN:
Kính gửi cô,
Sau khi hoàn thành học phần Đại số tuyến tính – Mã MH: MT1007 – Lớp L05, nhóm em xin gửi lời cảm ơn chân thành tới cô Nguyễn Xuân Mỹ
Qua học phần này, em đã được hệ thống hóa những kiến thức cơ bản về đại số tuyến tính như: bao gồm vector, ma trận, không gian tuyến tính, ánh xạ tuyến tính, Những kiến thức này giúp nhóm em nhìn nhận sâu sắc hơn về kiến thức của môn học và các ứng dụng của nó
Cô đã truyền đạt kiến thức một cách rõ ràng, sinh động, kết hợp lý thuyết với thực tiễn để lớp chúng em dễ hiểu và nắm vững Em xin chân thành cảm ơn cô về sự nhiệt tình, tận tụy trong giảng dạy và động viên học tập
Những kiến thức nhóm em được học từ học phần này chắc chắn sẽ là nền tảng vững chắc cho em trong việc tiếp thu các kiến thức toán học ở trình độ cao hơn cũng như ứng dụng vào thực tiễn sau này
Một lần nữa, em xin chân thành cảm ơn cô !
Kính chúc cô sức khỏe, hạnh phúc và thành công!
Em xin kính chào!