1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn Đại số tuyến tính chủ Đề 8 cơ sở lý thuyết của phân tích svd ứng dụng svd trong khử nhiễu âm thanh

10 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 1,51 MB

Nội dung

Mục tiêu của phân tích suy biến SVD - Phương pháp SVD sẽ tìm ra một lớp các ma trận xấp xỉ tốt nhát với một ma trận cho trước dựa trên khoảng cách norm Frobenios giữa 2 ma trận.. Người

Trang 1

TRUONG DAI HOC BACH KHOA KHOA KHOA HOC & UNG DUNG

BK

TP.HCM

BAO CAO BAI TAP LON DAI SO TUYEN TINH

CHU DE 8

CƠ SỞ LÝ THUYÉT CUA PHAN TICH SVD

UNG DUNG SVD TRONG KHU’ NHIEU ÂM THANH

Giảng viên hướng dan: Thay Dang Van Vinh

Lop: P03 - Nhom: 01

Sinh viên thực hiện Mã số sinh viên Nhiệm vụ

Soạn báo cáo

Tìm hiểu matlab

bề

Trang 2

1 GiớithiệuphântíchSVD

1 Mục tiêu của phân tích suy biến SVD 5-522 52c SEEcrcsrerrre 05

II Cơ sở lý thuyết của phân tích SVD

1 Tri ca 8 .an 05

2 Hệ trực giao và trực chuẩn -0s 5c 2H22 reo 05

3.7 Các trường hợp phân tích SVD ĂSeihrrrrree 06 3.1.1 Trường hợp 1 Amxn (m <n)

3.1.2 Trương hợp 1 Amxn (m > n)

3.3 Ví dụ về phân tích $VD 2225222222212211221222.E1EEeree 07

II Ứng dung của phân tích SVD trong khử nhiễu âm thanh

1 Những vấn đề âm thanh trong cuộc sống -55- 222222 08

2 Ý nghĩa của việc khử nhiễu - 252 52 2222212222122 1121k 08

3 Khử nhiễu âm thanh qua thuật toán SVD 52222222 rerre 09

4 Các câu lệnh được sử dụng trong Maflab à He 09

5 Đoạn code khử nhiễu âm thanh trong IMatlab 55 27-2 10

6 CAC DUOC TAUC HIE GOAN COE cccccccccceccesccsscesseseesecsescessessecsecessessenacensensesnesenes 11

Page 3

Trang 3

| Giéi thiéu phan tich SVD

1 Mục tiêu của phân tích suy biến SVD

- Phương pháp SVD sẽ tìm ra một lớp các ma trận xấp xỉ tốt nhát với một ma trận

cho trước dựa trên khoảng cách norm Frobenios giữa 2 ma trận Người ta đã chứng

minh được rằng ma trận xấp xỉ tốt nhất được biểu diễn dưới dạng tích của 3 ma trận

rất đặc biệt bao gồm 2 ma trận trực giao (orthogonal matrix) và 1 ma trận đường chéo

(diagonal matrix) Quá trình nhân ma trận thực chất là quá trình biến đổi các điểm dữ

liệu của ma trận gốc thông qua những phép xoay trục (rolation) và phép biến đổi độ lớn (scaling) và từ đó tạo ra những điểm dữ liệu mới trong không gian mới Điều đặc biệt của ma trận đường chéo đó là các phần tử của nó chính là những giá trị riêng của

ma trận gốc Những điểm dữ liệu trong không gian mới có thể giữ được 100% thông tin ban đầu hoặc chỉ giữ một phần lớn thông tin ban truncate SVD Bằng cách sắp xếp

các trị riêng theo thứ tự giảm dần trên đường chéo chính thuật toán SVD có thể thu

được ma trận xấp xỉ tốt nhất mà vẫn đảm bảo giảm được hạng của ma trận sau biến đổi và kích thước các ma trận nhân tử nằm trong giới hạn cho phép Do đó nó tiết

kiệm được thời gian và chỉ phí tính toán và đồng thời cũng tìm ra được 1 giá trị dự báo cho ma trận gốc với mức độ chính xác cao

- Để tìm hiểu SVD ta can phải nắm cơ sở lý thuyết của SVD gồm những kiến

