You are on page 1of 17

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

BÁO CÁO BÀI TẬP LỚN


ĐỀ TÀI:
ỨNG DỤNG BIẾN ĐỔI FOURIER (DFT) RỜI RẠC
ĐỂ KHỬ NHIỄU ÂM THANH
Giảng viên hướng dẫn: Th.S Nguyễn Xuân Mỹ
Dánh sách nhóm 1_ LỚP L06_HK231

Số thứ tự Tên sinh viên Mã số sinh viên

1 Nguyễn Hiền An 2310015

2 Nguyễn Thế An 2310023

3 Nguyễn Trần Khánh An 2310026

4 Trần Văn An 2310045

5 Đinh Ngọc Quỳnh Anh 2310066

6 Nguyễn Văn Tuấn Anh 2310131

7 Trần Duy Anh 2310144

8 Bùi Quang Bảo 2310206

Thành phố Hồ Chí Minh, tháng 11, năm 2023

MỤC LỤC
CHƯƠNG I: TÓM TẮT BÀI BÁO CÁO...................................................................2
CHƯƠNG II: NỘI DUNG BÀI BÁO CÁO................................................................3
1. ĐẶT VẤN ĐỀ VÀ MỤC TIÊU.........................................................................3
2. CƠ SỞ LÝ THUYẾT.........................................................................................4
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.....................................................4
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,7
2.3. Ứng dụng biến đổi Fourier hữu hạn trong khử nhiễu âm thanh.................8
3. BIẾN ĐỔI FOURIER RỜI RẠC ĐỂ KHỬ NHIỄU ÂM THANH TRONG
MATLAB................................................................................................................9
3.1 Các bước dùng phép biến đổi Fourier hữu hạn để khử nhiễu...................10
3.1.1. Các lệnh dùng trong matlab.............................................................11
3.1.2. Đoạn code trong matlab...................................................................11
3.2 Hình ảnh đoạn code sử dụng trong Matlab...............................................12
3.3 Ví dụ minh họa..........................................................................................13
4. KẾT LUẬN.......................................................................................................14
TÀI LIỆU THAM KHẢO..........................................................................................15
LỜI CẢM ƠN.............................................................................................................16

Page | 1
CHƯƠNG I: TÓM TẮT BÀI BÁO CÁO

Bài báo cáo của nhóm 1 sẽ thể hiện nội dung liên quan đến cách sử dụng biến

đổi Fourier rời rạc (DFT- Discrete Fourier Transform) để khử nhiễu âm thanh cho

file âm thanh có chứa những tạp âm không mong muốn.

Bài viết chỉ ra cơ sở lí thuyết, cách sử dụng Fourier và các bước lập trình code

để khử nhiễu âm thanh trên phần mềm MATLAB. Từ đó, rút ra những hiểu biết

cần thiết và những 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 ngọn để ứng dụng

thực tế. Từ đó, biết cách xử lí một đoạn âm thanh bị nhiễu cũng như chứa các tập

âm khó chịu

Page | 2
CHƯƠNG II: NỘI DUNG BÀI BÁO CÁO
1. ĐẶT VẤN ĐỀ VÀ MỤC TIÊU

Trong cuộc sống thường nhật hằng ngày, giải trí là nhu cầu tất yếu của mỗi
người, chẳng hạn như xem phim, nghe nhạc, …nó dường như đã là một phần trong
cuộc sống của chúng ta. Mà trong đó âm thanh là thứ không thể thiếu được. Ví dụ
như để có một bộ phim, không thể nào thiếu được âm thanh của xe cộ, tiếng mưa
rơi, tiếng động vật, …Hay là những bài nhạc luôn phải được thu âm sẵn những lời
hát của các ca sĩ. Nhưng trong quá trình tạo ra những âm thanh đó, luôn có những
tiếng ồn không cần thiết khiến ta khó có thể nghe được và khiến âm thanh không
còn được hay nữa. Vì vậy, ta phải loại bỏ đi những tiếng ồn này, hay được gọi là
khử nhiễu âm thanh.

