TÓM TẮTBài báo cáo của nhóm 10 sẽ thể hiện nội dung liên quan đến cách sử dụng biển đổi Fourier hữu hạn để khử nhiễu âm thanh cho file âm thanh có chứa những tạp âm không mong muốn.. Từ
Trang 1ĐẠ I H Ọ C QU Ố C GIA THÀNH PH Ố H Ồ CHÍ MINH
o0o
BÁO CÁO
Đề tài “Ứ NG D Ụ NG FOURIER VÀO
Lớ p L – Nhóm GVHD: Th.s Nguyễn Hữ u Hiệp Thành phố H ồ Chí Minh, tháng 12 năm 2022
1
2
3
4
5
6
7
Trang 2MỤC LỤC
LỜ I CẢM ƠN i
LỜ I MỞ ĐẦU ii
PHẦN A TÓM TẮT 1
PHẦN B NỘI DUNG BÁO CÁO 2
I ĐẶT VẤN ĐỀ 2
II NỘI DUNG 2
1 TỔNG QUAN VỀ PHÉP BIẾN ĐỔI FOURIER 2
2 LÝ THUYẾT VẬN DỤNG 3
2.1 Định nghĩa ánh xạ tuyến tính 3
2.2 Nhân vàảnh của ánh xạ tuyến tính 3
2.3 Biểu diễn ma trận của ánh xạ tuyến tính 4
2.4 Biến đổi Fourier 4
3 SỬ DỤNG CÔNG CỤ MATHLAB TRONG BIẾN ĐỔI FOURIER HỮ U HẠN ĐỂ KHỬ NHIỄU ÂM THANH 6
3.1 Đoạn code sử dụng trong MATLAB 6
3.2 Giải thích code MATLAB 6
3.3 Ví dụ minh họa 7
4 KẾT LUẬN 9
TÀI LIỆU THAM KHẢO 11
Trang 3LỜ I CẢM ƠN
Trong suốt quá trình thực hiện bài tập lớn, nhóm chúng tôi đã nhận đượ c
rất nhiều sự quan tâm vàủng hộ, giúp đỡ tận tình của thầy cô, anh chị em và bè
bạn
Ngoài ra, nhóm còn gửi lờ i tri ân chân thành nhất đến vớ i thầy Nguyễn
Hữu Hiệp là giảng viên đã hướ ng dẫn nhóm thực hiện bài tập lớ n này Sự hướ ng
dẫn của thầy đã là kim chỉ nam cho mọi hành động của nhóm và phát huy tối đa đượ c mối quan hệ hỗ trợ giữa thầy và trò trong môi trườ ng giáo dục
Lờ i cuối, xin một lần nữa gửi lờ i biết ơn sâu sắc đến thầy và mọi ngườ i
đã dành thờ i gian chỉ dẫn cho nhóm Đây chính là niềm tin, nguồn động lực to
lớn để nhóm có thể đạt đượ c kết quả này
Chân thành cảm ơn sự giúp đỡ của mọi ngườ i!
Nhóm 10
Trang 4LỜ I MỞ ĐẦU
K ỹ thuật đã mang lại nhiều lợi ích và đóng góp đáng kể cho nền văn minh
của loài ngườ i trong suốt lịch sử phát triển Trong thế kỷ hai mươi, các kỹ sư đã
thực hiện nhiều đổi mớ i phục vụ cho con người Nhưng ở hiện tại, thế kỷ 21, kỹ thuật đang đối mặt vớ i rất nhiều thách thức lớn như là làm cho năng lượ ng mặt
trờ i trở nên kinh tế hơn, cung câp năng lượ ng nhiệt hạch, Để giải quyết các thách thức này, giáo dục kỹ thuật là hết sức quan trọng nhằm đào tạo những kỹ
sư thực hiện sứ mạng trong thế kỷ 21
“Đại số tuyến tính”– một môn học có tầm quan trọng đối vớ i sinh viên
của khối ngành kỹ thuật trường Đại học Bách khoa Thành phố Hồ Chí Minh Môn học được xem như là cánh cửa đầu tiên mở ra để sinh viên có thể hiểu sâu
sắc đượ c ngành nghề mà mình đã chọn trong tương lai Trong môn học này,
ngườ i học có đượ c cảm hứng, sự say mê, khao khát học hỏi, sự tập trung trong
học tập, những kỹ năng làm việc nhóm, tư duy sáng tạo đổi mớ i, khả năng phản
biện, không ngại bày tỏ quan điểm cá nhân, xây dựng cho bản thân những mục tiêu và những ước mơ nghề nghiệp, có kế hoạch học tập và hành động
Dưới đây là báo cáo bài tập lớ n của nhóm!
Trang 5PHẦN A TÓM TẮT
Bài báo cáo của nhóm 10 sẽ thể hiện nội dung liên quan đến cách sử dụng
biển đổi Fourier hữu hạn để khử nhiễu âm thanh cho file âm thanh có chứa những
tạp âm không mong muốn Bài báo cáo chỉ ra cách sử dụng Fourier và các bướ c
lập trình code để khử nhiễu âm thanh trên MATLAB Từ đó, rút ra những hiểu
biết cần thiết và kinh nghiệm trong việc xử lí tình huống, cải thiện kỹ năng làm
việc nhóm và có đượ c những hiểu biết về công cụ MATLAB cũng như cách sử
dụng công cụ MATLAB để diễn tả các bài toán một cách cụ thể, ngắn gọn, súc tích và dễ hiểu Qua đó, biết cách xử lí một đoạn âm thanh và hiểu thêm về ứng
dụng MATLAB và lập trình
Trang 6PHẦN B NỘI DUNG BÁO CÁO
I ĐẶT VẤN ĐỀ
Giải trí là một nhu cầu cần thiết của con ngườ i trong cuộc sống hàng ngày
như nghe nhạc, xem phim, xem thờ i sự, Trong đó ngoài hình ảnh đầy màu sắc, thì còn một yếu tố tất yếu tạo ra sự sinh động, làm cho trải nghiệm của con ngườ i
trở nên hoàn hảo hơn đó chính là âm thanh Như trong một bộ phim ngoài những
cuộc trò chuyện, đối thoại giữa các nhân vật thì có rất nhiều âm thanh khác như
là tiếng mưa, tiếng xe cộ, và cả những tiếngồn xung quanh khu vực ghi hình
Nếu trong một bộ phim mà lẫn quá nhiều tạp âm như thế thì sự thưở ng thức của
người xem không còn đượ c thoải mái, làm giảm đi chất lượ ng của cuộn phim,
bản nhạc
Vì thế cần đặt ra vấnđề làm sao để có thể xử lý các tạp âm, cải thiện đượ c
chất lượ ng âm thanh một cách hiệu quả và nhanh chóng?Trong lĩnh vực xử lý tín hiệu, biếnđổi Fourier rờ i rạc (DFT) chiếm vị trí hàng đầu nhờ sự tồn tại các thuật toán hiệu quả như là biến đổi Fourier nhanh (FFT) và Fourier rờ i rạc ngượ c
II NỘI DUNG
1 TỔNG QUAN VỀ PHÉP BIẾN ĐỔI FOURIER
Biến đổi Fourier là một trong những kỹ thuật đượ c sử dụng rộng rãi nhất trong toán họcứng dụng, chẳng hạn như trong lĩnh vực xử lý tín hiệu và nén dữ
liệu, biến đổi Fourier dựa trên ý tưở ng các hàm có tính chất phù hợ p có thể đượ c
biểu diễn bằng tổ hợ p tuyến tính của các hàm lượ ng giác Công việc ban đầu của
biến đổi Fourier là việc sử dụng các hàm lượ ng giác trong giải tích bắt nguồn từ các công trình của nhà toán học Leonhard Euler (1707-1783), Alexis-Claude Clairaut (1713-1765) và Joseph Louis Lagrange (1736-1813)
Euler là người đầu tiên đưa ra công thức cho các hệ số của chuỗi Fourier
Dựa trên các nghiên cứu của Euler, Clairaut đã công bố công thức đầu tiên cho phép biến đổi Fourier rờ i rạc (DFT) vào năm 1754 là cái chúng ta hiện biết
Năm 1805, Carl Friendrich Gauss (1777-1855) đã công bố công thức cho DFT
Trang 7Năm 1822, Joseph Fourier (1768-1830)đưa ra công trình về dòng nhiệt cung
cấp nền tảng cho phép biến đổi Fourier và nguồn gốc tên gọi của nó Năm 1965,
James Cooley và John Tukey, đãphát minh ra thuật toán biến đổi Fourier nhanh (FFT), thuật toán này đã cho phép một loạt cácứng dụng số trong thời đại kỹ thuật số ra đờ i Cácứng dụng này bao gồm nén dữ liệu JPEG, phân tích cấu trúc tinh thể, giải phương trình vi phân từng phần, xử lí tín hiệu nhiễu,
2 LÝ THUYẾT VẬN DỤNG
2.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
tương ứng 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 ( )
Cho X ,Y là hai không gian trên cùng trườ ng số K Ánh xạ f X : → Y gọi là ánh
xạ tuyến tính (AXTT) nếu:
( ) ( ) ( )
f x y + = f x + f y ( ) ( )
f x = f x
*Ghi chú: ánh xạ tuyến tính trên n
R chỉ chứa các số hạng bậc nhất
2.2 Nhân và ảnh của ánh xạ tuyến tính
Định nghĩa:
Cho ánh xạ tuyến tính f X : → Y
Nhân (Ker ) của f được định nghĩa là: Kerf = x X f x ( ) 0 =
Ảnh ( Im) của f được định nghĩa là: Imf = y Y x X y , = f x( )
*Ghi chú: Kerf là nghiệm của phương trình f x( ) 0 =
Imf là tập cácảnh của f (trong hàm số gọi là tập giá trị)
Tính chất:
- Cho ánh xạ tuyến tính f X : → Y
+Nhân (Ker) của f là không gian con của X
Trang 8+Ảnh (Im) của f là không gian con của Y.
+dim Kerf ( ) + dim Imf ( ) =dim X ( )
+Ảnh của tập sinh là tập sinh củaảnh:
1 , , , , 2 3 n ( ), ( ), ( ), , 1 2 3 ( n)
X = x x x x Imf = f x f x f x f x
2.3 Biểu diễn ma trận của ánh xạ tuyến tính
* Định nghĩa:ChoV là không gian vector n chiều,W là không gian vector m chiều, E = e e 1 , , , 2 en là một cơ sở củaV ,F f f = 1 , , , 2 f m là một cơ sở củaW
và f V : → W xác định bở i x → f x ( ) là ánh xạ tuyến tính
Vì x V và f x ( ) W nên theo tính chất của không gian vector thì x luôn
biểu thị tuyến tính được qua cơ sở E trongV và f x ( ) luôn biểu thị tuyến tính
được qua cơ sở F trongW
Giả sử x = x e 1 1 + x e 2 2+ + x e n n và f x ( ) = y f 1 1 + y f 2 2+ + y f m m
Ta có
1
E n
x x
x
=
và
1
( ) .
F m
y
f x
y
=
Nếu tồn tại ma trận A M m n
sao cho ( )
E F
A x = f x vớ i mọi x V thì A
đượ c gọi là ma trận của ánh xạ tuyến tính f đối với cơ sở E trongV vàF trong
W
2.4 Biến đổi Fourier
a Mục đích
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
b Biến đổi Fourier hữ u hạn
Trong toán học, Biếnđổi Fourier rờ i rạc (DFT), đôi khi đượ c gọi là Biến
đổi Fourier hữu hạn, là một phép biến đổi trong phân tích Fourier cho các tín
Trang 9hiệu thờ i gian rờ i rạc Đầu vào cho phép biến đổi này là một dãy hữu hạn các số
thực hoặc số phức, làm cho phép biến đổi này trở thành một công cụ lý tưở ng
để xử lý thông tin trongmáy tính Đặc biệt, biến đổi này đượ c sử dụng rộng rãi trong xử lý tín hiệu và trong cáclĩnh vựcliên quan đến phân tích tần số chứa trong tín hiệu, giải phương trìnhvi phân từng phần và thực hiện các phép toán
như tích chập Biến đổi này có thể đượ c tính toán nhanh chóng bằng cách sử
dụng thuật toán Biến đổi Fourier nhanh (FFT)
Biếnđổi Fourier là một công thức toán học liênquan đến một tín hiệu
đượ c lấy mẫu trong thờ i gian hoặc không gian vớ i cùng một tần số Trong xử lý tín hiệu, thuyết biến đổi Fourier có thể tiết lộ các thuộc tính quan trọng của tín
hiệu, cụ thể là các thành phần tần số
Biến đổi Fourier được xác định cho mộtvectơ x với n điểm đượ c lấy mẫu
thống nhất qua công thức 1 ∑ −=0 +
c Ứ ng dụng biến đổi Fourier hữ u hạn trong khử nhiễu âm thanh
Phép biến đổi × đượ c gọi là phép biến đổi Fourier rờ i rạc của vectơ
X
Vectơ × Có dạng
vectơ A chứa hệ số tại∑ cos2
−
vectơ B chứa hệ số tại∑ sin2
−
Như vậy dùng phép biến đổi Fourier rờ i rạc, ta chuyển tín hiệu Xở miền
thờ i gian thành tín hiệuở miền tần số gồm tổng các hàmcos2
vàsin2
Trang 10Giả sử tín hiệu ban đầu có dạng ∑ cos2
−
0 sin2
+tín hiệu nhiễu sau khi phân tích rờ i rạc Fourier rờ i rạc × , so với hình trướ c và sau khi phân tíchta xác địnhđượ c tần số của tín hiệu chính và tần số của tín hiệu nhiễu Lọc tín hiệu nhiễu, chỉ giữ lại tín hiệu chính, sau đóthực hiện phân tích Fourier nghịch để thu đượ c tín hiệuđã đượ c khử nhiễu.
3 SỬ DỤNG CÔNG CỤ MATHLAB TRONG BIẾN ĐỔI
FOURIER HỮ U HẠN ĐỂ KHỬ NHIỄU ÂM THANH
3.1 Đoạn code sử dụng trong MATLAB
y=audioread( 'name.wav' );
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;
ythresh=real(ifft(Ythresh));
plot(abs(Ythresh), 'b' );
sound(ythresh);
3.2 Giải thích code MATLAB
- Đọc file âm thanh trong MATLAB:
y=audioread( 'noise.wav' );
- Tính toán kích cỡ file âm thanh:
L=length(y);
- Phân tích Fourier rời rạc vector y:
Y=fft(y);
- Nghe âm thanh gốc:
sound(y);
- Vẽ đồ thị tín hiệu gốc bằng màu đỏ:
plot(abs(Y), 'r' );
- Giữ lại đồ thị ở trên:
hold on ;
- Xác định giá trị lớn nhất của Y:
M=max(abs(Y));
- Dựa vào đồ thị xác định hệ số thresh để khử nhiễu:
thresh=0.1;
- Khử nhiễu:
Trang 11- Kích cỡ file âm thanh sau khi khử nhiễu:
sum(abs(Ythresh)>0)/L;
- Biến đổi Fourier ngược lại:
ythresh=real(ifft(Ythresh));
- Vẽ đồ thị tín hiệu sau khi khử nhiễu bằng màu xanh:
plot(abs(Ythresh), 'b' );
- Nghe âm thanh sau khi khử nhiễu:
sound(ythresh);
3.3 Ví dụ minh họa
Đoạn code sử dụng cho ví dụ minh họa
y=audioread( 'noise.wav' ); 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;
ythresh=real(ifft(Ythresh)); plot(abs(Ythresh), 'b' );
sound(ythresh);
Trang 12Hình 2 Đồ thị khi chưa lọc nhiễ u
Hình 3 Đồ thị khi đã lọc nhiễ u
Trang 13Hình 4 Đồ thị khi chưa lọc nhiễu màu đỏ và khi đã lọc nhiễ u màu xanh
4 KẾT LUẬN
Với đề tài được giao, nhóm đã lên kế hoạch làm việc và phân chia công việc
cụ thể cho từng thành viên, các thành viên trong nhóm vớ i tinh thần phối hợ p, nâng cao kiến thức đã hoàn thành đượ c bài báo cáo này Qua bài báo cáo nhóm
đã rút ra:
Về kiến thứ c:
- Củng cố kiến thức về Ánh xạ tuyến tính
- Biết thêm về phép biến đổi Fourier vàứng dụng
- Hiểu một số kiến thứccơ bản về lập trình MATLAB
- Biết sử dụng MATLAB để lọc nhiễu một file âm thanh bất kỳ
Về kỹ năng:
- Có thêm những kỹ năng trong việc trao đổi làm việc nhóm, biết cách lập kế
hoạch, sắp xếp thờ i gian hoàn thành công việc đúng tiến độ
Trang 14- Tạo cơ hội làm quen vớ i các bạn trong một nhóm và nâng cao tình đoàn kết.
- Tiếp cận đượ c những nguồn kiến thức mớ iở Đại học
- Làm quen với môi trường Đại học./
Trang 15TÀI LIỆU THAM KHẢO
[1] Trần Quang Khánh,Cơ sở Mathlabứ ng d ụng, T ậ p 1, NXB Khoa học và kỹ thuật
[2] Pauli Anttonen (2022),Fourier transform techniques for noise reduction,
Lappeenranta-Lahti University of Technology LUT School of Engineering Science
[3] Biến đổ i Fourier,WIKIPEDIA, truy cập tại địa chỉ
https://vi.wikipedia.org/wiki/Bi%E1%BA%BFn_%C4%91%E1%BB%95i_Fo
[4] Đặng Văn Vinh, Giáo trình Đại số tuyế n tính, Đại học Quốc gia Thành phố
Hồ Chí Minh