thức cơ bản sau:

- — Trị riêng, Vecto riêng của ma trận

- Họ trực giao và trực chuẩn Trực giao hoá Gram - Schimidt

ll Cơ sở lý thuyết của phân tích SVD

1 Trị riêng và vecto riêng của ma trận

- Cho một ma trận A e Ma (K) Số Ào e K được gọi là gía trị riêng của ma trận A, nếu tồn tại vecto Xo # 0 sao cho AXo = ÀoXo

- Vecto Xo được gọi là vecto riêng của ma trận A tương ứng với giá trị riêng Ào

- Tén tại Xo # 0 để AXo= ÀoXo

<=> AXo - ÀoXo= 0 <=>(A- Àol)Xo=0 (1)

- Hệ thuần nhất (1) có nghiệm khi và chỉ khi det (A - Àol)=0 (2)

- Phương trình (2) được gọi là phương trình đặc trưng của A

=> Số Ào là trị riêng của A khi và chỉ khi Ào là nghiệm của phương trình đặc trưng

- Vecto Xo là vecto riêng của A ứng với trị riêng Ao khi va chỉ khi Xo là nghiệm # 0 của

hệ phương trình (1)

2 Hệ trực giao và trực chuẩn

- Một hệ cơ sở u¡,ua, ,um e Rm được gọi là trực giao (orthogonal) nếu mỗi vecto là

khác 0 và tích của hai vector khác nhau bất kỳ bằng 0:

| u;⁄0; uu,=0V1<i¿#j<m

hệ trực giao và độ dài Euclidean (norm 2) của mỗi vecto bằng 1:

ấu = Ân if i=j (4)

Page 5

Trang 4

Goi U=[u1,u2, ,Um] VOi U1,U2, ,UmeRm la tre chuan, thế thì từ (4) có thể suy ra ngay:

trong dé | la ma tran don vi bac m Ta gọi U là ma trận trực giao (orthogonal matrix) Ma trận loại này không được gọi là ma trận trực chuẩn, không có định nghĩa

cho ma trận trực chuẩn

3 Phan tich SVD (Singular Value Decomposit)

- Một ma trận Amxn bắt kì đều có thể phân tích thành dạng

©

Amxn = Umxm™Bmxn(Wnxn)

- U la ma trận gồm các vecto riêng bên trái của A, kích thước mxm sao cho các vecto

cột tạo thành hệ trực chuẩn

- V là ma trận gồm các vecto riêng bên phải của A, kích thước nxn sao cho các vecto

cột tạo thành hệ trực chuẩn

- > là ma trận đường chéo không vuông, kích thước mxn với các phần tử trên đường chéo ơ1 > ơ2 > -> ơr > 0=0=: =0

- r là hạng của A, số lượng phần tử # 0 trong > là hạng của A

- Ta có thể ghi lại A = ơi u¿vịT + øzuavaT + + ơu,v,', với uv/' là ma trận có hạng bằng

4

=> A phụ thuộc vào r cột đầu tiên của P., Q và r phần tử # 0 trên đường chéo >

- Từ đó, ta có phan tich gon hon ctia A ( compact SVD): A = U,DV,, voi Ur va V; la các

ma trận tạo nên từ các cột của U và V tương ứng

3.1 Phân tích SVD qua 2 trường hợp của A

3.1.1 Trương hop 1 Amxn(m < n)

vt

nxn

(m <n)

Page 6

Trang 5

3.1.2 Trường hop 2 Amxn (m > n)

‘a

Dinca (m > n)

3.2 Phương pháp tim phan tich SVD cua ma tran bat ki