Nếu chúng ta có thể xử lý một tập tin âm thanh theo các tiêu chí : trọng tâm,
chính xác, hiệu quả và tiết kiệm thời gian. Trong nghiên cứu về âm thanh, sẽ giúp
ta tiết kiệm được thời gian hơn, phục vụ và ứng dụng được nhiều trong các mảng
giải trí, nghệ thuật. Trong doanh nghiệp về lĩnh vực truyền thông đa phương tiện,
nếu xử lí tốt file âm thanh, sẽ tiết kiệm được rất nhiều chi phí trong việc thiết kế
một phần mềm nào đó, hay chỉ đơn giản là tăng chất lượng âm thanh trong quá
trình edit video chuyên nghiệp. Từ đó sẽ hướng đến nhiều đối tượng khách hàng
hơn với một trải nghiệm về chất lượng âm thanh tuyệt vời, chân thật và đặc biệt là
không còn tạp âm.

Và cách thường được sử dụng nhiều để khử nhiểu nhiễu âm thanh là dùng biến
đổi Fourier hữu hạn, là một biến đổi trong giải tích Fourier cho các tín hiệu thời
gian rời rạc.

Page | 3
2. CƠ SỞ LÝ THUYẾT
2.1. Một số khái niệm cơ bản liên quan

2.1.1 Định nghĩa ánh xạ tuyến tính

Cho X, Y là hai tập hợp rỗng tuỳ ý. Ánh xạ f giữa X và Y là quy tắc cho tương
ứng mỗi phần tử một và chỉ một 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)

2.1.2 Nhân và ảnh của ánh xạ tuyến tính

Định nghĩa 2.1.2.1 Cho ánh xạ tuyến tính f :V → W . Tập hợp tất cả các vecto
của x của V sao cho f ( x )=0 được gọi là nhân của ánh xạ tuyến tính f , kí hiệu là
K er f ={∀ x ϵ V , f ( x )=0 }

