Tải bản đầy đủ (.pdf) (17 trang)

BÁO cáo bài tập lớn đề tài ỨNG DỤNG BIẾN đổi FOURIER hữu hạn để KHỬ NHIỀU âm THANH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (878.28 KB, 17 trang )

ĐẠ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
ĐỀ TÀI: ỨNG DỤNG BIẾN ĐỔI FOURIER HỮU HẠN ĐỂ KHỬ NHIỀU ÂM THANH
GVHD: THS. Nguyễn Hữu Hiệp
SVTH: nhóm 10- Lớp L02 – HK212
STT

Họ và Tên

MSSV

1

Nguyễn Đông Hưng

2113603

2

Võ Minh Huy

2113559

3

Dương Công Khoa

2113742


4

NGuyễn Ngọc Đại Lộc

2113967

5

Nguyễn Duy Khánh

2113702

6

Lưu Văn Hùng

2113579

7

Nguyễn Công Lộc

2113962


MỤC LỤC
CHƯƠNG I: TÓM TẮT BÀI BÁO CÁO
CHƯƠNG II: NỘI DUNG BAO CÁO
1. ĐẶT VẤN ĐỀ VÀ MỤC TIÊU
2. CƠ SỞ LÝ THUYẾT

2.1. ĐỊNH NGHĨA ÁNH XẠ TUYẾN TÍNH
2.2 BIẾN ĐỔI FOURIER
2.4.1 MỤC ĐÍCH
2.4.2 BIẾN ĐỔI FOURIER HỮU HẠN
2.4.3 ỨNG ỤNG BIẾN ĐỔI FOURIER HỮU HẠN TRONG KHỬ NHIỄU ÂM
THANH
3. ỨNG DỤNG TRONG ĐỜI SỐNG
4. BIẾN ĐỔI FOURIER HỮU HẠN ĐỂ KHỬ NHIỄU ÂM THANH TRONG
MATLAB
4.1 CÁC BƯỚC DÙNG PHÉP BIẾN ĐỔI FOURIER HỮU HẠN ĐỂ KHỬ NHIỄU
4.2 ĐOẠN CODE SỬ DỤNG TRONG MATLAB
4.3 VÍ DỤ MINH HỌA
4.4 KẾT QUẢ
5. KẾT LUẬN
6. TÀI LIỆU THAM KHẢO


CHƯƠNG I: TÓM TẮT BÀI BÁO CÁO
Bài báo cáo của nhóm 11 sẽ gồm những nội dung liên quan đến đề tài cách sử dụng biến đổi
Fourier hữu hạn để khử nhiễu âm thanh cho một file âm thanh có chứa đựng những tạp âm
không mong muốn. Bài viết sẽ 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ừ đó, ta biết được khả năng làm việc nhóm hiệu quả
hơn và có được một số 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ể và ngắn gọn, súc tích, dễ hiểu. Qua đó,
cũng biết cách xử lí một đoạn âm thanh và hiểu thêm một vài khía cạnh của lập trình.

CHƯƠNG II: NỘI DUNG BÁO CÁO
1. ĐẶT VẤN ĐỀ VÀ MỤC TIÊU
Trong cuộc sống của công nghệ hiện của chúng ta hiện nay, chất lượng cuộc sống của
con người đã tăng lên mạnh mẽ, giải trí là một trong những nhu cầu tất yếu của con

người, chúng ta đã và đang phát triển nhu cầu của con người rất nhiều. Chúng ta có rất
nhiều các hình thức giải trí như xem phim, nghe nhạc,… dường như đã trở nên quen
thuộc với chúng ta, qua đó chúng ta để rằng những sản phẩm đó khơng thể nào thiếu đi
những âm thanh quen thuộc và ta nghe hoặc thấy trong đời sống, vậy câu đặt ra là làm
sao để có thể tạo ra âm thanh có thể nghe đươc và loại bỏ đi những tiếng ồn hay còn gọi
là khử nhiễu âm thanh để làm dòng âm thanh trở nên sống động hơn. Để làm được những
điều ấy ta dùng cách biến đổi Fourier hữu hạn để khử nhiễu âm thanh.