- Ta có AAT = U>VT (UEVDT = USVTVETUT = U>>TUT

=> Các cột của U là các vecto riêng của AAT và ơ42, ơz2, , ơ:2 là các trị riêng khác 0 của AAT

ATA = (UỀVĐTUBEVT = VETUTUEVT = VXT>VT

=> Các cột của V là các vecto riêng cla ATA và ơ42, ơz?, , ơ;2 là các trị riêng khác 0 của ATA

- Bước 1: Xác định ma trận A để phân tích SVD

- Bước 2: Thực hiện chéo hoá trực giao: AAT = UD:UT

+ 2.1 Viết phương trình đặc trưng AAT => Giá trị riêng của AAT => Ma trận đường chéo D: với các phần tử là giá trị riêng vừa tìm được

* Lưu ý: Sắp xếp theo thứ tự giảm dần

+ 2.2 Tìm các vecto riêng của AAT => Ma trận U với các cột là các vecto riêng của AAT

- Bước 3: Thực hiện chéo hoá trực giao: ATA = VDaVT

- Tương tự 2.1 và 2.2 ta tính được Da và V

- Bước 4: Chọn >xxa bằng cách chon ma trận cỡ tương ứng hợp với D: và Da Sau đó

lấy căn bậc 2 của tất cả phần tử trên đường chéo

- Bước 5: Vậy phân tích SVD của ma trận Ann = ma Smxn(Vmsn)T

*Lưu ý: Ma trận chéo hoá trực giao được khi và chỉ khi ma trận đó đối xứng

3.3 Ví dụ về phân tích SVD

2

- Phương trình đặc trưng của AAT: det (AAT - Al) = 0

<=> À?-34À+225 =0

<=> À¡ = 25 hay Àa=9

=> D 1= = ( 0 9 )

-V6iA1 = 25 <=> (AAT - Ail)X = 0 <=> { 8x, — 8x, = 0 => {x, Il e

=> Cơ sở trực chuẩn ứng với À: là 1/2 (1;1)T

Page 7

Trang 6

y= a

=> Cơ sở trực chuẩn ứng với Àa là 12 (1;-1)T

- Tương tự với Àa = 9 ta có: {

=> Ma trận U =1/2(1 1 )

1 —1

13 12 2

- Tương tự ta chéo hoá trực giao ATA

- Từ đó tac Zas=(P 9 0)

Vậy phân tích SVD của A = Uzxzx Zax3 x (Vax3)"

=1/420 _1)X (8 3 o)XŒ Fis 3)

vịg 3

lll Ứng dụng của phân tích SVD trong khử nhiễu âm thanh

1 Những vấn đề âm thanh trong cuộc sóng

- Trong cuốc sống hàng ngày, chúng ta bắt gặp nhiều loại âm thanh như âm thanh của

các phương tiện di chuyển, hoạt động của con người, Và đôi lúc ta cần thu âm lại

những âm thanh nhưng chắc chắn sẽ có những tạp âm ( tiếng gió, tiếng ồn xung quanh, ) làm ảnh hưởng đến chất lượng đoạn âm được ghi lại Và chúng ta cần phải khử nhiễu âm thanh để đem lại đoạn ghi âm chất lượng nhất có thé

2 Ý nghĩa của việc khử nhiễu

- Trong nghiên cứu về âm thanh, sẽ giúp tiết kiệm thời gian

- Về lĩnh vực truyền thông đa phương tiện, nếu xử lí tốt file âm thanh tiết kiệm nhiều chi phí trong việc thiết kế phần mềm nào đó

- Mở ra cơ hội cho các hãng công nghệ chạy đua về công nghệ các thiết bị thu gọi

giảm thiểu tạp âm một cách tối ưu nhất

- Tạo ra vô số công việc trong lĩnh vực âm thanh

3 Khử nhiễu âm thanh qua thuật toán SVD

- Ta sẽ viết đoạn code xử lí âm thanh qua Matlab

Page 8

Trang 7

- Trong Matlab có rất nhiều thuật toán xử lí âm thanh như phép biến đổi Fourier hữu hạn, phân tích SVD, phân tích thành phần chính tuy nhiên việc khử nhiễu bằng phân tích SVD sẽ có nhiều ưu điểm thuận lợi, thông qua việc biến đổi những điểm dữ liệu

mới trong không gian mà vẫn đảm bảo được hạng của ma trận và kích thước của các nhân tử của ma trong một giới hạn cho phép

4 Các câu lệnh được sử dụng trong Matlab

- Reshape(x,|y,z]) : biến đổi ma trận x thành ma trận có y hàng và z cội

- [U,S,VỊ = svd(B) : phân thích ma trận B thanh dang SVD

- Transpose(a): chuyển vị ma tran a

- Diag(c): các số trên đường chéo c thành 1 ma trận

- Length: chiều dài của các kí tự trong ma trận

- Rank: số k tính toán

- Figure: tạo 1 đồ thị

- Plot: vẽ đồ thị

- X label: đặt tên cho trục hoành đồ thị

- Y label: đặt tên cho trục tung đồ thị

- Title: tên đồ thị

- Sprintf: hiển thị ra tên tiêu đề

Page 9

Trang 8

s ue

clear all

[y.fs] = audioread('gdgagsgda.mp3.mp4)

A= reshape(y,[],1);

B = reshape(A,[378,1387]);

[U,S,V] = svd(B);

T = transpose(V);

anpha = diag(S);

X = length(U);

rank=[300,200,100,50,10]

for i=1:length(rank)

beta_anpha=anpha; beta_anpha(rank(i):end)=0;

ns=length(anpha);

beta_S=S;

beta_S(1:ns,1:ns)=diag(beta_anpha);

beta_audio=U* beta_S*T;

C = reshape(beta_audio,[],1);

figure;

t=(0:length(C)-1)/fs;

plot(t,C);

xlabel(‘thoi gian (giay)');

ylabel('Biên độ tin hiệu'):

if i==1, title(sprintf(‘D6 thi audio géc’))

else

title(sprintf(‘D6 thi audio khi k=%d' ,rank(i)));

end

end

Page 10

Trang 9

Dé thi audio géc Dé thi audio khi K = 50

6 Các bước thực hiện đoạn code

- Bước 1: Giả sử có 1 file âm thanh trong máy ( dạng vav, mp3, ), ta chèn vào matlab

bằng lệnh “audioread”

- Bước 2: Ta chọn giá trị mẫu “y” và tần số của mẫu (Fs, đơn vị Hz), sau đó thông qua lệnh “sound” ta có thể kiểm tra file âm thanh vừa mới nạp vào matlab

- Bước 3: Qua câu lệnh plot(y) hay plot the sound, ta có thể thay file âm thanh đó trên

trực quan biểu đồ, giả sử sau khi chèn được file âm thanh ta có biểu đồ như sau: với những phần đá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, chúng ta cần phải loại bỏ chúng)

- Bước 4: Chúng ta tiến hành phân tích SV để khử đoạn âm thanh bị nhiễu dựa trên

nguyên tắc mã hoá 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ừ đó phân tích SVD để khử nhiễu

+ Chuyển sound về ma trận

+ Phân tích SVD ma trận B bởi lệnh [U,S,VỊ = SVD (8), với U và V là các ma trận trực giao và S là ma trận đường chéo

- Bước 5: Trải qua quá trình phân tích ma trận B thành SVD, chọn các điểm trong không gian chính là những đoạn tạp âm để xử lí Sau khi xử hoàn tất ta chọn lệnh

“figure, subplot” dé hiển thị đoạn âm thanh vừa được xử lí, để đối chiếu so

+ Dùng lệnh “zoom plot để ta có thể quan sát kĩ hơn phần đã bị loại bỏ trong quá

trình khử nhiễu

=> KÉT LUẬN: từ khảo sát đồ thị và nghe âm thanh phát ra ứng với mỗi giá trị k

ta thấy k càng nhỏ dữ liệu ma tran mat mát càng lớn âm thanh càng bị nhiễu khi

k càng lớn âm thanh rõ gần giá trị k gốc

Page 11

Trang 10

IV Nguồn tài liệu tham khảo

- Giáo trình đại số tuyến tính, Đặng Văn Vinh, NXB Đại học Quốc Gia TP Hồ Chí Minh

2022, tái bản lần thứ nhất

-https:/www.youtube.com/watch?v=xMGggy_bHNI&t=445s

-https:/Avww youtube.com/@PhilsBeginnerCode

-https:/Avww youtube.com/@Eigensteve

-Góp ý của anh chi

hitps://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjHva

com %2F2017%2F06%2FO7%2Fsvd %2F&usg=A Ov Vaw 2sKoHQykhkKZOhyiFfgNK7 hitps://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjHva

andbook-singular-values-decomposition-va-mot-so-ung-dung-

Page 12

Ngày đăng: 14/12/2024, 15:44

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

TÀI LIỆU LIÊN QUAN