ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
LỜI CẢM ƠN
Đầu tiên em xin chân thành cảm ơn thầy Trần Minh Văn là giáo viên trực tiếp
hướng dẫn và tận tình giúp đỡ tạo mọi điều kiện để em hoàn thành tốt đồ án tốt
nghiệp này.
Xin chân thành cảm ơn đến tất cả quý thầy cô trong bộ môn, cũng như khoa
Khoa Nghệ Thông Tin và trường Đại học Nha Trang đã tận tình đào tạo trong những
năm qua.
Xin chân thành cảm ơn!
Nha trang, ngày 7 tháng 6 năm 2011
Sinh viên thực hiện
Trần Trung Triều.
1
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
MỤC LỤC
Contents
PHẦN I : GIỚI THIỆU CHUNG............................................................................... 4
1. Giới thiệu chung...........................................................................................................4
2. Đặt vấn đề ....................................................................................................................4
3. Chủ đề luận án..............................................................................................................4
4. Phạm vi luận án..........................................................Error! Bookmark not defined.
PHẦN II : CƠ SỞ LÝ THUYẾT .............................................................................. 7
CHƯƠNG 1. LÝ THUYẾT XỬ LÝ TÍN HIỆU SỐ ..........................................................7
1.1. Tín hiệu số.................................................................................................................7
1.2. Xử lý tín hiệu số (DSP- Digital signal processing)...................................................8
Chương 2. GIỚI THIỆU CHUNG VỀ ÂM THANH SỐ ...............................................18
2.1. Âm thanh và đặc tính của âm thanh........................................................................18
2.2. Âm thanh số ............................................................................................................19
2.3. Định dạng dữ liệu....................................................................................................21
2.4. Khuôn dạng lưu trữ .................................................................................................23
Chương 3. KHUÔN DẠNG LƯU TRỮ TỆP ÂM THANH .............................................29
3.1. File định dạng Wave (*.wav) ..................................................................................29
3.2. File định dạng MIDI (*.mid)...................................................................................33
PHẦN III : GIẢI PHÁP XỬ LÝ.............................................................................39
Chương 4. XÂY DỰNG CƠ SỞ DỮ LIỆU ......................................................................39
4.1. Cơ sở lý thuyết ........................................................................................................39
4.2. Cấu trúc file *.3t......................................................................................................40
4.3. Xây dựng cơ sở dữ liệu ..........................................................................................41
Chương 5. BIẾN ĐỔI FFT VÀ PHÂN TÍCH PHỔ ..........................................................44
5.1. Biến đổi FFT ...........................................................................................................44
2
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
5.2. Phân tích phổ...........................................................................................................46
Chương 6. RÚT TRÍCH KÍ ÂM VÀ NHẬN DẠNG TÊN BÀI HÁT ..............................48
6.1. Rút trích kí âm.........................................................................................................48
6.2. Nhận dạng tên bài hát..............................................................................................50
PHẦN IV:
THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH ...................................56
Chương 7 . PHƯƠNG PHÁP THIẾT KẾ........................................................................56
7.1. Khái quát chức năng................................................................................................56
7.2. Cơ chế thực hiện .....................................................................................................56
Chương 8. CÀI ĐẶT CHƯƠNG TRÌNH ..........................................................................59
8.1. Truy cập file wave...................................................................................................59
8.2. Truy cập file midi...................................................................................................61
8.3. Cài đặt thuật toán FFT Cooley-Tookey ..................................................................63
8.4. Phân tích phổ tần số ................................................................................................66
8.5. Nhận dạng bài hát....................................................................................................69
Chương 9. HƯỚNG DẪN SỬ DỤNG...............................................................................71
9.1. Giao diện chương trình ...........................................................................................71
9.2. Tùy chọn chức năng ................................................................................................74
ĐÁNH GIÁ CHƯƠNG TRÌNH ...............................................................................75
1. Đánh giá chương trình................................................................................................75
2. Hướng phát triển ........................................................................................................76
3. Kết luận ......................................................................................................................77
Phụ lục A. GIẢI THÍCH THUẬT NGỮ...................................................................79
Phụ lục B. TÀI LIỆU THAM KHẢO .......................................................................80
3
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
PHẦN I : GIỚI THIỆU CHUNG
1. Giới thiệu chung
Cùng với sự phát triển của cuộc cách mạng khoa học và công nghệ đang diễn ra một
cách sôi động, chúng ta đang tiến dần tới thế giới của sự số hoá. Với các ưu điểm của xử lý
số, nhanh gọn, chính xác với chất lượng cao, mọi lĩnh vực hoạt động của xã hội loài người,
nhất là các ngành trong các lĩnh vực giải trí, thông tin liên lạc, phát thanh truyền hình ... đều
tiến tới việc áp dụng một cách đồng bộ và có hiệu quả các công cụ cũng như các phép xử lý
số. Trong đó, âm thanh là một lĩnh vực đặc biệt quan trọng, đây là một phương thức dùng để
trao đổi cũng như cảm nhận tin, không chỉ là tiếng nói, bản nhạc mà đó là tất cả các âm mà
ta cảm nhận được trong cuộc sống hàng ngày, do đó, lĩnh vực về âm thanh không thể nằm
ngoài xu hướng phát triển chung mà còn cần sự nghiên cứu sâu hơn nữa.
2. Đặt vấn đề
Với âm thanh số, bằng việc lưu trữ âm thanh dưới dạng các dãy số, chúng ta đạt được
yêu cầu về tốc độ truyền cũng như về khối lượng lưu trữ và độ trung thực khi nó được phát
lại. Do vậy, ngoài các phương tiện sử dụng kỹ thuật số, như camera số, thiết bị ghi số, điện
thoại số... với chất lượng cao, thì những âm thanh tương tự được ghi từ micro với các nhạc
cụ truyền thống đều được chuyển đổi sang dạng số hoá.
Về xử lý tín hiệu số, ngày nay các kỹ thuật xử lý tín hiệu số gần như đã được hoàn
thiện, cả về lý thuyết và ứng dụng thực tiễn, xử lý tín hiệu số ứng dụng của nó là hầu như ở
rất nhiều lĩnh vực, trong âm nhạc, quốc phòng an ninh, địa chất dự đoán động đất, …
Trước những nền tảng đã có, thì việc xây dựng các ứng dụng áp dụng kỹ thuật xử lý
tín hiệu số tác động lên file âm thanh số không phải là hiếm, nó đã được nhiều tổ chức, cá
nhân nghiên cứu và cũng đã cho ra trên thị trường nhiều phần mềm hữu ích phục vụ cho
một số công việc, chức năng cụ thể.
3. Chủ đề luận văn
4
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
Trên cơ sở lý thuyết đã có, nhận xét rằng nội dung một bản nhạc là bao gồm tập các
nốt nhạc (ký âm) được bố trí theo trật tự trong khuôn nhạc, kèm theo là những ký hiệu mô tả
cho giai điệu, nhịp, phách,.. của bản nhạc đó.
Hình minh họa: một bản nhạc gồm tập các nốt nhạc.
Dựa trên tập nốt nhạc trong bản nhạc, các nhạc cụ được dùng khi phát một bản nhạc
sẽ tạo thành một sóng âm thanh trong không khí mà tai người cảm nhận được, các thiết bị
điện tử dùng kỹ thuật lấy mẫu và lượng tử hóa lưu sóng âm đó vào trong máy tính.
Hình minh họa: file nhạc mô tả sóng âm của bản nhạc được phát.
Âm thanh đã được số hóa, bằng cách áp dụng các kỹ thuật xử lý tín hiệu số trên file
âm thanh này, phân tích ngược tìm lại các nốt nhạc của bản nhạc gốc ban đầu. Kết quả được
đem so sánh với cơ sở dữ liệu gồm các bản nhạc để tìm ra tên bài hát. Đây chính là nội dung
mà luận văn sẽ trình bày.
Vậy với đề tài: “Nhận dạng bản nhạc dựa trên việc phân tích ký âm” thì nhiệm vụ
chính là đi tìm hiểu lại các kỹ thuật xử lý tín hiệu số, và cấu trúc định dạng của một vài định
5
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
dạng âm thanh số được lưu trữ trong máy tính, ưu nhược điểm của chúng. Sau đó sẽ xây
dựng một chương trình sử dụng ngôn ngữ lập trình C#) nhận dạng một bản nhạc cụ thể.
Nội dung chính sẽ đề cập đến những phần sau:
- Xây dựng cơ sở dữ liệu bao gồm các file 3t từ file midi.
- Áp dụng kỹ thuật xử lý tín hiệu số (DFT), cụ thể dùng thuật toán biến đổi nhanh FFT,
tác động lên dữ liệu đầu vào là file thu âm, phân tích phổ đầu ra tìm tần số cơ bản.
- Nhận dạng tìm tên bài hát dựa trên cơ sở dữ liệu và mảng các tần số cơ bản thu được.
6
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
PHẦN II : CƠ SỞ LÝ THUYẾT
CHƯƠNG 1. LÝ THUYẾT XỬ LÝ TÍN HIỆU SỐ
1.1. Tín hiệu số
1.1.1. Định nghĩa tín hiệu
Tín hiệu là biểu hiện vật lý của thông tin.Về mặt toán học tín hiệu được coi là hàm
của một hay nhiều biến độc lập.
Ví dụ: Tín hiệu âm thanh là sự biến thiên của áp suất theo thời gian P(t) hoặc cũng
có thể coi tín hiệu âm thanh là sự biến thiên áp suất theo không gian P(x,y,z).
1.1.2. Phân loại tín hiệu
a. Phân loại theo biến độc lập:
-
Tín hiệu liên tục theo thời gian: là tín hiệu có biến thời gian liên tục (nhận mọi
giá trị trong một khoảng giá trị nào đó).
-
Tín hiệu rời rạc: là tín hiệu có biến độc lập thời gian chỉ nhận một số giá trị(Ví
dụ: Các chỉ số thị trường chứng khoán, các số liệu khí tượng…). Nghĩa là tín hiệu có
thể biểu diễn bằng một dãy số, hàm tín hiệu chỉ có giá trị xác định ở những thời điểm
nhất định. Tín hiệu rời rạc (còn được gọi là tín hiệu lấy mẫu) thu được bằng cách lấy
mẫu tín hiệu liên tục.
b. Phân loại theo biên độ:
-
Tín hiệu liên tục theo biên độ: là tín hiệu mà hàm biên độ nhận bất kỳ giá trị
nào. Ví dụ: Hàm x(t) = sin(t) nhận mọi giá trị trong khoảng [-1,1].
-
Tín hiệu rời rạc theo biên độ hay còn gọi là tín hiệu được lượng tử hoá: là tín
hiệu mà hàm biên độ chỉ nhận các giá trị nhất định. Ví dụ: x(t) = 0 với
t < 0 và x(t)
= 1 với t ≥ 0.
1.1.3. Định nghĩa tín hiệu số
Từ đó ta có định nghĩa tín hiệu số: Tín hiệu số (Digital Signal) là tín hiệu có biên độ
và thời gian rời rạc
7
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
x
3
2
1
0
t
-1
-2
-3
Hình 1.1 –Tín hiệu số
1.1.4. Hệ xử lý tín hiệu
− Một hệ thống xử lý tín hiệu sẽ xác lập mối quan hệ giữa tín hiệu vào và tín hiệu ra:
y = T[x].
Hình 1.2 –Mô hình một hệ xử lý
− Phân loại hệ xử lý theo tín hiệu vào và tín hiệu ra:
+ Hệ rời rạc: là hệ xử lý tín hiệu rời rạc.
+ Hệ tương tự: là hệ xử lý tín hiệu tương tự.
1.2. Xử lý tín hiệu số (DSP- Digital signal processing)
Xử lý tín hiệu số là việc xử lý trên những tín hiệu đã được biểu diễn dưới dạng chuỗi
số. Các phép xử lý DSP chuẩn cơ bản là : FFT, lọc, decimation, interpolation (nội suy),
convolution (tích chập),…
Việc phân tích và thiết kế của các hệ thống tuyến tính đã được thực sự đơn giản hóa
bởi các phép biểu diễn trong miền tần số của cả tín hiệu và hệ thống. Trong đó biến đổi
Fourier đóng vai trò quan trọng trong việc biểu diễn các tín hiệu và hệ thống rời rạc theo
thời gian.
8
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
1.2.1. Phép biến đổi Fourier với tín hiệu liên tục
Một tín hiệu liên tục được xây dựng trên cơ sở là tập hợp của các sóng hình sin có
tần số, và chu kỳ khác nhau. Phép biến đổi Fourier với tín hiệu liên tục là đi phân tích tín
hiệu tổng hợp này thành các thành phần tín hiệu cơ bản cấu thành nên chúng. Vì vậy với tín
hiệu liên tục tuần hoàn theo thời gian thì kết quả của phép biến đổi Fourier sẽ cho ra một
sóng hình sin có tần số tương ứng với tần số của tín hiệu đầu vào. Với tín hiệu liên tục
không tuần hoàn thì ta có thể xếp chồng tín hiệu không tuần hoàn để tạo thành một tín hiệu
liên tục tuần hoàn với chu kỳ là vô cùng lớn, vì thế kết quả của phép biến đổi Fourier bao
gồm nhiều các thành phần con, mỗi thành phần mang một tần số cơ sở, và khi ta kết hợp tập
các tần số cơ sở này sẽ cho ra lại tín liệu liên tục như ban đầu.
Hình 1.1: Kết quả phép biến đổi Fourier với tín liệu liên tục được biểu diễn sang miền tần số
Như vậy một tín hiệu liên tục bất kì có thể được phân tích thành những thành phần
tần số cơ bản cấu thành nên chúng, với tín hiệu số được lấy mẫu và lượng tử hóa từ tín hiệu
liên tục đó, thì cũng với phương pháp biến đổi Fourier trên tín hiệu số này ta cũng tìm được
những thành phàn cơ sở, sau đây sẽ nói cụ thể hơn về phép biến đổi Fourier tác động lên tín
liệu rời rạc
1.2.2. Biến đổi Fourier rời rạc (DFT - Discrete Fourier Transform)
Như ta đã biết thì DFT được sử dụng rộng rãi trong quá trình tính toán sự đánh giá
phổ, các hàm tự tương quan và việc cài đặt các bộ lọc số, ... . Đây là phép biến đổi Fourier
9
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
rời rạc của tín hiệu x(n) có độ dài hữu hạn và có trục tần số cũng được rời rạc hóa. Trong đó
tín hiệu x(n) có độ dài hữu hạn là tín hiệu có giá trị khác 0 trong một khoảng thời gian nào
đó và chúng bằng 0 trong khoảng còn lại.
Với x(n) được dùng như là một chu trình của tín hiệu, ta có thể xây dựng tín hiệu
xp(n) tuần hoàn với chu kỳ N bằng cách xếp chồng tuần hoàn x(n):
∞
Xp(n) =
∑ x(n + iN )
i = −∞
Ta có các công thức biến đổi Fourier như sau:
N −1
∑ x(n).W Nnk
DFT: X(k) = n = 0
0
1
IDFT: x(n) = N
0
N −1
∑ X (k ).W
0 ≤ k ≤ N −1
(1.1)
víi k cßn l¹i
− nk
N
0 ≤ n ≤ N −1
k =0
(1.2)
víi n cßn l¹i
Trong đó:
Ví dụ minh họa phép biến đổi Fourier rời rạc:
- Đầu vào phép biến đổi là tín hiệu rời rạc:
- Kết quả sau khi biến đổi Fourier được mô tả dưới dạng tập các sóng sin và cosin,
mỗi sóng sin, cosin đều có một tần số cụ thể:
10
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
Tóm lại, Phép biến đổi Fourier đã biến đổi một tín hiệu trong miền thời gian sang
miền tần số, dựa vào kết quả này mà tùy ứng dụng sẽ xử lý trên kết quả đầu ra theo mục
đích riêng nào đó. Ở đây chúng ta sẽ lấy ra tần số cơ bản của mỗi lần biến đổi Fourier.
1.2.3. Hàm cửa sổ
Như ta đã biết, phép biến đổi Fourier rời rạc DFT tác động trên tín hiệu có độ dài
hữu hạn, nên cần thiết phải hạn chế độ dài đối với các tín hiệu có độ dài vô cùng hoặc quá
lớn để có thể nghiên cứu phổ của chúng. Để làm điều này ta thường dùng hàm cửa sổ, tức là
nhân tín hiệu x(n) với cửa sổ w(n-n0) để nhận được một đoạn xN(n) trong khoảng n0 tới
n0+N-1 để phân tích.
11
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
x ( n) n 0 ≤ n ≤ n 0 + N − 1
víi n cßn l¹i
xN(n) = x(n). w(n- n0) =
0
(1.3)
Việc nhân tín hiệu với hàm cửa sổ theo thời gian tương đương với việc nhân chập
phổ của tín hiệu x(n) với phổ của cửa sổ:
f 0 +1
XN(f) =
∫
(1.4)
X(g)W(f-g)dg = X(f)*W(f)
f0
Trong đó XN(f), X(f), và W(f) là biến đổi Fourier tương ứng của xN(n), x(n), và
w(n).
Một số hàm cửa sổ thường được sử dụng: cửa sổ Hamming, Blackman,…
Kết quả nhận được từ tín hiệu sau khi đã cho qua cửa sổ không những phụ thuộc vào
dạng cửa sổ mà còn phụ thuộc vào số điểm tín hiệu phân tích N, cũng như vị trí cửa sổ được
đặt ở đâu, tức là tìm n0 phù hợp. Ta phải chọn vị trí cửa sổ sao cho cửa sổ bao trùm lên phần
quan trọng của tín hiệu và bỏ qua những chổ có biên độ nhỏ, và phải chọn N sao cho một
chu kỳ xp(n) là xấp xỉ của x(n) với sai số cho phép.
1.2.4. Phép biến đổi nhanh Fourier (FFT - Fast Fourier Transform)
Đây thực chất là DFT nhưng với một thuật toán nhanh, gọn và hiệu quả. FFT đã tạo
ra một bước ngoặc mới và thực sự đóng vai trò hết sức quan trọng trong việc phân tích, thiết
kế và thực hiện các thuật toán xử lý tín hiệu số cũng như tín hiệu tương tự. Tuy có nhiều
thuật toán tính FFT khác nhau, nhưng nguyên tắc chung của tất cả các thuật toán này là dựa
trên việc phân tích cách tính DFT của một dãy N số (gọi tắt là DFT N điểm) thành các phép
tính DFT của các dãy nhỏ hơn, trong đó số phép tính tỷ lệ với N.log(N).
Để đánh giá hiệu quả của thuật toán, ta sử dụng số phép tính nhân và cộng phức. Số
phép nhân và cộng phức liên quan trực tiếp đến tốc độ tính toán khi thuật toán được thực
hiện trên các máy tính hay là các bộ xử lý chuyên dụng.
1.2.4.1. Hiệu quả tính toán của FFT
Công thức tính DFT của dãy dài N:
12
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
Qua đây ta thấy để tính mỗi giá trị DFT ta cần N phép nhân và cộng phức. Để tính
toàn bộ DFT ta cần
tạp O(
phép nhân và cộng phức, hay nói cách khác công thức có độ phức
) do đó với các giá trị N lớn phương pháp tính trực tiếp sẽ tốn khá nhiều thời gian,
sau đây ta sẽ xem xét giải thuật để tính biến đổi Fourier rời rạc của tín hiệu rời rạc có chiều
dài N x(n) với độ phức tạp nhỏ hơn.
Đến đây nhận xét rằng ta gặp lại 2 bài toán tính biến đổi Fourier rời rạc của 2 dãy
con x(2r) và x(2l+1) với chiều dài N/2. Sử dụng các kỹ thuật đệ quy bài toán biến đổi
Fourier rời rạc sẽ được giải quyết với độ phức tạp O(NlogN) nhỏ hơn rất nhiều so với việc
ta tính toán trực tiếp công thức ban đầu độ phức tạp lên tới O(
).
1.2.4.2. Nguyên tắc của FFT
Nguyên tắc cơ bản mà các thuật toán FFT đều dựa vào là phân chia DFT N mẫu
thành các DFT nhỏ hơn một cách liên tục:
Với
DFT
, đầu tiên ta phân chia DFT N mẫu thành các DFT
mẫu thành DFT
mẫu, sau đó phân chia
mẫu và cứ tiếp tục như thế cho đến khi được các DFT dài N = 2.
Việc tính DFT nhỏ hơn rõ ràng sẽ cần ít phép tính nhân và cộng phức hơn.
1.2.4.3. Thuật toán Cooley–Tukey
Năm 1965, Cooley và Tukey đã tìm ra thuật toán tính DFT một cách hiệu quả gọi là
thuật toán FFT. Thuật toán Cooley-Tukey được sử dụng phổ biến. Nó đưa việc tính DFT
13
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
của dãy N=N1*N2 điểm về việc tính toán DFTs với kích thước nhỏ hơn là N1,N2, công
việc này được thực hiện một cách đệ quy.
Xuất phát từ công thức DFT ban đầu cho đầu vào là dãy N mẫu:
Chuyển việc tính toán DFT N điểm về 2 lần DFTs trên N/2 bằng cách chia dãy N
thành 2 dãy con có độ dài N/2, và một dãy sẽ chứa các mẫu có chỉ số chẵn n=2m, và mảng
còn lại chứa các mẫu ở vị trí chỉ số lẻ n=2m+1:
Với
(
là những phần được xem như phần thực và phần ảo của đầu ra FFT tại mỗi mẫu
).
Tuy nhiên, do tính chất đối xứng của phép DFT ở đầu ra:
và
Cùng với tính chất ngược pha :
Nên suy ra công thức FFT mới:
(1.5)
Công thức (1.5) là phương pháp tính DFT một dãy N mẫu đầu vào, đây chính là công
thức tính nhanh FFT.
*Một ví dụ được biểu diễn dưới dạng sơ đồ hình bướm cho thấy rõ cách tính DFT theo công
thức (1.5), ví dụ tính DFT cho dãy 8 mẫu đầu vào:
14
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
Ví dụ 1.1 : FFT một dãy 8 mẫu
Thay vào việc tính DFT cho 8 mẫu đầu vào ta thay bằng cách tính nhanh FFT với 2 lần tính
DFT cho 8/2=4 mẫu. Lần DFT đầu tiên sẽ cho các mẫu chẵn như hình vẽ, kết quả đầu ra
được đặt tên là E[i], với i chạy từ 0..8/2-1=3, Lần DFT tiếp theo với đầu vào là các mẫu ở vị
trí lẽ, kết quả đầu ra là mảng O[i], với i: 0..3. Sau đó áp dụng công thức (1.5), tính kết quả
đầu ra của phép DFT cho mảng 8 mẫu đầu vào, thể hiện qua X[i], i:0..7
15
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
Mã giả của thuật toán được mô tả như sau:
Y0,...,N−1 ← ditfft2(X, N, s): DFT of (X0, Xs, X2s, ..., X(N-1)s):
{
if N = 1 then
Y0 ← X0
trivial size-1 DFT base case
else
Y0,...,N/2−1 ← ditfft2(X, N/2, 2s);
//DFT of (X0, X2s, X4s, ...)
YN/2,...,N−1 ← ditfft2(X+s, N/2, 2s);
//DFT of (Xs, Xs+2s, Xs+4s, ...)
// combine DFTs of two halves into full DFT:
for k = 0 to N/2−1
t ← Yk
Yk ← t + exp(−2πi k/N) Yk+N/2
Yk+N/2 ← t − exp(−2πi k/N) Yk+N/2
endfor
endif
}
1.2.5. Ứng dụng DFT phân tích phổ tín hiệu
Khái niệm phổ tín hiệu:
Người ta chứng minh được rằng một tín hiệu bất kì có thể phân hủy hay tổng hợp từ
các sóng sin có biên độ và tần số khác nhau. Đặc trưng của các sóng sin được thể hiện bởi
tần số, biên độ và pha, vì vậy muốn thể hiện trên trục đồ thị tập hợp các sóng sin tương
đương với tín hiệu thì phải vẽ lên một trục tọa độ mà một cái là tần số còn cái kia là biên độ
hoặc pha, tín hiệu tương đương này người ta gọi là phổ biên độ (phổ) hoặc phổ pha. Trục f ở
đây thể hiện các tần số của sóng sin cần có để có thể tổng hợp ra một tín hiệu tương đương
với tín hiệu gốc theo phép biến đổi Fourier...
16
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
Xét cho cùng phổ là một công cụ toán học như tích phân, đạo hàm... đây là công cụ
dùng để giải quyết một số bài toán mà các công cụ truyền thống khó khăn trong việc sử
dụng. Chẳng hạn như trong bài toán phân tích phổ của tín hiệu âm thanh ta có thể rút trích
được biên độ, tần số cơ bản của một nốt nhạc được phát.
Như vậy dựa vào phổ của tín hiệu mà ta có thể rút trích một số thông tin cần thiết
phục vụ cho mục đích cụ thể nào đó.
Ứng dụng DFT phân tích phổ của tín hiệu:
Để tìm phổ của tín hiệu (cả liên tục và rời rạc), ta cần phải biết giá trị của tín hiệu tại
tất cả các thời điểm. Tuy nhiên trong thực tế, do ta chỉ quan sát được tín hiệu trong một
khoảng thời gian hữu hạn nên phổ tính được chỉ là xấp xỉ của phổ chính xác. DFT được ứng
dụng rất hiệu quả trong việc tính toán phổ xấp xỉ này.
Trong thực tế, nếu tín hiệu cần phân tích là tín hiệu liên tục, trước hết ta cho tín hiệu
đó đi qua một bộ lọc chống chồng phổ rồi lấy mẫu với tần số Fs ≥2B , với B là băng thông
của tín hiệu sau khi lọc. Như vậy, tần số cao nhất chứa trong tín hiệu rời rạc là Fs/2. Sau đó,
ta phải giới hạn chiều dài của tín hiệu trong khoảng thời gian T0 = LT, với L là số mẫu và
T là khoảng cách giữa hai mẫu. Cuối cùng, ta tính DFT của tín hiệu rời rạc L mẫu. Muốn
tăng độ phân giải của phổ rời rạc, ta tăng chiều dài của DFT bằng cách bù thêm số 0 vào
cuối tín hiệu rời rạc trước khi tính DFT.
17
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
Chương 2. GIỚI THIỆU CHUNG VỀ ÂM THANH SỐ
2.1. Âm thanh và đặc tính của âm thanh
2.1.1. Sóng âm và cảm giác âm
Khi một vật dao động về một phía nào đó, nó làm cho các lớp không khí liền trước bị
nén lại, và lớp không liền sau dãn ra. Sự nén và dãn không khí như vậy lặp đi lặp lại một
cách tuần hoàn nên đã tạo ra trong không khí một sóng đàn hồi. Sóng này truyền tới tai, nén
vào màng nhĩ khiến cho màng nhĩ cũng dao động với cùng tần số. Khi màng nhĩ dao động,
các vị trí phân biệt của màng nhĩ trên bề mặt giống như nó chuyển động về trước hay sau
đáp ứng với các sóng âm vào. Khi cùng một thời điểm, ta nghe thấy nhiều âm, thì mọi âm
thanh phân biệt này được trộn với nhau một cách tự nhiên trong tai giống như một hình mẫu
đơn của áp suất không khí thay đổi. Tai và óc làm việc cùng nhau để phân tích tín hiệu này
ngược lại thành những cảm giác về âm riêng biệt.
2.1.2. Độ cao của âm
Độ cao của âm là một đặc tính sinh lý của âm và nó phụ thuộc vào một đặc tính của
âm là tần số. Những âm có tần số khác nhau, tạo nên cảm giác về các âm khác nhau: âm có
tần số lớn gọi là âm cao hay âm thanh; âm có tần số nhỏ gọi là âm thấp hay âm trầm. Sự
cảm nhận về mức độ to nhỏ của âm thanh được gọi là cường độ (pitch). Và cường độ có liên
quan rất gần với một thuộc tính về mặt vật lý gọi là tần số (frequency).
2.1.3. Âm lượng của âm (độ to của âm)
Năng lượng của âm
Giống như các sóng cơ học, sóng âm cũng mang năng lượng sóng tỷ lệ với bình
phương biên độ sóng.
Và cường độ âm chính là năng lượng được sóng âm truyền trong một đơn vị thời
gian qua một đơn vị diện tích đặt vuông góc với phương truyền (đơn vị W/m2).
Tuy nhiên, để cảm nhận một âm, ta không đánh giá qua giá trị tuyệt đối của cường
độ âm I, mà xét theo mức cường độ âm L.
Tức là: L(B) = lg(I/I0) , với I0 là một giá trị chuẩn nào đó.
18
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
Thông thường, L lấy đơn vị là deciben (ký hiệu là dB). Với L=1dB (I lớn gấp 1,26
lần I0) là mức cường độ nhỏ nhất mà tai ta có thể phân biệt được.
Âm lượng của âm
Để có thể tạo ra cảm giác âm, cường độ âm phải lớn hơn một ngưỡng nào đó. Với
các tần số trong khoảng 1000-5000Hz, ngưỡng nghe khoảng 10-12W/m2. Với tần số 50Hz
thì ngưỡng nghe lớn gấp 105 lần. Và mức âm lượng của âm phụ thuộc vào cả cường độ âm
và tần số.
2.1.4. Âm sắc của âm
Âm sắc là một đặc tính sinh lý của âm và nó được cấu thành trên cơ sở các đặc tính
vật lý của âm là tần số và biên độ. Đây là một đặc trưng riêng của từng nguồn phát âm. Khi
một nguồn phát ra một âm có tần số f1, thì đồng thời cũng phát ra các âm có tần số f2=2* f1,
f3=3* f1 ...
Âm có tần số f1 gọi là âm cơ bản hay hoạ âm thứ nhất. Các âm có tần số f2, f3, ... gọi
là các hoạ âm thứ hai, thứ ba ... Tuỳ theo đặc tính của từng nguồn phát âm mà tạo ra các hoạ
âm khác nhau với biên độ hay khoảng kéo dài khác nhau. Do đó âm do một nguồn âm phát
ra là sự tổng hợp âm cơ bản và các hoạ âm. Nên, mặc dù có cùng tần số f1 của âm cơ bản
nhưng đường biểu diễn không còn là một đường hình sin đơn thuần mà là một đường phức
tạp có chu kỳ.
2.2. Âm thanh số
Dạng chung nhất của các quá trình thu âm thanh số là dạng điều biến mã xung (PCM
- Pulse Code Modulation). Đây là dạng mà phần lớn các đĩa compact và các file Wave sử
dụng. Trong phần cứng thu thanh dạng PCM, một microphone chuyển dạng biến đổi áp suất
không khí (các sóng âm thanh) thành dạng biến đổi điện áp. Sau đó một bộ chuyển đổi
tương tự-số đo (mẫu hoá) dòng điện áp tại các quãng thời gian đều nhau. Ví dụ như, trong
một đĩa compact có tới 44,100 mẫu được lấy mỗi giây. Mỗi điện áp mẫu hoá nhận được sẽ
được chuyển đổi sang dạng số nguyên 16-bit. Một đĩa CD chứa 2 kênh dữ liệu: một cho tai
trái, và một cho tai phải (đối với âm thanh dạng stereo). Hai kênh được thu thanh độc lập,
được đặt theo cạnh (side) trên đĩa compact (dữ liệu cho các kênh trái và phải luân phiên
19
ĐỒ ÁN TỐT NGHIỆP
NHẬN DẠNG BẢN NHẠC DỰA TRÊN PHÂN TÍCH KÝ ÂM
nhau...trái, phải, trái, phải, ...). Dữ liệu nhận được từ quá trình thu thanh PCM là một hàm
theo thời gian.
2.2.1. Nguyên lý
Về cơ bản, âm thanh tương tự và số là khác nhau, nên ta luôn bị mất thông tin khi
làm phép chuyển đổi giữa chúng. Khi được số hoá, sóng âm thanh được biểu diễn như là
một chuỗi các số (được gọi là các mẫu), mà chúng biểu diễn áp suất không khí hay tín hiệu
điện tại các thời điểm kế tiếp nhau theo thời gian. Khi mẫu hoá một tín hiệu tương tự, ta
luôn gặp phải 2 vấn đề: thứ nhất, mỗi giá trị kế tiếp trong dạng biểu diễn dạng số là một
quãng xác định nào đó của thời gian, và mỗi khối có một độ rộng xác định; thứ hai là các số
số hoá là rời rạc. Chỉ có một số xác định các độ cao có thể cho mỗi khối. Theo hình vẽ, ta
thấy độ cao các khối không ăn khớp với đường tín hiệu gốc.
TÝn hiÖu t−¬ng tù
TÝn hiÖu sè
Hình 2.1 : Chuyển đổi tín hiệu sang dạng các mẫu số
Đây là hai lỗi cơ bản trong tín hiệu âm thanh số. Lỗi này có thể được kiểm soát bằng
cách thay đổi khuôn dạng chi tiết của dạng biểu diễn âm thanh, nhưng không thể loại bỏ
được hoàn toàn. Chính vì vậy, tuỳ theo ứng dụng ta sẽ phải chấp nhận một số lỗi nhất định.
Và các hệ số khác như kích thước dữ liệu hay tần số xử lý yêu cầu ta phải chấp nhận một sai
số lớn hơn từ một số nguồn để có thể giảm hơn nữa các sai số khác.
2.2.2. Tần số và cường độ
Tần số của một sóng hình sin là khoảng thời gian mà nó dùng cho một chu kỳ hoàn
chỉnh. Tần số được tính theo hertz (Hz), là số các chu kỳ hoàn chỉnh mà chúng xuất hiện
20
- Xem thêm -