2. CƠ SỞ LÝ THUYẾT
2.4. Biến đổi Fourier
2.4.1. Mục đích
Trong toán học, chuỗi Fourier (được dặt tên theo nhà toán học Joseph Fourier) của một hàm
tuần hoàn là một cách biểu diễn hàm đó dưới dạng tổng của các hàm tuần hồn có dạng einx,
trong đó, e là số Euler và i là đơn vị số ảo.Theo công thức Euler, các chuỗi này có thể được
biểu diễn một cách tương đương theo các hàm sin và hàm cos.
2.4.2 Khai triển Fourier rời rạc
Trong toán học, hay cụ thể hơn la xử lý tín hiệu âm thanh các hàm thường được biểu diễn
theo hàm sóng liên tục X(ω) khơng thích hợp cho việc nghiên cứu, gây rất nhiều khó khăn
cho việc tính tốn xử lý trên máy tính. Vì thế ta cần sử dụng phép biến đổi Fourier rời
rạc(Discrete Fourier Transform) hay viết tắt là DFT với mục đích biến đổi các hàm tần số ω
trên miền thời gian liên tục trở thành các hàm theo miền tần số k rời rạc.
Giả sử hàm f(t) liên tục trên miền tần số, có N dãy tín hiệu được tạo thành f(0) , f(1)…, f(k),
…, f(N-1) biến đổi Fourier của hàm này sẽ là:


F ( ωi )=∫ f (t )e

−iωt


dt

−∞

Ta có thể xem mỗi giá trị hàm f(t) đều có một vùng sóng riêng, vì thế tích phân trên sẽ trở
thành
( N −1 ) T

F ( ωi )=



− iωt

f (t ) e

dt

0

¿ f ( 0 ) e −i 0 + f (1 ) e −iωkT + …+ f ( k ) e −iωkT + … f (N −1)e− iω ( N −1 ) T

Về ngun tắc ta có thể áp dụng cách tính trên cho bất kỳ hàmω nào nhưng chỉ bắt đầu với số
có hạn N inputs, chỉ có đầu ra cuối cùng mới có thể lớn vơ hạn.Chúng ta biết rằng biến đổi
Fourier được thực hiện trong một khoản hữu hạn nếu dạng sóng là hàm tuần hồn.Tương tự
vậy nếu có một số lượng hữu hạn N inputs thì hàm sóng ta có sẽ là hàm tuần hồn.
Vì ta xem các hàm sóng được xử lý là tuần hồn( một chu kỳ mỗi chuỗi,
Đặtω=0 ,

2π 2π



,
.2, … ,
.n,…,
(N −1)
NT NT
NT
NT

Khi đó chuỗi sẽ được viết lại dưới dạng

1

Hz ,
Rad/ s)
NT
NT


N −1

−i

F ( n )= ∑ f (k )e


nk
N


0

(n:0→N-1)

F(n) là khai triển DFT của hàm f(k)
Từ đó ta có thể biểu diễn biểu thức trên thơng qua ma trận



Trong đó W=e −i N

Ví dụ ta lấy hàm sóng liên tục
o
f ( t )=5+ 2cos ( 2 πt − 90 ) +3 cos ( 4 πt )

Sơ đồ biểu diễn hàm sóng
Giả sử hàm có tần số fs=4Hz với t=0 đến t=
được cho bởi

3
s. Đặt t=kTs hay k:0→3 khi đó hàm rời rạc sẽ
4

f ( K )=5+2 cos

Ta có f(0)=8 , f(1)=4 , f(2)=8 , f(3)=0

( π2 k + 90 )+3 cos ⁡(πk )
o



3

π
− i nk
2

Ngoài ra F ( n )=∑ f (k ) e
0

3

=∑ f ( k ) (− i)nk
0

Được biểu diễn qua hình vẽ

Tóm gọn lại phép biến đổi Fourier rời rạc DFT cho phép ta biến đôi hàm số liên tục trên miền
thời gian thành một hàm số rời rạc trên miền tần số.


Như vậy, trước khi chúng ta áp dụng biến đổi Fourier, cần phải biến đổi tín hiệu liên tục đầu vào
thành những mảnh nhỏ, riêng biệt, thứ mà máy tính có thể hiểu được.
Để chính xác hơn, ta thực hiện theo những bước sau đây:
+ Nhận tín hiệu, biểu diễn nó dưới dạng hàm tuần hồn
+ Lấy mẫu tín hiệu liên tục ấy trong những thời điểm rời rạc
+ Có thể dùng 1 số phương pháp xử lý xấp xỉ, và biểu diễn các điểm được lấy mẫu
thành một hàm liên tục
+ Rời rạc hoá hàm liên tục này, theo cả về thời gian và biên độ
+ Áp dụng biến đổi Fourier để chuyển về hàm phụ thuộc theo tần số


