Dựa trên các công cụ như ma trận Fourier, chúng ta có thể áp dụng các phép tính đại số tuyến tính để xử lý tín hiệu hiệu quả hơn và loại bỏ các tần số nhiễu không mong muốn.. Việc ứng dụ
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
BÁO CÁO BÀI TẬP LỚN
MÔN ĐẠI SỐ TUYẾN TÍNH
ĐỀ TÀI: PHƯƠNG PHÁP FOURIER RỜI RẠC ĐỂ KHỬ
NHIỄU ÂM THANH STT Sinh viên thực hiện Mã số sinh viên
Lớp L12 – Nhóm 1
GVHD: ThS Nguyễn Xuân Mỹ
Thành phố Hồ Chí Minh – 11/2024
Trang 2MỤC LỤC
CHƯƠNG I: TÓM TẮT BÀI BÁO CÁO
1 LỜI MỞ ĐẦU 3
CHƯƠNG II: NỘI DUNG BÀI BÁO CÁO
1 ĐẶT VẤN ĐỀ VÀ MỤC TIÊU 4
2 CƠ SỞ LÝ THUYẾT
2.1 Một số khái niệm cơ bản liên quan 4
2.1.1 Định nghĩa ánh xạ tuyến tính 4
2.1.2 Nhân và ảnh của ánh xạ tuyến tính 5
2.2 Tổng quan về phương pháp biến đổi Fourier 5
2.2.1 Giới thiệu khai triển Fourier rời rạc 5
2.2.2 Mục đích 5
2.2.3 Định nghĩa 6
2.2.4 Ví dụ khai triển Fourier 6
2.3 Ứng dụng biến đổi Fourier hữu hạn trong khử nhiễu âm thanh 7
3 BIẾN ĐỔI FOURIER RỜI RẠC ĐỂ KHỬ NHIỄU ÂM THANH TRONG MATLAB
3.1 Các bước dùng phép biến đổi Fourier hữu hạn để khử nhiễu 8
3.1.1 Đoạn code sử dụng trong Matlab 8
3.1.2 Các bước thực hiện và ý nghĩa của các câu lệnh 9
3.2 Ví dụ hình ảnh đồ thị trước và sau khi lọc nhiễu 10
4 KẾT LUẬN 12
5 LỜI CẢM ƠN13
6 TÀI LIỆU THAM KHẢO 13
Trang 3CHƯƠNG I: TÓM TẮT BÀI BÁO CÁO
1 LỜI MỞ ĐẦU
Đại số tuyến tính là một môn học đại cương tiền đề để cung cấp nền tảng toán học cần thiết cho nhiều ứng dụng trong khoa học, kỹ thuật và phân tích dữ liệu cho sinh viên khối ngành kĩ thuật-công nghệ nói chung và sinh viên của trường Bách khoa nói riêng Đại số tuyến tính cho phép chúng ta làm việc với dữ liệu trong không gian đa chiều, điều này rất hữu ích trong các lĩnh vực như đồ họa máy tính, kỹ thuật và khoa học dữ liệu Đặc biệt, trong trí tuệ nhân tạo và kỹ thuật học máy, các mô hình và thuật toán sử dụng ma trận và vector để tối ưu hóa và phân tích dữ liệu, nhờ đó có thể học từ dữ liệu và đưa ra dự đoán Ngoài ra, đại số tuyến tính giúp mô hình hóa các hệ thống tuyến tính trong vật lý, kinh tế và sinh học, giúp chúng ta hiểu rõ hơn về cách mà các hệ thống phức tạp thay đổi
Vì vậy, chúng ta cần học môn học này một cách tập trung và nắm vững kiến thức để làm nền tảng lĩnh hội những kiến thức thuộc lĩnh vực các môn chuyên ngành trong tương lai Nhờ vào sự hiểu biết càng ngày càng sâu rộng trong môn Đại số tuyến tính mà con người ngày nay đã phát triển công nghệ và trí tuê nhân tạo một cách tối ưu nhất Đại số tuyến tính không chỉ là một môn học lý thuyết mà còn có nhiều ứng dụng thực tiễn, đặc biệt trong lĩnh vực giải trí Trong đồ họa máy tính, đại số tuyến tính giúp xử lý và hiển thị hình ảnh 3D, cho phép tạo ra các hiệu ứng thị giác phức tạp và chân thực Bên cạnh đó, đại số tuyến tính cũng rất quan trọng trong lĩnh vực âm thanh và xử lý âm nhạc Các ứng dụng như điều chỉnh tần số, lọc tiếng ồn, hoặc tạo hiệu ứng âm thanh đều dựa trên các phép toán ma trận và vector để biến đổi sóng âm Điều này hỗ trợ việc cải tiến chất lượng
âm thanh trong phim ảnh, âm nhạc, và các trò chơi
Sau khi tìm hiểu về Matlab cũng như được dẫn dắt dưới sự chỉ dạy tận tình của cô Nguyễn Xuân Mỹ, nhóm tụi em sẽ nghiên cứu đề tài “ Phương pháp Fourier rời rạc (DFT) vào khử nhiễu âm thanh” Dựa trên các công cụ như ma trận Fourier, chúng ta có thể áp dụng các phép tính đại số tuyến tính để xử lý tín hiệu hiệu quả hơn và loại bỏ các tần số nhiễu không mong muốn Nhờ vào DFT, kỹ thuật khử nhiễu âm thanh trở nên chính xác
và hiệu quả hơn, từ đó cải thiện chất lượng âm thanh trong các ứng dụng như thu âm, phát thanh, phim ảnh và các thiết bị truyền thông Việc ứng dụng đại số tuyến tính qua DFT vào khử nhiễu đã mở ra nhiều khả năng trong việc tối ưu hóa âm thanh và truyền tải tín hiệu rõ ràng hơn trong thực tế
Trang 4PHẦN II NỘI DUNG BÁO CÁO
1 ĐẶT VẤN ĐỀ VÀ MỤC TIÊU
Trong thời đại công nghệ toàn cầu hóa, việc tiếp cận kiến thức thông qua các trang mạng xã hội, điện tử ngày càng phổ biến và được sử dụng rộng rãi Ngoài việc đến giảng đường, cách tiếp thu bài học thông qua video trực tuyến rất gần gũi với các bạn sinh viên Trong đó, âm thanh đóng vai trò quan trọng để tạo nên một video chất lượng, nhưng lại có
vô số yếu tố tác động xấu làm giảm hiệu quả video đó Tiếng ồn từ môi trường xung quanh có thể gây ra nhiều rắc rối cho người học, ví dụ ta đang tham gia một lớp học trực tuyến, ngoài tiếng giảng dạy của giáo viên thì còn có nhiều tạp âm tác động lên như: tiếng
ồn xe cộ, tiếng nói chuyện hay âm thanh từ thiết bị khác, chính điều này sẽ tạo ra sự phân tâm đối với sinh viên và làm cản trở khả năng tiếp thu kiến thức Hơn thế nữa, việc không thể nghe rõ giảng viên hoặc các bạn học khác có thể dẫn đến sự mất tập trung và giảm hiệu quả học tập
Vì vậy chúng ta cần đặt câu hỏi làm thế nào để xử lý các tạp âm, cải thiện chất lượng
âm thanh một cách hiệu quả và nhanh chóng? Để khắc phục được những nhược điểm này cũng như tiếp nhận thông tin từ âm thanh một cách tối ưu nhất thì chúng ta cần áp dụng các phương pháp xử lý âm thanh hiện đại để khử nhiễu, và một trong những phương pháp hiệu quả nhất là phương pháp Fourier rời rạc (DFT) Sử dụng công nghệ này không chỉ nâng cao chất lượng âm thanh mà còn cải thiện trải nghiệm học tập của sinh viên trong thời đại kỹ thuật số, nơi mà học tập trực tuyến ngày càng phổ biến và trở thành xu hướng quan trọng trong giáo dục
2 CƠ SỞ LÝ THUYẾT
2.1 Một số khái niệm liên quan
2.1.1 Định nghĩa ánh xạ tuyến tính
Cho X, Y là hai tập hợp khác rỗng tùy ý Ánh xạ f giữa X và Y là quy tắc cho tương ứng với mỗi phần tử x ∈ X một và chỉ một phần tử y ∈ Y
Hay f : X → Y là ánh xạ, nếu ∀x ∈ X,∃! y ∈ Y,y =f (x )
Ánh xạ f : X → Y được gọi là:
- Đơn ánh, nếu ∀ x1, x2∈ X , x1≠ x ,2 thì f(x1)≠ f(x2);
- Toàn ánh, nếu ∀ y ∈ Y ,thì ∃ x ∈ X , để y f= (x) ;
- Song ánh, nếu fvừa là đơn ánh vừa là toàn ánh
Trang 5 Cho X, Y là hai không gian vector trên cùng trường số K Ánh xạ tuyến tính
f : X → Y giữa hai không gian vector X , Y là một ánh xạ thỏa:
- f(x1+x2)=f(x1)+ f (x2)(∀ x1, x2∈ X);
- f ( αx )=αf ( x ) ( ∀ α ∈ K , ∀ x∈ X)
2.1.2 Nhân và ảnh của ánh xạ tuyến tính
1 Định nghĩa nhân của ánh xạ tuyến tính
Cho ánh xạ tuyến tính f : X → Y Nhân của ánh xạ tuyến tính f(Kerf¿là tập hợp các vector x của không gian vector X sao cho f ( x)=0.
Kerf={x ∈ X , f (x )=0}
2 Định nghĩa ảnh của ánh xạ tuyến tính
Cho ánh xạ tuyến tính f : X → Y Ảnh của ánh xạ tuyến tính f(Imf¿ là tập hợp tất cả các phần tử y của không gian vector Y sao cho tồn tại x ∈ X để y =f (x )
Imf={y ∈Y ∨∃ x ∈ X : y=f (x)}
3 Định lý về nhân và ảnh của ánh xạ tuyến tính
Cho ánh xạ tuyến tính f : X → Y
a) Nhân của ánh xạ tuyến tính flà không gian con của X
b) Ảnh của ánh xạ tuyến tính f là không gian con của Y
c) dim(Kerf)+dim(Imf)=dim (X )
2.2 Tổng quan về phương pháp biến đổi Fourier
2.2.1 Giới thiệu về khai triển Fourier rời rạc
Khi công nghệ máy tính phát triển vào giữa thế kỷ XX, nhu cầu về việc xử lý tín hiệu
số ngày càng tăng Điều này dẫn đến sự phát triển của biến đổi Fourier rời rạc (DFT), một phiên bản rời rạc của biến đổi Fourier DFT cho phép xử lý các chuỗi dữ liệu rời rạc, phù hợp với khả năng tính toán của máy tính
Khai triển Fourier rời rạc là một công cụ quan trọng và không thể thiếu trong lĩnh vực
xử lý tín hiệu và truyền thông Sự phát triển của nó từ lý thuyết toán học thuần túy đến ứng dụng thực tiễn đã tạo ra những bước đột phá trong công nghệ hiện đại
2.2.2 Mục đích của khai triển Fourier rời rạc
Mục đích của phép biến đổi Fourier là phân chia tín hiệu dạng sóng thành các tần
số riêng lẻ tạo ra nó Cụ thể hơn, phép biến đổi Fourier phân chia hàm thành tổng của hàm sin và hàm cosin, mỗi hàm có các tần số khác nhau Các hàm liên tục thường được xấp xỉ bằng tổ hợp tuyến tính của hàm sin và cosin
Mục đích chính của khai triển Fourier rời rạc là cung cấp một công cụ hiệu quả để phân tích, lọc, nén, và biểu diễn tín hiệu trong miền tần số, từ đó tạo điều kiện cho việc hiểu và xử lý tín hiệu tốt hơn
Trang 62.2.3 Định nghĩa về Fourier rời rạc
Biến đổi Fourier phân tách một hàm thành các hệ số của tổ hợp tuyến tính của các hàm lượng giác Biến đổi Fourier cho một hàm f(t) có thể được biểu diễn như sau:
^f ( ω) ≔∫
−∞
+∞
f (t ) ⅇ − ωtⅈ
t
ⅆ
Trong đó, f là một hàm tùy ý phụ thuộc vào thời gian t và biến đổi Fourier của f được biểu diễn dưới dạng ^f phụ thuộc vào tần số ω
Trong thực tế, chúng ta chỉ có các chuỗi đo lường rời rạc có số lượng hữu hạn Đối với các chuỗi đều đặn có số lượng hữu hạn, chúng ta áp dụng biến đổi Fourier rời rạc (DFT) được cho bởi một chuỗi dữ liệu rời rạc x[n] với N mẫu, DFT của chuỗi này được tính bằng công thức:
X[k]= ∑
n=0
N−1
x[n]ⅇ−ⅈ
2π
N kn
Trong đó:
- X[k] : Tần số thành phần tại chỉ số k
- x[n] : Mẫu tín hiệu tại chỉ số n
- i : Đơn vị ảo (căn bậc 2 của -1)
- N : Tổng số mẫu trong chuỗi
DFT cho phép chúng ta thu được các thành phần tần số khác nhau của tín hiệu từ các mẫu thời gian
2.2.4 Ví dụ khai triển Fourier
Giả sử ta có hàm f ( x) xác định trên đoạn [-π;π], với chu kỳ 2π và được định nghĩa như sau:
f ( x)=1 khi 0 ≤x ¿π
f ( x)=−1 khi -π ≤x ¿0
Đây là một hàm sóng vuông, và chúng ta sẽ tìm khai triển Fourier của nó
Khai triển Fourier:
Hàm f ( x ) có thể được khai triển thành chuỗi Fourier như sau:
f (x )= a0
2+∑
n=1
∞
(a ncos(nx)+bnsin(nx))
Trang 7Các hệ số a o , a n và b n được tính như sau:
Hệ số a0: a0= 1
π∫
−π
π
f ( x ) xⅆ =0
Hệ số a n: a n = 0 ( Do f ( x ) là hàm lẻ )
Hệ số b n: b n= 1
π∫
−π
π
f ( x) sin ( nx) xⅆ =2
π(1−(−1)n)= 4
nπ Vậy, khai triển Fourier của hàm f ( x) là:
f ( x)= ∑
n=1,3,5 ,
∞
4
nxsin(nx )
2.3 Ứng dụng biến đổi Fourier hữu hạn trong khử nhiễu âm thanh 2.3.1 Cơ sở lý thuyết
Biến đổi Fourier rời rạc cho phép chúng ta chuyển đổi một tín hiệu trong miền thời gian X thành miền tần số Y thông qua phép biến đổi:
Y = F n× X
Trong đó, F n là ma trận biến đổi Fourier rời rạc Kết quả Y có dạng:
Y = A + ⅈB
Vectơ A chứa các hệ số của các thành phần cos:t
A = ∑
t=0
n−1
a tcos(2πt ∕ n)
Vectơ B chứa các hệ số của các thành phần sin:t
B = ∑
t=0
n−1
β tsin(2πt ∕ n¿
2.3.2 Phân tích tín hiệu
Giả sử tín hiệu ban đầu có dạng:
X = ∑
t=0
n−1
¿¿cos(2πt ∕ n) + β tsin(2πt ∕ n¿¿
Sau khi thực hiện DFT, ta nhận được các tần số tương ứng với tín hiệu chính và tín hiệu nhiễu Tín hiệu nhiễu thường xuất hiện ở những tần số không mong muốn, trong khi tín hiệu chính nằm trong một khoảng tần số cụ thể
Vì tín hiệu ban đầu là tổ hợp các hàm cos và sin với tần số chính xác là 2 𝜋/𝑁, khi thực hiện DFT, kết quả sẽ có biên độ không bằng 0 tại các vị trí tần số tương ứng với các
Trang 8thành phần cos và sin trong tín hiệu Các thành phần khác sẽ có biên độ gần bằng 0 do không có tín hiệu ở các tần số đó
2.3.3 Khử nhiễu
Để khử nhiễu âm thanh, quá trình được thực hiện như sau:
1 Phân tích Fourier:Sử dụng DFT để chuyển đổi tín hiệu X từ miền thời gian sang miền tần số, cho phép xác định các tần số của tín hiệu chính và nhiễu
2 Lọc tín hiệu nhiễu: Bằng cách loại bỏ các tần số không mong muốn (tần số của tín hiệu nhiễu) từ vectơ Y Điều này có thể được thực hiện thông qua việc đặt các hệ số a t và
β t tương ứng với tần số nhiễu về 0
3 Biến đổi Fourier nghịch: Thực hiện phép biến đổi Fourier nghịch để chuyển đổi tín
hiệu đã được lọc trở lại về miền thời gian Kết quả là tín hiệu đã được khử nhiễu 2.3.4 Kết luận
Việc áp dụng phép biến đổi Fourier rời rạc vào khử nhiễu âm thanh cho phép tách biệt tín hiệu chính và tín hiệu nhiễu một cách hiệu quả Phương pháp này không chỉ cải thiện chất lượng âm thanh mà còn giúp duy trì tính nguyên vẹn của tín hiệu chính Khả năng phân tích tần số của DFT là chìa khóa để nhận diện và loại bỏ nhiễu, tạo ra tín hiệu sạch hơn cho các ứng dụng tiếp theo
3 BIẾN ĐỔI FOURIER RỜI RẠC ĐỂ KHỬ NHIỄU ÂM THANH TRONG MATLAB
3.1 Các bước dùng phép Fourier hữu hạn để khử nhiễu
3.1.1 Đoạn code sử dụng trong Matlab
y=audioread('train-1-99265.m4a');
L=length(y);
Y=fft(y);
sound(y);
plot(abs(Y), );'r'
hold ;on
M = max(abs(Y));
thresh=0.1;
Ythresh=(abs(Y)>thresh*M).*Y;
sum=(abs(Ythresh)>0)/L;
Trang 9plot(abs(Ythresh), );'b'
sound(ythresh);
3.1.2 Các bước thực hiện và ý nghĩa của các câu lệnh
- Số hóa một file âm thanh trong matlab:
y=audioread(‘train-1-99265.m4a’);
- Xác định độ dài của file âm thanh mới được số hóa:
L=length(y);
- Phân tích Fourier rời rạc file âm thanh:
Y=ftt(y);
- Phát lại file âm thanh gốc:
Sound(y);
- Vẽ lại tín hiệu ban đầu bằng đồ thị để biết được độ lớn tần số của file âm thanh bằng màu đỏ:
Plot(abs(Y),’r’);
- Giữ lại đồ thị đã vẽ:
Hold on;
-Xác định giá trị tần số lớn nhất của file âm thanh y:
M= max(abs(Y));
- Dựa vào hình vẽ của đồ thị để xác định được hệ số thresh là bao nhiêu để khử được nhiễu:
thresh=0,1; (ngưỡng ở đầy là bằng 10% so với tần số lớn nhất.)
- Tiến hành khử nhiễu âm thanh:
Ythresh=(abs(Y)>thresh*M).*Y;
( chỉ giữ lại những tần số có độ lớn cao hơn giá trị 10% so với tần số lớn nhất, còn lại sẽ bằng 0 )
Trang 10- Tính tỉ lệ số lượng tần số được giữ lại so với tổng số ban đầu:
sum=(abs(Ythresh)>0)/L;
- Thực hiện biến đổi fourier ngược lại (chuyển từ tần số về lại miền âm thanh) :
ythresh=real(ifft(Ythresh));
- Vẽ đồ thị âm thanh đã được khử nhiễu bằng màu xanh:
plot(abs(Ythresh), );'b'
- Phát lại file âm thanh đã được khử nhiễu:
sound(ythresh);
3.2 Ví dụ hình ảnh đồ thị của âm thanh trước và sau khi lọc nhiễu
Đồ thị khi chưa lọc nhiễu (màu đỏ) và đồ thị đã khử nhiễu (màu xanh)
Trang 11Đồ thị của âm thanh ban đầu lúc chưa lọc nhiễu
Đồ thị của âm thanh đã được khử nhiễu âm thanh
Trang 124 KẾT LUẬN
Trong đề tài "Phương pháp Fourier rời rạc để khử nhiễu âm thanh," chúng em đã áp dụng phép biến đổi Fourier rời rạc (DFT) để phân tích và xử lý tín hiệu âm thanh nhiễu Khử nhiễu âm thanh là một bài toán quan trọng trong lĩnh vực xử lý tín hiệu, nhằm cải thiện chất lượng âm thanh trong các hệ thống truyền thông, thu âm và phát sóng Phương pháp này có ý nghĩa lớn trong nhiều ứng dụng, từ cải thiện chất lượng thoại trong cuộc gọi điện thoại đến nâng cao trải nghiệm âm thanh trong lĩnh vực giải trí
Mặc dù đề tài "Phương pháp Fourier rời rạc để khử nhiễu âm thanh" đã đạt được những kết quả nhất định trong việc xử lý và cải thiện chất lượng tín hiệu âm thanh, nhưng vẫn còn một số hạn chế và vấn đề chưa được khắc phục triệt để Một số hạn chế mà nhóm vẫn còn khó khăn trong quá trình thực hiện đề tài này là : Hiện tượng mất mát tín hiệu gốc, khả năng xử lý tín hiệu thời gian thực, thiếu đánh giá chủ quan về chất lượng âm thanh, hiệu quả khử nhiễu chưa cao đối với các loại nhiễu phức tạp
Nhìn chung, phương pháp Fourier rời rạc là một công cụ mạnh trong việc khử nhiễu
âm thanh nhờ khả năng phân tách và xử lý các thành phần tần số riêng biệt Mặc dù phương pháp này yêu cầu tài nguyên tính toán đáng kể và có thể gặp khó khăn với các tín hiệu chứa nhiễu phức tạp, nhưng nó vẫn là một kỹ thuật phổ biến nhờ độ chính xác và tính linh hoạt cao Việc ứng dụng đại số tuyến tính và phép biến đổi Fourier vào bài toán khử nhiễu âm thanh không chỉ giúp nâng cao chất lượng âm thanh mà còn mở ra nhiều hướng phát triển trong các lĩnh vực khác như truyềnthông, trí tuệ nhân tạo và khoa học dữ liệu, nơi mà việc xử lý và làm sạch dữ liệu là vô cùng quan trọng Qua bài báo cáo nhóm
đã rút ra:
1 Kiến thức học được qua đề tài
Hiểu sâu về phép biến đổi Fourier
Ứng dụng đại số tuyến tính trong phân tích tín hiệu
Sử dụng công cụ MATLAB để xử lý tín hiệu
Tư duy phân tích và giải quyết vấn đề
Khả năng ứng dụng lý thuyết vào thực tế
2 Kĩ năng học được qua đề tài
Kỹ năng phân công công việc và quản lý thời gian
Kỹ năng giao tiếp và trình bày ý tưởng
Kỹ năng nghiên cứu và học hỏi lẫn nhau
Kỹ năng tổng hợp và báo cáo kết quả
Tinh thần trách nhiệm và ý thức làm việc nhóm
5 LỜI CẢM ƠN