Định nghĩa 2.1.2.2 Cho ánh xạ tuyến tính f :V → W . Tập hợp tất cả các vectơ
y của W, sao cho tồn tại x ∈ V thoả y=f ( x ) được gọi là ánh xạ tuyến tính f , ký hiệu là
ℑ f = { yϵ W |∃ x ∈V , y=f ¿

Định nghĩa 2.1.2.3 Cho ánh xạ tuyến tính f :V → W


1/ Nhân của f là không gian con của V
2/ Ảnh của f là không gian củaW
3/ dim ( ker f ) +dim ( Imf )=dim ( V )

Page | 4
2.2. Tổng quan về phương pháp biến đổi Fourier

2.2.1 Giới thiệu khai triển Fourier rời rạc

Trong toán học, phép toán biển đổi Fourier rời rạc (Discrete Fourier Transfrom)
hay (DFT), đôi khi còn được gọi là biến đổi Fourier hữu hạn, là một biến đổi trong
giải tích Fourier cho các tín hiệu thời gian rời rạc. Đầu vào của biến đổi này là một
chuỗi hữu hạn các số thực hoặc số phức, làm biến đổi này là một công cụ lý tưởng để
xử lý các thông tin trên má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à các ngành liên quan đến phân tích các tần số chứa trong một tín hiệu,
để giải phương trình đạo hàm riêng, và để làm các phép như tích chập. Biến đổi này
có thể được tính nhanh bởi thuật toán biến đổi Fourier nhanh (DFT).

Biến đổi Fourier là một công thức toán học liên hệ một tín hiệu được một mẫu
trong thời gian hoặc không gian với cùng một tí hiệu được lẫy mẫu tần số. Trong xử lý
tín hiệu, thuyết biển đổi Fourier có thể tiết lộ các đặ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ột vectơ x với n điểm được lấy mẫu

thống nhất qua công thức

2.2.2 Mục đích

Mục đích của biến đổi Fourier là tách tín hiệu dạng sóng thành các tần số riêng
lẻ tạo ra nó. Hay biến đổi Fourier giúp biến đổi tín hiệu từ miền thời gian sang miền
tần số. Cụ thể hơn, biến đổi Fourier tách hàm số thành tổng các hàm sin và cos, mỗi
hàm có tần số khác nhau. Từ các biến đổi này, ta có thể dễ dàng biết được các đặc
trưng của tín hiệu

Page | 5
2.2.3 Định nghĩa

DFT đối với tín hiệu tương tự

Với một hàm liên tục một biến F(t), phép biến đổi Fourier F(f) được định

nghĩa:

Và biến đổi ngược:

Với j là căn bậc 2 của -1, e biểu thị số mũ tự nhiên

DFT với tín hiệu rời rạc:

Giả sử một chuỗi phức X(k) với phép lấy mẫu gồm N mẫu:

Với x là số phức

Phép biến đổi Fourier của chuỗi này được biểu thị X(k) gồm N mẫu

Phép biến đổi được định nghĩa:

với n=0,1,……..,N-1

Phép biến đổi ngược:

với n=0,1,………,N-1

Với N là độ dài của một chu kì

Chuỗi số thực tương tự phần ảo bằng 0.

2.2.4 Ví dụ khai triển Fourier

Ví dụ 1: Khai triển chuỗi Fourier cho tín hiệu rời rạc tuần hoàn:

 Tìm DFT của dãy xung rời rạc sau:

Giải

Page | 6
Cuố cùng ta có:

Như vậy, DFT của dãy xung rời rạc là tập vô số xung rời rạc có chiều cao là

và có khoảng cách giữa hai xung cạnh nhau là

 Xác định của dãy tuần hoàn với

chu kỳ
Giải
Tại

Tại

Tại

Tại

Ví dụ 2: Biến đổi Fourier của tín hiệu rời rạc dài hữu hạn:

 Tính DFT của x ( n )=u ( n ) −u(n−N )


Giải

Suy ra DFT của x ( n )=1 với n=0 , 1, … , 7

Page | 7
Giải

Có thể xem δ ( n )N là dãy δ ( n )N = {0 khi10<n


khi n=0
≤ ( N −1 )

Theo biểu thức DFT thuận có hàm phố rời rạc: (Biến đổi thuận)

Vậy

2.3. Ứng dụng biến đổi Fourier hữu hạn trong khử nhiễu âm thanh.

Phép biến đổi Y =F n X gọi là phép biển đổi fourier rời rạc của vector X

+ Vector Y =F n X có dạng: Y = A +iB

+ Vecto A chứa các hệ số α i trong

+ Vecto B chứa các hệ số βt trong.

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àm cos và sin

Giả sử tín hiệu gốc có dạng + nhiễu

Sau khi phân tích Fourier rời rạc Y =F n . X , so sánh với hình vẽ trước và sau khi

phân tích, ta có thể xác định tần số tín hiệu chính và tần số nhiễu. Lọc bỏ tín hiệu
nhiễu, chỉ giữ lại tín hiệu chính, sau đó phân tích Fourier ngược ra sẽ thu được tín hiệu
đã khử nhiễu

Page | 8
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

Bước 1: Số hóa một file âm thanh, ta có một vector

[y, fs]=audioread('this.m4a');

Bước 2: Phân tích Fourier rời rạc vector y:

Y = fft(y)

Bước 3: Vẽ tín hiệu ban đầu. Phân tích tần số của tín hiệu để biết được tần số của
tín hiệu chính và của tín hiệu bị nhiễu.

plot(abs(Y),'r')

M = max(abs(Y));

thresh = 0.1

Bước 4: Lọc bớt tần số của tín hiệu nhiễu chỉ giữ lại tần số tín hiệu chính.

Ythresh=(abs(Y)>thresh*M).*Y;

N = sum(abs(Ythresh)>0)/L

Bước 5: Biến đổi Fourier ngược lại;

Ythresh = real(ifft(Ythresh));

Page | 9
3.1.1. Các lệnh dùng trong bài matlab

Audioread(filename.m4a) Đọc file âm thanh trong Matlab

L=length(y) Tính toán kích cỡ file âm thanh

sound() Nghe âm thanh

fft() Biến đổi Fourier hữu hạn

max() Giá trị lớn nhất

Abs () Lấy giá trị tuyệt đối

Ifft() Biến đổi Fourier ngược lại

Plot() Vẽ đồ thị

datathresh=(abs(y)>thresh.*M).*data Lọc nhiễu

3.1.2. Đoạn code trong matlab

 [y, fs] = audioread('this.m4a'); % So hoa file am


thanh

 pause(5)
 subplot(4,1,1)
 title('Am thanh ban dau-Mien thoi gian');
 plot(y, 'b') % Do thi khi chua qua loc nhieu
 sound(y,fs); % Nghe am thanh khi chua qua loc
nhieu

 pause(5)
 L = length(y); % Kich co file am thanh
 Y = fft(y); % Bien doi fourier

 subplot(4,1,2)
 plot(abs(Y),'r') % Ve do thi sau khi bien doi
Fourier
 title('Am thanh qua Fourier-Mien tan so');
 M = max(abs(Y)); % Gia tri bien do lon nhat

Page | 10
 thresh = 0.1 % dua vao do thi xac dinh he so
thresh la
bao nhieu de khu nhieu
 Ythresh=(abs(Y)>thresh*M).*Y; % Khu nhieu am thanh
 N = sum(abs(Ythresh)>0)/L; % Sau khi khu nhieu
kich thuoc file còn N lan so voi ban dau
 ythresh=real(ifft(Ythresh)); % Bien doi fourier
nguoc

 pause(5)
 subplot(4,1,3)
 plot(abs(Ythresh),'b') % Ve do thi sau khi
bien doi
 title('Am thanh khu nhieu-Mien tan so');

 pause(5)
 subplot(4,1,4)
 plot(abs(Y),'r')
 title('So sanh tuong quan'); % So sanh do thi khi
chua bien doi va da qua bien doi
 hold on
 plot(abs(Ythresh),'b');

 pause(5)
 sound(ythresh);

Page | 11
3.2 Hình ảnh đoạn code sử dụng trong Matlab

Page | 12
3.3 Ví dụ minh họa
Trong phần này ta sử dụng một file âm thanh đã chuẩn bị có lẫn tạp âm, sử
dụng lệnh fft trong Matlab, biến đổi Fourier từ miền thời gian sang miền tần số.
Khử những tần số nhiễu giữ lại tần số chinh. Dùng lệnh ifft biến đổi ngược lại, ta
nghe được âm thanh sau khi khử nhiễu.

Page | 13
4. KẾT LUẬN
Phép biến đổi Fourier hữu hạn (DFT- Discrete Fourier Transform) là một phép
biến đổi sử dụng trong xử lí âm thanh và tín hiệu để chuyển đổi một tín hiệu thời gian
thành một tín hiệu tần số.
Thông qua bài tập lớn tìm hiểu đề tài này và với sự phân chia công việc hợp lý
cho từng thành viên trong nhóm, ý thức trách nhiệm của mỗi người mà nhóm em đã
hoàn thành được bài tập với sự cố gắng chỉnh chu nhất.

- Hiểu được cách lọc nhiễm một file âm thanh bất kì trên MATLAB
- Nắm rõ các ứng dụng của môn học, đặc biệt là Fourier hữu hạn trong khử nhiễu
âm.
- Tăng khả năng nghiên cứu học tập có ý thức
- Biết các phối hợp hỗ trợ làm việc nhóm hiệu quả và tăng tính đoàn kết của
nhóm
- Ứng dụng môn học thực tiễn tạo sự hứng thú với môn học

Page | 14
TÀI LIỆU THAM KHẢO

[1] Đăng Văn Vinh, (2021). Giáo trình Đại số tuyến tính, Trường Đại học Bách
khoa ĐHQG.HCM – NXB Đại học Quốc gia Thành phố Hồ Chí Minh
[2] Meyer C.D, Matrix analysis and Applied linear algebra, SIAM, 2000,
chapter 5, section 8
[3] Isaac Amidror, Mastering the Discrete Fourier Transform in One, Two
or Several Dimensions: Pitfalls and Artifacts, Springer, 2013

Page | 15
LỜI CẢM ƠN

Nhóm chúng em xin trân trọng gửi lời cảm ơn chân thành và sự kính trọng đến
các Thầy và Cô khoa Khoa học ứng dụng Trường Đại học Bách khoa- ĐHQG.HCM
và đặc biệt là giảng viên hướng dẫn, ThS Nguyễn Xuân Mỹ đã tạo điều kiện, hướng
dẫn giúp đỡ để chúng em được làm việc nhóm tạo khả năng nghiên cứu tìm tòi ứng
dụng bài học vào cuộc sống.

Đồng thời nhóm mình xin gửi lời cảm ơn đến các bạn lớp L06_Đại số tuyến
tính_HK231 đã dành thời gian đọc và nhận xét bài báo cáo của nhóm

Đây là lần đầu tiên chúng em cùng nghiên cứu đề tài khoa học ứng dụng, tìm
hiểu về công cụ phần mềm matlab và kiến thức còn hạn hẹp. Vì thế không thể tránh
khỏi những thiếu sót trong cách hiểu và lỗi trình bày. Nhóm chúng em xin chân thành
lắng nghe mọi sự đóng góp ý kiến của quý thầy cô cũng các bạn để được học hỏi và
rút kinh nghiệm cho những bài sau.

Page | 16

You might also like