-Dải tần nào “đóng góp” vào tín hiệu nhiều hơn (về độ to, độ cao) giờ sẽ được
biểu diễn bằng đường cong lớn hơn trong đồ thị phụ thuộc tần số.


2.4.3 Áp Dụng Khai Triển Fourier Rời Rạc Vào Khử Nhiễu Âm Thanh
Như vậy thông qua phép biến đổi Fourier ta biến đổi hàm X liên tục trở thành hàm Y có dạng
Y = A +iB
N −1

Vector A chứa các hệ số α τ trong ∑ α t cos
0

N −1

Vector A chứa các hệ số β t trong ∑ β t sin
0

( 2Nπt )

( 2Nπt )

Có thể thấy sau khi khai triển ta hàm số Y được biểu diễn lại theo hai hàm sin cos giả sử tín hiệu
N −1
N−1
2 πt
2 πt
+ ∑ β t sin
+nℎiễu
gốc có dạng ∑ α t cos

N
N
0
0

( )

( )

Sau khi phân tích Fourier rời rạc Y = Fn.X , trong đó y được biểu diễn theo Y=A+iB 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 IDFT ta sẽ thu được
tín hiệu đã khử nhiễu.
Ta đặt U =

1
F n là ma trận unita
√n

Nhận thấy với mọi vector X ∈C n


Đọc file âm
thanh

Phân tích DFT

Vẽ tín hiệu và
xác định
nhiễu


Lọc nhiễu

Biến đổi DFT
ngược

+ Phép biến đổi Fourier rời rạc của vecto X là Y =F n X

1 ∗
+Phép biến đổi ngược của Fourier rời rạc của vecto X là X = F n Y
n
Như vậy quá trình khử nhiễu âm thanh bao gồm

3) Ứng dụng trong cuộc sống:
Biến đổi Fourier có rất nhiều ứng dụng trong cuộc sống đặc biệt trong lĩnh vực xử lý tín
hiệu số, cung cấp cho ta một cơng cụ tốn học cực kỳ mạnh mẽ để giải quyết những tín hiệu
liên tục phức tạp thamhf những hàm theo thời gian trực quan dễ quan sát và cũng vì điều
đó biến đổi Fouriercó mặt trong mọi lĩn vực khoa học vật lý kỹ thuật
-Đầu tiên và quan trọng nhất, một biến đổi Fourier của tín hiệu cho bạn biết
tần số nào có trong tín hiệu của bạn và theo tỷ lệ nào .

+ Bạn có bao giờ nhận thấy rằng mỗi nút số điện thoại của bạn phát ra âm thanh khác nhau khi
bạn nhấn và âm thanh đó giống nhau cho mọi kiểu điện thoại? Đó là bởi vì chúng bao gồmnhững
biểu đồ hình sin khác nhau và độc nhất được sử dụng để nhận dạng từng nút. Khi bạn sử dụng
điện thoại, phía bên kia đường dây biết bạn đã nhấn phím nào bằng cách thực hiện chuyển đổi
Fourier của đầu vào và xem tần số hiện tại.

-Trong truyền thông



+bằng cách có thể phân chia tín hiệu thành các tần số cấu thành của chúng, người ta có thể dễ
dàng chặn một số tần số nhất định bằng cách vơ hiệu hóa các ảnh hưởng của chúng

Ví dụ: Nếu bạn là một người hâm mộ bóng đá, bạn có thể cảm thấy khó chịu với
những chiếc vuvuzelas liên tục vang lên và nhấn chìm mọi âm thanh khác. Tuy nhiên,
vuvuzela có cường độ khơng đổi ~ 235Hz, giúp các đài truyền hình dễ dàng thực hiện
bộ lọc notch để loại bỏ tiếng ồn khơng được chào đón này.

- Y học:
+ Ứng dụng phép biến đổi Fourier gián đoạn phổ tử ngoại tỷ đối để định lượng đồng thời hai
hoạt chất trong một số chế phẩm hạ nhiệt giảm đau.
+ Trên thế giới, biến đổi Fourier rời rạc đã được áp dụng cho định lượng bằng quang phổ hấp thụ
phân tử dựa trên nguyên lý: phổ tỷ đối của chất phân tích có thể triển khai như một chuỗi Fourier
hữu hạn từ thập niên 1990. Kỹ thuật này đã được ứng dụng thành cơng để định lượng hỗn hợp có
chứa 2, 3 thành phần.
- Thiên văn học:
+ Biến đổi Fourier còn được áp dụng cả trong lĩnh vực thiên văn học. Đơi khi, chúng ta khơng
thể lấy tồn bộ thơng tin từ một kính thiên văn thơng thường mà phải gửi những thơng tin đó
thơng qua sóng vơ tuyến. Một ví dụ có thể kể đến đó là vệ tinh Magellan của NASA đã sử dụng
kĩ thuật này trong truyền tin. Bên dưới đây là một vài tấm ảnh mà vệ tinh Magellan đã gửi về.

Hình 1: Hình ảnh được radar của Magellan thu lại ở
vùng Boann Corona ở Sao Kim.


Hình 2: Độ phát xạ của bề mặt sao Kim được thu về bởi vệ tinh Magellan.

-

Địa chất học:

+ Trong địa chất học, người ta sử dụng phương pháp thăm dò địa chấn phản xạ (Seismic
reflection method) để cung cấp thông tin về cấu trúc dưới bề mặt của đáy biển. Đây là cơng
cụ hàng đầu trong việc tìm kiếm và thăm dị dấu khí. Các biến đổi Fourier được sử dụng
trong q trình xử lí và phân tích số liệu thu được. Hình 3: Thăm dị địa chất phản xạ.

Hình 3: Thăm dò địa chất phản xạ.

-

Quang học:

+ Trong lĩnh vực quang học, quang học Fourier (Fourier optics) là nghiên cứu về quang học
cổ điển sử dụng các phép biến đổi Fourier, trong đó dạng sóng đang được coi là được tạo
thành từ sự kết hợp hoặc chồng chất của các sóng phẳng.
Hình 5: Nhiễu xạ của ánh sáng.


4.BIẾN ĐỔI FOURIER HỮU HẠNĐỂ KHỬ NHIỄU ÂM THANH TRONG MATLAB
4.1. Các bước dùng phép biến đổi Fourier hữu hạn để khử nhiễu
Số hóa một file âm thanh, ta có một vectơ [y,Fs]=audioread(‘filename.wav’);
Phân tích Fourier rời rạc vectơ y: Y=fft(y); %Biến đổi Fourier hữu hạn
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)); %Vẽ đồ thị ban đầu
Lọc bỏ bớt các tần số của tín hiệu nhiễu chỉ giữ lại tần số của tín hiệu chính.
M=max(abs(Y));
thresh=n/M; %Dựa vào hình vẽ để xác định hệ số thresh là bao nhiêu để khử được nhiễu)
sound(y); %Nghe tín hiệu gốc
Ythresh=(abs(Y)>thresh*M).*Y;
sum(abs(Ythresh)>0)/size(y,1);
Biến đổi Fourier ngược lại: ythresh=real(ifft(Ythresh)); sound(ythresh); %Nghe lại tín hiệu

sau khi khử nhiễu


4.2. Đoạn code sử dụng trong MATLAB

4.3 Ví dụ minh họa

Đoạn code ví dụ


Đồ thị khi chưa lọc nhiễu


Đồ thị khi được khử nhiễu

Đồ thị chưa lọc nhiễu màu xanh và lọc nhiễu màu đỏ

5.Kết luận
Sau khi tìm hiểu về đề tài chúng em hiểu rõ hơn về khai triển Fourier rời rạc và ứng dụng của
Fourier đặc biệt là trong khử nhiễu âm thanh. Dù chúng em đã rất cố gắng nhưng vẫn cịn nhiều
thiếu sót, kính mong thầy và bạn đọc đóng góp để đề tài chúng em được hoàn thiện hơn. Xin
chân thành cảm ơn!


6. TÀI LIỆU THAM KHẢO
[1] Giáo trình đại số tuyến tính- Đặng Văn Vinh
[2] Wikipedia
[3][Tại sao biến đổi Fourier lại quan trọng như vậy? (qastack.vn)
[4]PHÉP BIẾN ĐỔI FOURIER NHANH VÀ ỨNG DỤNG CỦA CHÚNG TRÊN NỀN CÔNG
NGHỆ NHÚNG ARM TRONG NGHIÊN CỨU THIẾT KẾ, CHẾ TẠO THIẾT BỊ GIÁM SÁT

CÁC GIẢI TẦN SỐ VƠ TUYẾN ĐIỆN (mimotech.vn)
[5]Ngơ Minh Hồng Thái(2021), Biến đổi Fourier,
/>



×