Toolbox matlab xử lý âm thanh

Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://baocaothuctap.net

Download luận văn báo cáo khoa học ngành điện tử viễn thông với đề tài: Xây dựng các bài thí nghiệm xử lý tín hiệu số trên Matlab, cho các bạn làm luận văn tham khảo

Toolbox matlab xử lý âm thanh

Báo giá viết bài tại: LUANVANPANDA.COM

Nhận viết luận văn đại học, thạc sĩ trọn gói, chất lượng, LH ZALO=>0909232620
Tham khảo dịch vụ, bảng giá tại: https://baocaothuctap.net

Download luận văn báo cáo khoa học ngành điện tử viễn thông với đề tài: Xây dựng các bài thí nghiệm xử lý tín hiệu số trên Matlab, cho các bạn làm luận văn tham khảo

  • Đăng ký hoặc đăng nhập

    • Log in with Facebook

  • Chủ đề mới
  • Bài viết trong ngày
  • Thành viên trực tuyến
  • Đánh dấu đã đọc
  • Danh sách thành viên
  • Linh kiện điện tử
  • Calendar
  • Diễn đàn
  • Lập Trình và Mô Phỏng
  • Matlab - Labview - 20sim
  • Nếu đây là lần đầu tiên đến với Điện Tử Việt Nam, bạn có thể đọc phần Hỏi đáp bằng cách nhấn vào liên kết. Có thể bạn cần đăng kí trước khi có thể gửi bài . Để bắt đầu xem bài viết, chọn diễn đàn bạn muốn thăm dưới đây.

Đang tải...

MỤC LỤC
LỜI NÓI ĐẦU.............................................................................................................2
Chương I. Lý thuyết chung........................................................................................3
1.1. Tổng quan về xử lý âm thanh..........................................................................................3
1.1.1. Đặc tính của âm thanh tương tự................................................................................3
1.1.2. Hệ thống số xử lý âm thanh......................................................................................4
1.1.3. Mô hình hóa tín hiệu âm thanh.................................................................................4
1.1.4. Tần số lấy mẫu..........................................................................................................5
1.1.5. Mô hình xử lý âm thanh............................................................................................5
1.2. Một số khái niệm toán học trong xử lý âm thanh............................................................5
1.2.1. Phép biến đổi z..........................................................................................................5
1.2.2. Phép biến đổi Fourier................................................................................................6
1.2.3. Phép biến đổi Fourier rời rạc....................................................................................6
1.2.4. Xử lý, nâng cao chất lượng âm thanh bằng các bộ lọc số có đáp ứng xung chiều
dài hữu hạn FIR..................................................................................................................6
1.3. Nâng cao chất lượng âm thanh trong thực tế.................................................................17
1.3.1. Khả năng nghe của người bình thường...................................................................17
1.3.2. Nâng cao chất lượng âm thanh qua phương pháp lọc âm.......................................19

CHƯƠNG II: GIỚI THIỆU VỀ PHẦN MỀM MATLAB.....................................21
2.1. Giới thiệu chung về matlab...........................................................................................21
2.2. Mô phỏng lọc âm thanh trên MATLAB........................................................................22

CHƯƠNG III: MÔ PHỎNG PHƯƠNG PHÁP LỌC ÂM THANH TRÊN
MATLAB................................................................................................................... 25
3.1. Ví dụ về mô phỏng bước rời rạc âm thanh....................................................................25
3.2. Cách mô phỏng trên matlab:..........................................................................................26

CHƯƠNG IV: KẾT QUẢ MÔ PHỎNG VÀ ĐÁNH GIÁ......................................30
4.1. Kết quả mô phỏng.........................................................................................................30
4.2. Đánh giá.........................................................................................................................33

DANH MỤC HÌNH ẢNH:........................................................................................34
PHÂN CÔNG NHIỆM VỤ:......................................................................................35

LỜI NÓI ĐẦU
Bộ lọc là một hệ thống có thể ứng dụng rất nhiều trong lĩnh vực cuộc sống. Khi
công nghệ ngày càng phát triển thì việc lọc nhiễu để đạt được những tín hiệu tốt hơn
ngày càng trở nên quan trọng. Về lịch sử phát triển, bộ lọc được nghiên cứu nhiều
nhất trong xử lý tín hiệu số. Và đã dành được sự quan tâm, đầu tư nghiên cứu của các
nhà khoa học, các trung tâm nghiên cứu lớn trên thế giới. Hiện nay, bộ lọc liên tục
phát triển tạo ra các kỹ thuật quan trọng ảnh hưởng trực tiếp đến lĩnh vực điện tử,
thông tin liên lạc, phát thanh truyền hình, các ngành công nghệ khác.
Trong thông tin liên lạc, tín hiệu âm thanh được truyền đi ở những khoảng cách
rất xa, nên không tránh khỏi bị tác động nhiễu của môi trường, đường truyền, tần số,
hay trong chính hệ thống của nó. Nhưng khi qua bộ lọc nhiễu, âm thanh sẽ trở nên rõ
ràng và chính xác hơn. Trong các thiết bị điện tử thường gặp như loa đài, máy phát,
máy thu ngày càng có chất lượng âm thanh tốt hơn là do bộ lọc ngày càng được tối ưu
hơn. Vì những ứng dụng quan trọng trong thực tế như vậy, nên vấn đề đặt ra là làm thế
nào để thu được âm thanh có chất lượng tốt hơn. Đó cũng chính là mục tiêu mà bài
báo cáo của chúng em hướng tới.
Trong đề tài này chúng em nghiên cứu một số phương pháp lọc, và mô phỏng
việc lọc âm thanh qua phần mềm Matlab cụ thế là phương pháp lọc thông thấp. Với
mục tiêu xác định như trên, bài báo cáo được chia ra làm 3 phần với nội dung cơ bản
như sau:
Chương 1: Lý thuyết chung.
Chương 2: Giới thiệu về phần mềm Matlab.
Chương 3: Mô phỏng phương pháp lọc âm thanh trên phần mềm Matlab.
Chương 4: Kết quả mô phỏng và kết luận chung.

Chương I. Lý thuyết chung
1.1. Tổng quan về xử lý âm thanh
1.1.1. Đặc tính của âm thanh tương tự
Mục đích của lời nói là dùng để truyền đạt thông tin. Có rất nhiều cách mô tả đặc
điểm của việc truyền đạt thông tin. Dựa vào lý thuyết thông tin, lời nói có thể được đại
diện bởi thuật ngữ là nội dung thông điệp, hoặc là thông tin. Một cách khác để biểu thị
lời nói là tín hiệu mang nội dung thông điệp, như là dạng sóng âm thanh.

Hình 1.1: Dạng sóng của tín hiệu ghi nhận từ âm thanh của con người
Trong các thiết bị tương tự hiện đại trông có vẻ xử lý âm thanh tốt hơn những
thiết bị cổ điển, các tiêu chuẩn xử lý thì hầu như không có gì thay đổi, mặc dù công
nghệ có vẻ xử lý tốt hơn. Trong hệ thống xử lý âm thanh tương tự, thông tin được
truyền đạt bằng thông số liên tục biến thiên vô hạn.
Hệ thống xử lý âm thanh số lý tưởng có những tính năng tương tự như hệ thống
xử lý âm thanh tương tự lý tưởng: cả hai hoạt động một cách “trong suốt” và tạo lại
dạng sóng ban đầu không lỗi. Tuy nhiên, trong thế giới thực, các điều kiện lý tưởng rất
hiếm tồn tại, cho nên hai loại hệ thống xử lý âm thanh hoạt động sẽ khác nhau trong
thực tế. Tín hiệu số sẽ truyền trong khoảng cách ngắn hơn tín hiệu tương tự và với chi
phí thấp hơn.
Trong hệ thống truyền âm thoại, tín hiệu thoại được truyền lưu trữ và xử lý theo
nhiều cách thức khác nhau. Tuy nhiên đối với mọi loại hệ thống xử lý âm thanh thì
có hai điều cần quan tâm chung là:
1. Việc duy trì nội dung của thông điệp trong tín hiệuthoại
2. Việc biểu diễn tín hiệu thoại phải đạt được mục tiêu tiện lợi cho việc truyền
tin hoặc lưu trữ, hoặc ở dạng linh động cho việc hiệu chỉnh tín hiệu thoại sao cho
không làm giảm nghiêm trọng nội dung của thông điệpthoại.
Việc biểu diễn tín hiệu thoại phải đảm bảo việc các nội dung thông tin có thể
được dễ dàng trích ra bởi người nghe, hoặc bởi các thiết bị phân tích một cách tự
động.

1.1.2. Hệ thống số xử lý âm thanh
Độ nhạy của tai người rất cao, nó có thể phân biệt được số lượng nhiễu rất nhỏ
cũng như chấp nhận tầm biên độ âm thanh rất lớn. Các đặc tính của một tín hiệu tai
người nghe được có thể được đo đạc bằng các công cụ phù hợp. Thông thường, tai
người nhạy nhất ở tầm tần số 2kHz và 5kHz, mặc dù cũng có người có thể nhận dạng
được tín hiệu trên 20kHz. Tầm động nghe được của tai người được phân tích và
người ta nhận được kết quả là có dạng đáp ứng logarith.
Tín hiệu âm thanh được truyền qua hệ thống số là chuỗi các bit. Bởi vì bit có
tính chất rời rạc, dễ dàng xác định số lượng bằng cách đếm số lượng trong một giây,
dễ dàng quyết định tốc độ truyền bit cần thiết để truyền tín hiệu mà không làm mất
thông tin.
1.1.3. Mô hình hóa tín hiệu âm thanh
Có rất nhiều kỹ thuật xử lý tín hiệu được mô hình hóa và áp dụng các giải
thuật trong việc khôi phục âm thanh. Chất lượng của âm thoại phụ thuộc rất lớn vào
mô hình giả định phù hợp với dữ liệu. Đối với tín hiệu âm thanh, bao gồm âm thoại,
nhạc và nhiễu không mong muốn, mô hình phải tổng quát và không sai lệch so với
giả định. Một điều cần lưu ý là hầu hết các tín hiệu âm thoại là các tín hiệu động
trong thực tế, mặc dù mô hình thực tiễn thì thường giả định khi phân tích tín hiệu là
tín hiệu có tính chất tĩnh trong một khoảng thời gian đang xét.
Mô hình phù hợp với hầu hết rất nhiều lĩnh vực trong việc xử lý chuỗi thời
gian, bao gồm việc phục hồi âm thanh là mô hình Autoregressive (viết tắt AR), được
dùng làm mô hình chuẩn cho việc phân tích dự đoán tuyến tính.
Tín hiệu hiện tại được biểu diễn bởi tổng giá trị của P tín hiệu trước đó và tín hiệu
nhiễu trắng, P là bậc của mô hình AR:
s[u] i + e[n]
Mô hình AR đại diện cho các quá trình tuyến tính tĩnh, chấp nhận tín hiệu
tương tự nhiễu và tín hiệu tương tự điều hòa. Một mô hình khác phù hợp hơn đối với
nhiều tình huống phân tích là mô hình auto regressive moving-average (ARMA) cho

phép các điểm cực cũng như điểm 0. Tuy nhiên mô hình AR có tính linh động hơn
trong phân tích mô hình ARMA, ví dụ một tín hiệu nhạc phức tạp cần mô hình có bậc
P > 100 để biểu diễn dạng sóng của tín hiệu, trong khi các tín hiệu đơn giản chỉ cần
biểu diễn bằng bậc 30. Trong nhiều ứng dụng, việc lựa chọn bậc của mô hình phù
hợp cho bài toán sao cho đảm bảo việc biểu diễn tín hiệu là thỏa việc không làm mất
đi thông tin của tín hiệu là việc hơi phức tạp.

1.1.4. Tần số lấy mẫu
Khi chuyển đổi một âm thanh sang dạng số, điều cần lưu ý là tần số lấy mẫu
của hệ thống xử lý phải đảm bảo tính trung thực và chính xác khi cần phục hồi lại
dạng sóng tín hiệu ban đầu.
Theo định lý lấy mẫu Nyquist và Shannon, tần số lấy mẫu quyết định tần số
cao nhất của tín hiệu phục hồi. Để tái tạo lại dạng sóng có tần số là F, cần phải lấy 2F
mẫu trong 1s. Tần số này còn được gọi là tần số lấy mẫu Nyquist. Tuy nhiên, định lý
Nyquist không phải là tối ưu cho mọi trường hợp. Nếu như tần số lấy mẫu cao hơn
tần số Nyquist sẽ gây ra tình trạng “hiệu ứng” làm ảnh hưởng đến biên độ của tín
hiệu và tín hiệu bị cộng nhiễu, tuy nhiên lúc đó thì các thành phần hài tần số thấp lại
có tín hiệu chính xác hơn khi được phục hồi.
1.1.5. Mô hình xử lý âm thanh
Để xử lý một tín hiệu liên tục bằng các phương tiện xử lý tín hiệu số, ta phải đổi tín
hiệu liên lục đó ra dạng một chuỗi số bằng cách lấy mẫu tín hiệu liên tục một cách
tuần hoàn có chu kỳ là T giây. Gọi x(n) là tín hiệu rời rạc hình thành do quá trình lấy
mẫu, tín hiệu liên tục xa(t), ta có:
x(n) = xa(nT)

-∞ < n < ∞

Các mẫu x(n) phải được lượng tử hóa thành một tập các mức biên độ rời rạc rồi mới
được đưa vào bộ xử lý số.

Hình 1.2: Cấu hình hệ thống xử lý tín hiệu tương tự bằng phương pháp số
Để xác định quan hệ giữa phổ của tín hiệu liên tục và phổ của tín hiệu rời rạc tạo ra
từ quá trình lấy mẫu tín hiệu liên tục đó, ta chú ý đến quan hệ giữa biến độc lập t và n
của tín hiệu xa(t) và x(n).
t = nT =
1.2. Một số khái niệm toán học trong xử lý âm thanh
1.2.1. Phép biến đổi z
Phép biến đổi z của một chuỗi được định nghĩa bởi cặp biểu thức:
-n
n-1

dz

(*)

Biến đổi Z của x(n) được định nghĩa bởi biểu thức (*). X(z) còn được gọi là dãy công
suất vô hạn theo biến z-1 với các giá trị của x(n) chính là các hệ số của dãy công suất.
Miền hội tụ ROC là {z| |X(z)| < ∞}, là những giá trị của z sao cho chuỗi hội tụ, hay
nói cách khác
-n

| < ∞(1.2.1c)

Thông thường, miền hội tụ của z có dạng:
R1 < |z| < R2
1.2.2. Phép biến đổi Fourier
Biến đổi Fourier của tín hiệu rời rạc thời gian được cho bởi biểu thức:
x(n)e-jω

∫X(ejω)ejωndω

(1.2.2a)
(1.2.2b)

Biến đổi Fourier là trường hợp đặc biệt của phép biến đổi z bằng cách thay thế z =
ejω.
Một đặc tính quan trọng của biến đổi Fourier của một chuỗi là X(eiω) là hàm điều hòa
ω, với chu kỳ là 2π.
1.2.3. Phép biến đổi Fourier rời rạc
Trong trường hợp tín hiệu tương tự, tuần hoàn với chu kỳ N
-∞ < n < ∞
Với x(n) có thể có dạng là tổng rời rạc các tín hiệu sin thay vì tích phân như công
thức (1.2.2b). Phép biến đổi Fourier cho chuỗi tuần hoàn như sau:

1.2.4. Xử lý, nâng cao chất lượng âm thanh bằng các bộ lọc số có đáp ứng xung
chiều dài hữu hạn FIR
Bộ lọc FIR có một số ưu điểm về mặt thực hiện như sau:
• Đáp ứng pha là tuyến tính
• Tương đối dễ thiết kế và luôn luôn là hệ thống ổn định
• Thực hiện được với hiệu quả cao
• Có thể thực hiện được trên cơ sở áp dụng biến đổi Fourier rời rạc.
Với bộ lọc FIR ta luôn đặt được điều kiện pha tuyến tính, điều này có nghĩa đáp ứng
pha - tần số là một hàm số bậc nhất theo tần số ω, tương đương với thực hiện việc trễ
hàm đáp ứng xung ở miền thời gian. Khi một hệ thống có pha tuyến tính, trễ nhóm
(group delay) là một hằng số, thì có ưu điểm là các thành phần tần số khác nhau của
tín hiệu tại đầu vào có cùng thời gian trễ như nhau sau khi cho qua hệ thống tại đầu ra.
Hàm đáp ứng pha-tần số của bộ lọc FIR có dạng như sau:
, với α, β là các hằng số

và hàm đáp ứng tần số của bộ lọc FIR được cho dưới dạng độ lớn và pha như sau:
, với là hàm thực
Khi áp đặt thêm điều kiện pha tuyến tính vào bộ lọc FIR, dãy đáp ứng xung của bộ lọc
chỉ có thể đối xứng hoặc phản đối xứng. Dựa trên tính chất đối xứng hay phản đối
xứng của dãy đáp ứng xung và chiều dài N của dãy đáp ứng xung, người ta phân loại
bộ lọc FIR làm 4 loại sau đây:
• Bộ lọc FIR loại 1: h(n) đối xứng, N lẻ, β=0,
• Bộ lọc FIR loại 2: h(n) đối xứng, N chẵn, β=0,
• Bộ lọc FIR loại 3: h(n) phản đối xứng, N lẻ, β= ,
• Bộ lọc FIR loại 4: h(n) phản đối xứng, N lẻ, β= ,
Đáp ứng tần số của bộ lọc FIR cho từng loại là như sau:
a. FIR loại 1:
Với a(0)= , là mẫu giữa của dãy đáp ứng xung.
a(n) =2 , với 1
dẫn đến A( , và
c. FIR loại 2:
Với b(n) =2 , 1
dẫn đến A(, và
d. FIR loại 3:

Với c(n) =2 , 1
dẫn đến A( , và
e. FIR loại 4:
Với d(n) =2 , 1
Dẫn đến A( , và
Đối với các hệ thống FIR nói chung, hàm truyền đạt H(z) có duy nhất một điểm cực
tại 0, bậc N-1, và miền hội tụ RC: .Bởi dãy đáp ứng xung là dãy thực nên hàm truyền
đạt có tính chất đối xứng Hermit, cho nên nếu là một điểm không của H(z) thì z0*
cũng là một điểm không của H(z). Do dãy đáp ứng xung của bộ lọc FIR pha tuyến

tính là đối xứng hoặc phản đối xứng, dẫn đến nếu z0 là một điểm không của H(z) thì
cũng là một điểm không của H(z). Trường hợp tổng quát, nếu như biết một điểm

không của đáp ứng tần số bộ lọc FIR pha tuyến tính H(z) tại , chúng ta suy ra rằng
H(z) có 4 điểm không là:
, , r,
Trường hợp đặc biệt, điểm không nằm trên trục thực hoặc đường tròn đơn vị, số điểm
không được suy ra suy giảm còn 2, và khi điểm không là 1 hoặc -1, không suy ra được
thêm điểm không nào. Tính chất này có thể áp dụng trong thiết kế bộ lọc bằng cách
mắc nối tiếp nhiều khâu, mỗi khâu có đáp ứng pha tuyến tính.
 Các phương pháp tổng hợp bộ lọc FIR
Có 3 phương pháp để tổng hợp bộ lọc FIR pha tuyến tính, đó là:
• Phương pháp cửa sổ
• Phương pháp lấy mẫu tần số
• Phương pháp lặp
a. Phương pháp cửa sổ
Tư tưởng cơ bản của phương pháp cửa sổ là tìm ra đáp ứng xung của bộ lọc lý tưởng
rồi sau đó cắt xén ở hai đầu (hay nhân với một hàm cửa số) dãy đáp ứng xung đó sao
cho ta thu được một bộ lọc FIR pha tuyến tính, đồng thời là nhân quả. Điểm nhấn
mạnh ở phương pháp này là tìm ra đáp ứng xung thích hợp của bộ lọc lý tưởng và lựa
chọn hàm cửa số thích hợp. Về mặt lý tưởng, bộ lọc thông thấp lý tưởng pha tuyến
tính có độ lợi dải thông bằng 1 và đáp ứng tần số bằng 0 trên toàn dải chắn, tức là:

với là tần số cắt và α là trễ nhóm thì ta sẽ thu được dãy đáp ứng xung có tính chất
đối xứng tại α.
Với các bộ lọc số lý tưởng khác, bao gồm thông cao, thông dải, và chắn dải, dãy đáp
ứng xung cũng có dạng tương tự như vậy và có thể suy ra từ dạng đáp ứng xung của
bộ lọc thông thấp lý tưởng nói trên. Với bộ vi phân và bộ biến đổi Hilbert, bằng biến
đổi toán học, ta cũng có được đáp ứng xung có tính chất phản đối xứng tại α.

Để thu được đáp ứng xung của bộ lọc FIR về mặt thực tế, phương pháp của sổ dùng
kỹ thuật nhân hàm đáp ứng xung của bộ lọc lý tưởng với một hàm cửa sổ w(n), với
w(n) là một hàm đối xứng đối với α trong khoảng từ 0 đến N-1 và bằng 0 trong
khoảng còn lại. Kết quả là hàm đáp ứng xung của bộ lọc thực tế h(n) là đối xứng hoặc
phản đối xứng đối vớitrong khoảng [0,N-1].
Một số cửa số thông dụng được lựa chọn là:
 Cửa số chữ nhật
Việc nhân cửa sổ chữ nhật với đáp ứng xung của bộ lọc lý tưởng ở miền thời gian
tương đương với lấy tích chập liên tục tuần hoàn ở miền tần số giữa đáp ứng tần số
của bộ lọc lý tưởng với ảnh qua phép biến đổi Fourier của hàm cửa sổ.
=

Biến đổi Fourier của dãy chữ nhật được cho như hình vẽ dưới.

Hình2.3 : Biến đổi Fourier của dãy chữ nhật
Ở đây ta có một số nhận xét về hàm biến đổi Fourier của dãy chữ nhật và đáp ứng tần
số của bộ lọc thực tế khi dùng cửa số chữ nhật:
• Bởi cửa sổ w(n) có độ rộng bằng N nên trong khoảng [-π,π] ở miền tần số,
có một bướu chính biên độ rất cao, độ rộng 4π/N và các bướu bên có biên
độ nhỏ hơn.
• Tích chập tuần hoàn giữa đáp ứng tần số của bộ lọc số lý tưởng với sẽ tạo ra
đáp ứng tần số của bộ lọc giống với dạng của nhưng bị xô đi.
• Bướu chính của sẽ tạo ra dải chuyển tiếp của, bướu chính của càng hẹp,
tương đương với N lớn, dải chuyển tiếp của sẽ càng nhỏ.
• Các bướu bên của sẽ tạo ra sự gợn sóng như nhau ở cả dải thông và dải chắn
của .
Lý thuyết và thực tế chứng tỏ một số đặc điểm chính của bộ lọc thực tế được tổng hợp
theo phương pháp cửa sổ chữ nhật như sau:
• Giá trị xấp xỉ của độ rộng dải chuyển tiếp (tính từ đỉnh gợn sóng cuối cùng

của dải thông đến khi đáp ứng tần số giảm đến không) bằng độ rộng của
bướu chính và bằng .
• Tỷ số giữa đỉnh bướu bên đầu tiên và đỉnh bướu chính là 13dB.
• Sau phép tính tích chập liên tục tuần hoàn, đáp ứng biên độ được tích luỹ
với nhiều bướu liên tiếp và bướu bên đầu tiên ở dải chắn sẽ rơi vào vị trí
suy giảm 21dB so với đỉnh ở dải thông, giá trị này không phụ thuộc M. Do
đó độ suy giảm dải chắn tối thiểu là 21dB và cũng không phụ thuộc M.
Những đặc điểm trên nói lên rằng dùng cửa sổ chữ nhật có một số nhược điểm sau:

Cho dù chiều rộng của cửa sổ N tăng, độ rộng của mỗi một bướu bên giảm
đi nhưng diện tích tương đối của từng bướu đối với bướu chính không hề
thay đổi nên độ suy giảm dải chắn tối thiểu vẫn giữ nguyên không thay đổi
là 21dB. Độ suy giảm dải chắn tối thiểu là 21dB trong nhiều trường hợp là
không đủ với yêu cầu của thiết kế.
• Cửa sổ chữ nhật có sự thay đổi đột ngột ở viền cửa sổ, tức là đơn giản ta chỉ
cắt ở cả hai đầu của đáp ứng xung bộ lọc lý tưởng dẫn đến hiện tượng Gibb.
Nhìn trên đáp ứng tần số sẽ thấy các bó gợn dày lên khi tiến ra cạnh của dải
thông và dải chắn.
Nhằm tăng độ suy giảm dải chắn và hạn chế hiện tượng Gibb, một số dạng cửa sổ sau
đã được đưa ra và được áp dụng rất nhiều trong thiết kế các bộ lọc thực tế:
 Cửa sổ Bartlet (hay cửa sổ tam giác)

 Cửa sổ Hanning (hay cửa số Hann)

 Cửa số Hamming

 Cửa sổ Blackman: cho đến hài bậc hai

Rõ ràng luôn có sự đánh đổi giữa tính chất hẹp của dải chuyển tiếp và tính gợn
sóng ở dải thông và dải chắn. Các loại cửa sổ làm giảm hiệu ứng gợn sóng ở dải thông
và dải chắn luôn có xu hướng làm cho bề rộng của dải chuyển tiếp tăng lên.
Bảng 1.1: Các thông số về độ rộng dải chuyển tiếp và độ suy giảm dải chắn tối thiểu
đối với từng loại cửa sổ:
Tên cửa sổ
Chữ nhật
Barlett
Hannning
Hamming
Blackman

Độ rộng dải chuyển tiếp
Xấp xỉ
Chính xác

Độ suy giảm dải
chắn tối thiểu
21 dB
25 dB
44 dB
53 dB
74 dB

Dạng cửa sổ càng phức tạp, để bù cho độ suy giảm dải chắn thấp và giảm hiện
tượng Gibb thì phải đánh đổi lấy dải chuyển tiếp có độ rộng lớn hơn hay cần độ dài

đáp ứng xung N lớn hơn nếu muốn duy trì dải chuyển tiếp có độ rộng không đổi và
đương nhiên là bộ lọc sẽ có thiết kế phức tạp hơn.

Cửa sổ Kaiser
Là dạng cửa sổ hiệu quả nhất cho phép thiết kế với bộ lọc có độ suy giảm dải
chắn đòi hỏi rất nhỏ.Cửa sổ Kaiser có thông số có thể điều chỉnh được, do vậy có thể
điều khiển được độ rộng cánh bên so với đỉnh của cánh chính. Cũng giống như các
hàm cửa sổ khác, độ rộng cánh chính có thể thay đổi được bằng cách điều chỉnh chiều
dài cửa sổ. Do vậy, điều chỉnh được độ rộng của dải chuyển tiếp. Với mục tiêu này,
các mạch lọc số được thiết kế rất có hiệu quả khi dùng hàm cửa sổ Kaiser.
Phương trình cửa sổ Kaiser:

Với là hàm Bessel bậc không.
-

Độ rộng dải chuyển tiếp đã được chuẩn hoá:

-

Bậc của bộ lọc:

b. Phương pháp lấy mẫu tần số
Tư tưởng của phương pháp này là xây dựng một bộ lọc có đáp ứng xung chiều
dài N và có đáp ứng tần số xấp xỉ với đáp ứng tần số của bộ lọc lý tưởng. Cụ thể, ta có
thể xét tại N mẫu rời rạc cách đều nhau trong khoảng từ 0 đến 2π, hàm đáp ứng tần số
của bộ lọc thực tế bằng đúng với hàm đáp ứng xung của bộ lọc lý tưởng. Nếu như ta
đã biết N mẫu rời rạc H(k) trên hàm đáp ứng tần số, tương đương với N mẫu ảnh qua
phép biến đổi Fourier rời rạc của dãy đáp ứng xung h(n), ta hoàn toàn có thể xây dựng
hàm đáp ứng tần bằng phép nội suy theo công thức:
Đương nhiên là các giá trị X(k) chính là các giá trị của tại các mẫu rời rạc:
, với k= 0,1,….N-1
Do là đáp ứng tần số của một hệ thống đặc trưng bởi dãy đáp ứng xung đơn vị
thực nên có tính chất đối xứng Hermit, tâm đối xứng tại 0, đồng thời tuần hoàn chu kỳ

2π hay H(k) tuần hoàn chu kỳ N. Do đó các mẫu rời rạc X(k) phải có tính chất:
, với k= 0,1,….N-1

Riêng mẫu ứng với k=0 là một ngoại lệ bởi nó là tâm đối xứng nếu xét trong
chu kỳ tuần hoàn của là [-π,π].
Nếu đáp ứng tần số được viết dưới dạng độ lớn và pha:
A( , với A(, ) là các hàm thực
Ảnh của h(n) qua phép biến đổi Fourier rời rạc cũng được viết dưới dạng độ lớn và
pha:
A( , với A() là các dãy thực
thì độ lớn và pha của dãy H(k) sẽ được tính theo công thức:
A( và )
Do và H(k) đều có tính chất đối xứng Hermit nên:
A( , với k=1,….N-1
Và:
 Đối với bộ lọc FIR loại 1:
 Đối với bộ lọc FIR loại 2:
 Đối với bộ lọc FIR loại 3: :
Nếu coi hàm sai số xấp xỉ được tính bằng độ sai lệch giữa đáp ứng tần số của bộ lọc lý
tưởng với đáp ứng tần số của bộ lọc thực tế, ta có các nhận xét sau:
 Hàm sai số xấp xỉ bằng không tại các tần số được lấy mẫu
 Hàm sai số xấp xỉ tại các tần số khác phụ thuộc vào mức độ dốc hay độ biến
đổi đột ngột tại tần số đó. Tại tần số có đáp ứng càng dốc, ví dụ gần biên của
dải thông và dải chắn, thì có hàm sai số xấp xỉ càng lớn.
Dãy đáp ứng xung của bộ lọc được suy ra từ biến đổi Fourier rời rạc ngược của dãy
các mẫu X(k):
và hàm tìm biến đổi Fourier rời rạc ngược bằng thuật toán biến đổi Fourier nhanh có
thể được áp dụng trong trường hợp này.
c. Phương pháp lặp

Hai phương pháp đã được trình bày ở trên, phương pháp cửa sổ và phương pháp lấy
mẫu tần số, tồn tại một số bất cập. Thứ nhất ta không thể định được chính xác các tần
số cắt và . Thứ hai ta không thể ràng buộc điều kiện đồng thời điều kiện về độ gợn
sóng và ở cả dải thông và dải chắn. Thứ ba là hàm sai số xấp xỉ phân bố không đều
trên các dải và có xu hướng tăng lên khi đến gần dải chuyển tiếp. Phương pháp lặp
dựa trên thuật toán tối ưu có thể giải quyết được các vấn đề trên.
Phương pháp này được các tài liệu đề cập đến với một số tên gọi khác nhau: Optimal
(Optimum) Equiriple, Remez Exchange. Bản chất của phương pháp này là xuất phát

từ một chiều dài dãy N cho trước, bằng thuật toán trao đổi Remez để tìm ra dãy đáp
ứng xung sao cho cực đại của hàm sai số giữa đáp ứng tần số của bộ lọc lý tưởng và
đáp ứng tần số của bộ lọc thực tế là nhỏ nhất. Nếu như hàm đáp ứng tần số ứng với
dãy đáp ứng xung tìm được nói trên vẫn chưa thoả mãn điều kiện yêu cầu của thiết kế,
giá trị N cần phải tăng. Quá trình này được lặp đi lặp lại đến khi tìm ra được bộ lọc
thoả mãn các yêu cầu đã được đặt ra.
Dưới đây sẽ trình bày tóm tắt về mặt lý thuyết quá trình tối thiểu hoá sai số cực đại
giữa đáp ứng tần số của bộ lọc thực tế và đáp ứng tần số củat bộ lọc lý tưởng. Trước
tiên, ta đưa hàm độ lớn của đáp ứng tần số của 4 loại bộ lọc FIR về dạng sau:
A(
Với P( là hàm có dạng : P(
Bảng 1.2: Các giá trị R, các hàm P(, cho 4 loại bộ lọc
Loại bộ lọc
FIR loại 1
FIR loại 1
FIR loại 1
FIR loại 1

R
1

)

Hàm sai số giữa bộ lọc lý tưởng và bộ lọc thực tế được xây dựng như sau:
với S=
Trong đó:
- Hàm E(ω) có miền xác định chỉ là phần dải thông và dải chắn, mà không xác
định tại dải chuyển tiếp.
- Hàm W(ω) được gọi là hàm trọng số có tác dụng trải đều sai số giữa bộ lọc thực
tế và bộ lọc lý tưởng trên cả dải thông và dải chắn.
Nếu ta lựa chọn hàm trọng số trong trường hợp> , với và lần lượt là độ độ gợn sóng
của dải thông và dải chắn, là:
thì hàm sai số ở cả dải thông và dải chắn đều không vượt quá ở cả dải thông và dải
chắn. Điều này có nghĩa nếu như ta tối thiểu hoá cực đại của hàm sai số E(ω) là ta tự
động có luôn cực đại của sai số giữa bộ lọc thực tể và bộ lọc lý tưởng ở dải chắn là và
ở dải thông là .
Chúng ta nhận thấy là hàm Q(ω) ở 4 loại bộ lọc là khác nhau, để triệt tiêu hàm này,
hàm sai số được biến đổi như sau:

Ở đây nếu như định nghĩa các hàm trọng số biến dạng và hàm độ lớn của đáp ứng
tần số bộ lọc lý tưởng biến dạng là:

thì hàm sai số của cả 4 loại bộ lọc có cùng dạng chung:
Bài toán Chebyshev đặt ra là:Tìm các hệ số, hoặc, hoặc , hoặc
nhằm tối thiểu hoá cực đại của trị tuyệt đối hàm sai số trên dải thông và dải chắn, tức
là tìm ra:
Định lý xoay chiều: S là một khoảng đóng bất kỳ (còn gọi là đoạn vì nó chứa cả
biên) trên đoạn [0, π], giả sử có dạng:

Hàm sai số được tính theo công thức:

Điều kiện cần và đủ để duy nhất và xấp xỉ theo kiểu cực đại là nhỏ nhất, theo nghĩa
gần đúng Chebyshev, so với trên S là: Hàm sai số phải có tối thiểu R+2 giá trị cực trị
đổi dấu xen kẽ nhau trên S mà:

với
Định lý nói trên không chỉ ra cách thức để thu được hàm . Tuy nhiên nó chỉ ra rằng
nghiệm đó tồn tại, không những thế nghiệm là duy nhất và điều kiện để biết đó là
nghiệm khi hàm sai số có ít nhất R+2 cực trị, các cực trị này có giá trị tuyệt đối bằng
nhau, hai cực trị liên tiếp có một là cực đại và một là cực tiểu. Để tìm ra hàm , thuật
toán trao đổi Remez được tiến hành như sau:

1. Chọn lấy R+2 điểm rời rạc, giả sử đó là các cực trị của hàm sai số
2. Trên cơ sở tại R+2 điểm rời rạc nói trên, hàm luân phiên đổi dấu và có trị
tuyệt đối bằng một giá trị δ nào đó, tính nội suy lại giá trị δ và hàm , từ đó
tính ra hàm sai số , tính được giá trị cực trị thực của hàm sai số đó.
3. Xem xét xem các giá trị rời rạc được chọn ban đầu có thực sự là các điểm
mà hàm sai số đạt cực trị và có trị tuyệt đối bằng nhau hay không. Nếu
không, tìm các điểm tại đó đạt cực trị.
4. Trong các điểm cực trị đó của lấy ra R+2 điểm và quay về lặp lại từ bước
2.
5. Lặp lại các bước 2, 3, và 4 cho đến khi tập hợp các điểm rời rạc hội tụ
6. Từ tập các điểm rời rạc cuối cùng, tính ra hàm , từ đó tính ra các hệ sốn(α).
Vòng lặp tiếp theo bao giờ cũng thu được R+2 điểm rời rạc tiến gần tới những cực
trị của hàm mà chúng ta mong muốn gần đúng với theo nghĩa Chebyshev hơn, và
cuối cùng nó sẽ hội tụ về các điểm cực trị thực. Một vấn đề trong việc sử dụng chương
trình máy tính để tìm ra nghiệm là máy tính không thể làm việc với các giá trị liên tục

trên miền S mà chỉ có khả năng tính toán trên tập các giá trị rời rạc. Thực tế ta có thể
thiết kế một lưới các giá trị rời rạc trên miền S rồi tính gần đúng trên đó.
Parks và McClellan đã đưa ra giải pháp sử dụng thuật toán Remez để tìm ra đáp
ứng xung của bộ lọc tối ưu nhất, tức là gần đúng theo nghĩa Chebyshev đối với một bộ
lọc lý tưởng, cho giá trị N là chiều dài của dãy đáp ứng xung nào đó với các điều kiện
ràng buộc về độ gợn sóng ở dải thông và dải chắn như sau:
1. Xác định loại bộ lọc, tính giá trị R và xây dựng các hàm , .
2. Xây dựng bài toán gần đúng bằng cách xác định các hàm .
3. Sử dụng thuật toán trao đổi Remez để tìm ra hàm tối ưu .
4. Tính các giá trị của dãy đáp ứng xung h(n).
1.3. Nâng cao chất lượng âm thanh trong thực tế.
1.3.1. Khả năng nghe của người bình thường.
a) Tần số:
- Tần số của âm thanh được định nghĩa là số dao động trọn vẹn được tạo ra trong 01
giây.
- Đơn vị đo của tần số là Hez được tính bằng đại lượng nghịch đảo của thời gian tạo ra
một dao động trọn vẹn.
Ví dụ: Ta có một dao động với t = 1 ms, tức là t = s
Khi đó ta có : F=1000 Hz
- Như vậy, với âm thanh cao thì số lần dao động trong một giây sẽ nhiều hơn số lần
dao động trong một giây của âm thanh trầm, tức là âm thanh cao thì tần số cao còn âm
thanh trầm thì tần số thấp.
- Các đơn vị khác của tần số:
1KHz = 1 000 Hz
1 MHz = 1 000 000 Hz
- Tần số âm thanh mà tai người nghe được nằm trong khoảng :
20 Hz - 20 000 Hz ( Với người trẻ tuổi)
100 Hz - 15 000 Hz ( Với người già)
- Độ nhạy thính giác cao nhất của tai người nghe nằm ở tần số 1000 Hz và màng nhỉ
cộng hưởng tốt nhất với dải tần từ 800 - 2000 Hz, chính vì lý do này mà khi hiệu

chỉnh âm thanh người ta thường không nâng cao tần số trong khoảng từ 800- 2000 Hz
lên nữa mà cần nâng cường độ của tần số Trầm hoặc Cao lên nhiều để bù vào mức
cảm thụ kém của tai người nghe ở những tần số này.
b) Bước sóng.
Bước sóng là khoảng cách giữa 2 điểm kế tiếp sau một chu kỳ dao động của
sóng lan truyền
- Ký hiệu : l (Lam đa)
- Đơn vị đo là : m (mét )
- Sự liên quan giữa bước sóng với tốc độ âm thanh được biểu hiện bằng công thức :
l=
Với C : Tốc độ âm thanh ( m)
F : Tần số (Hz)

Ví dụ: Ở tần số 150 Hz trong không khí thì bứơc sóng là : l = 2, 28 m
Như vậy, bứơc sóng của các tần số Trầm lớn hơn bước sóng của các tần số cao nên độ
lan toả ở trên mặt đất ít bị ngăn trở của vật chướng ngại hơn, vì lí do đó người ta
thường để loa Trầm ở vị trí thấp, và các loa tần số cao ở vị trí cao. Tuy nhiên tần số
Trầm dễ bị cộng hưởng với các kích thước của thùng loa hơn tần số cao.
2.1.3. Pha
Pha của một dao động được hiểu là chiều quy ước của dao động đó so với điểm
không tại thời điểm dao động đó đạt được biên độ từ 0 đến cực đại và trở về 0.
Ví dụ:
- Ở thời điểm từ 0 đến T1 là Fa dương.
- Ở thời điểm từ T1 đến T2 là Fa âm.
Trên thực tế, điều này rất quan trọng vì tại một thời điểm nếu hai dao động có cùng
một biên độ, cùng tần số nhưng ngược Fa nhau thì sẽ triệt tiêu lẫn nhau.
Ví dụ:
- Hai loa giống nhau để cạnh nhau và đấu ngược cực thì âm thanh phát ra với cùng
một nguồn tín hiệu sẽ bị ngược Fa nhau làm cho nhỏ đi và bị nghẹt.

- Hai micro đấu ngược Fa nhau nếu để cùng một người nói thì âm thanh sẽ bị ngược
Fa, kết quả là tiếng nói sẽ nhỏ đi hoặc bị nghẹt.
c) Dexiben
Khi thực hiện các phép tính toán trong lĩnh vực AUDIO, người ta thường sử
dụng một đơn vị đo là dB (Đề xi ben). Đơn vị đo này thực chất chỉ là một đơn vị đo
trung gian có tác dụng chuyển đổi các số đo từ hệ đếm PASCAL sang hệ đếm
LOGARIT. Sở dĩ có chuyển đổi này vì độ cảm thụ của tai người nghe đối với sự thay
đổi của cường độ âm thanh phù hợp với hệ đếm LOGARIT hơn, điều đó dẫn đến việc
tính toán, thiết kế các thiết bị âm thanh và các hệ thống loa được dễ dàng và chính xác
hơn.
Ví dụ: Khi ta nghe một thùng loa với công suất 100 W ta thấy rất lớn và ta sẽ nghĩa là
nếu để thêm một thùng nữa bên cạnh ta sẽ nghe lớn gấp đôi. Nhưng thực tế tai người
không cảm thấy như vậy mà chỉ cảm thấy lớn hơn một chút mà thôi.
Khi ta có 100 W thì Log 100 = 2 Bel = 20 dB. Tức là, nếu tại một điểm nào đó trong
không gian ta có 100 W âm thanh thì tại điểm đó, tai người sẽ cảm nhận được một áp
lực âm thanh (SPL) với đơn vị chuyển đổi là 20 dB
Giả sử cũng tại điểm đó, ta nâng công suất lên gấp đôi. Khi đó ta có:
Log 200 = 2,3 Bel = 23 dB
Như vậy, để tăng thêm 3 dB áp lực âm thanh lên tai người nghe. Ta phải tăng gấp đôi
công suất âm thanh.
Các kết quả thực nghiệm trên thực tế đối với tai người nghe cho thấy:
- Với ± 3 dB : Có cảm thấy khác biệt chút ít về độ lớn
- Với ± 6 dB : Cảm thấy rõ ràng sự thay đổi lớn
- Với ± 10 dB: Cảm thấy âm thanh lớn gấp đôi hoặc giảm một nữa

- Tai người không thể nghe quá 130 dB
- Tiếng còi hụ của xe lửa ở khoảng cách 1 m đạt 120 dB
Để đảm bảo đủ áp lực âm thanh với người nghe trong phòng cần:
- Với nhạc Disco : 115 dB

- Với nhạc Rock : 110 dB
- Với nhạc Pop : 100 dB
- Nhạc giao hưởng : 90 dB
1.3.2. Nâng cao chất lượng âm thanh qua phương pháp lọc âm.
Qua phần tổng quan về các đặc tính của âm thanh như pha, tần số, biên độ hay
bước sóng, nhóm chúng em xin trình bày về phương pháp lọc âm thanh để nâng cao
chất lượng âm thanh.
Trong thực tế, ta sử dụng bộ Equalizer để hiệu chỉnh tần số của âm thanh.
a) Khái niệm
Equalizer là bộ hiệu chỉnh tần số được sử dụng để cân chỉnh âm sắc của hệ
thống âm thanh sao cho đạt được hiệu ứng âm thanh tốt nhất với tai người nghe.
Tuỳ thuộc vào từng hệ thống loa và không gian biểu diễn công với tính chất của từng
buổi biểu diễn mà chúng ta hiệu chỉnh Equalizer sao cho phù hợp.
b) Octave
Định nghĩa: là dải tần số nằm giữa 2 nốt nhạc đồng âm.
Trong hệ thống ký âm của âm nhạc có 7 nốt đặc trưng cho cao độ của âm nhạc
là ĐÔ – RÊ - MI – FA – SOL – LA – SI, mỗi một nốt tương ứng với một tần số nhất
định và độ rộng của dải tần số nằm giữa nốt nhạc nào đó với nốt đồng âm kế tiếp đầu
tiên ( nốt thứ 8) được gọi là Octave.
Ví dụ: Đồ - Đố, Mì - Mí
Với những nhạc cụ có khoảng âm rộng có thể đạt tới 4 - 5 Octave.
Ví dụ: Đàn Piano, Keyboard..
Về phương tiện toán học để tính số Octave của một dải tần nằm giữa một tần số thấp f l
và một tần số cao hơn fh chúng ta có công thức sau:
N :là số Octave
fh: tần số cao tính bằng Hz
fl : tần số thấp tính bằng Hz
Ví dụ : Với dải tần tai người nghe được từ 10 - 20.000 Hz có bao nhiêu Octave
Để tìm N ta lấy Logarit của 2 bên .Ta có: N log 2 = log 1000= 10 Octave=
9,966

Như vậy nếu lấy độ rộng của một băng điều chỉnh là 1 Octave thì để điều chỉnh
hết độ rộng của dải tần số ta sẽ có một Equalizer 9 hoặc 10 Band (10 cần).
Thực tế người ta thường quan tâm đến tần số trung tâm của một dải tần số nào
đó và dựa vào nó để tính được hai biên tần số dưới và trên

Ví dụ: Tần số trung tâm là 1000 Hz độ rộng của dải là 1/3 Octave. Khi đó tính
từ tần số trung tâm độ rộng nửa trên, nửa dưới của dải là 1/6 Octave.
c) Một số loại lọc âm thanh:
Để loại bỏ hẳn 1 band tần nào đó không cần thiết người ta thiết kế các mạch lọc
để loại bỏ hẳn band tần đó và gọi các bộ lọc này là bộ lọc giải cao( High pass Filter HF) hoặc là bộ lọc giải thấp (low pass Filter – LF ) thực chất các mạch này chính là
mạch Equalizer với độ effê từ 6 -> 24 dB và band tần bị loại bỏ có độ rộng khoảng 1
Octave
- High pass Filter : Lọc dải cao . Có ý nghĩa là cho tần số phía trên đi qua và phía dưới
ở lại hay thực chất chính là mạch cắt tần số thấp( Low cut). Thông thường người ta cắt
từ 20 Hz - 100 Hz.
- Low pass filter : Lọc dải thấp tức là cho dải tần số phía dưới đi qua và cắt những tần
số ở phía trên , thực chất là mạch cắt tần số cao (Hight cut) Thông thường có thể cắt 1
Octave với các mức từ 800 Hz - 2,5 KHz - 10 KH
d) Ứng dụng trong thực tế.
- Tuyệt đối không lạm dụng Equalizer quá mức vì nếu cắt quá nhiều âm thanh sẽ bị
méo và bí, không còn trung thực nữa.
- Có thể sử dụng nhiều bộ lọc chất lượng cao và phức tạp hơn để nâng cao chất lượng
âm thanh.

CHƯƠNG II: GIỚI THIỆU VỀ PHẦN MỀM MATLAB
2.1. Giới thiệu chung về matlab
MABLAB, viết tắt của Matrix Labotary, là một công cụ phần mềm hỗ trợ tính
toán trên ma trận. MATLAB được tích hợp trên một môi trường chung một loạt các

khả năng bao gồm tính toán, hiển thị kết quả và lập trình nhằm giải quyết các vấn đề
liên quan đến toán học. Các vấn đề đó bao gồm:
• Các phương trình toán học và tính toán.
• Phát triển các giải thuật.
• Thu thập dữ liệu.
• Mô hình hoá, mô phỏng và tạo các mẫu theo thiết kế
• Phân tích, khảo sát và thể hiện dữ liệu bằng hình ảnh.
• Biểu diễn các biểu đồ mang tính khoa học và tính kỹ thuật.
• Phát triển các ứng dụng, bao gồm việc phát triển với các giao diện với người
sử dụng.
Ưu điểm nổi bật của MATLAB, như đã được đề cập ở trên, là khả năng tính
toán, đặc biệt là những bài toán liên quan đến ma trận và vector, với thời gian ít hơn
nhiều lần so với cùng một công việc tính toán trên các ngôn ngữ lập trình khác như C
hay Fortran. Khả năng lập trình của MATLAB cũng rất linh hoạt, cụ thể là trong việc
tạo ra các câu lệnh riêng và các hàm của riêng người sử dụng. Hệ thống MATLAB bao
gồm 5 phần chính sau:
• Môi trường phát triển: Là một tập hợp các công cụ, phần lớn trong chúng là
các giao diện đồ hoạ, giúp người dùng sử dụng các câu lệnh và các hàm của
MATLAB. • Thư viện các hàm toán học: Là một tập hợp các hàm toán học bao gồm
từ các hàm cơ bản như sin, cosin, các phép tính đại số phức đến các hàm phức tạp như
tìm ma trận đảo, tìm ma trận riêng, hàm Bessel và biến đổi Fourier nhanh (Fast
Fourier Transform – FFT).
• Ngôn ngữ lập trình: Là một ngôn ngữ bậc cao liên quan đến ma trận và mảng.
Trong MATLAB có đầy đủ những đặc trưng của một ngôn ngữ lập trình bao gồm các
lệnh rẽ nhánh, các hàm, cấu trúc dữ liệu, nhập/xuất dữ liệu, và các đặc tính liên quan
đến lập trình hướng đối tượng (object-oriented programming).
• Đồ hoạ: Là một tập hợp các công cụ để biểu diễn ma trận và vector bằng đồ
hoạ. Bên cạnh các công cụ ở mức thấp để thể hiện dữ liệu dạng 2 chiều và 3 chiều, xử
lý hình ảnh tĩnh, ảnh động còn có các công cụ ở mức cao dùng đểtạo ra các biểu diễn
đồ hoạ theo ý đồ của người sử dụng cũng như tạo ra các giao diện đồ hoạ người sử

dụng. • Các API: Là một thư viện cho phép người sử dụng gọi các hàm viết trên ngôn
ngữ C và Fortran. Chúng bao gồm cả các công cụ cho phép gọi các hàm từ MATLAB
dưới dạng liên kết động, và để đọc và ghi các tệp .MAT. MATLAB, bên cạnh khả
năng tính toán trên ma trận, đồng thời cũng là một ngôn ngữ lập trình mạnh. Các tệp
chương trình của MATLAB được ghi dưới dạng đuôi .m, được gọi là M-files. Có hai
loại tệp dạng đuôi .m:
- Tệp kịch bản (scripts): Loại tệp này không có các biến đầu vào và đầu ra, nó
đơn thuần chỉ xử lý dữ liệu với các biến trên vùng làm việc hiện thời (work space) của

MATLAB. Khi gõ tên tệp tại cửa sổ lệnh (command window), các lệnh được lưu trong
nội dung của tệp lần lượt được gọi ra theo một kịch bản tuần tự từ trên xuống dưới.
- Tệp mô tả hàm (functions): Loại tệp này cần khai báo các biến đầu vào và đầu
ra. Các biến được khai bên trong loại tệp này là các biến địa phương (local variables)
và chỉ có phạm vi ảnh hưởng tại chính hàm số đó. Nội dung trong các tệp này nhằm
mục đích tính toán các thông số đầu ra dựa trên các tham số đầu vào của hàm số. Tên
của tệp loại này cần trùng với tên của hàm số được khai báo và mô tả bên trong nội
dung của tệp.
Để khởi động MATLAB, người sử dụng có thể nháy đúp chuột vào biểu tượng
MATLAB 6.5 trên màn hình desktop hoặc vào menu Start -> All Programs ->
MATLAB 6.5 -> MATLAB 6.5 từ giao diện của Windows. Sau khi MATLAB được
khởi động, trên màn hình người sử dụng sẽ hiển thị lên môi trường phát triển tích hợp
của MATLAB bao gồm một số cửa sổ, trong đó có các cửa số quan trọng sau:
• Cửa sổ lệnh (Command Window): có chức năng thể hiện dấu nhắc để nhập
vào các lệnh từ bàn phím, và hiển thị kết quả tính toán sau khi gõ một lệnh hoặc gọi
một hàm.
• Cửa sổ các lệnh đã dùng (Command History): thể hiện danh mục các lệnh đã
gõ hoặc các hàm đã được gọi theo các phiên làm việc.
• Cửa sổ thư mục hiện thời (Current Directory): thể hiện danh sách các tệp
dạng đuôi .m đang tồn tại trong thư mục hiện thời. Để thay đổi thư mục hiện thời trên

cửa sổ nhỏ nằm ngay bên trên cửa số lệnh.
• Vùng làm việc (Workspace): thể hiện danh mục tất cả các biến bao gồm: tên
biến, giá trị hiện thời của biến, kiểu biến đang tồn tại ở phiên làm việc hiện tại. Ngoài
ra còn một loạt các cửa sổ khác sẽ được kích hoạt và hiển thị khi gọi một lệnh hoặc
chọn một mục trong phần Menu của MATLAB. Để biết thêm về các cửa số có thể
tham khảo thêm trong phần trợ giúp (Help) của MATLAB bằng cách nhấn phím F1.
Để soạn thảo một kịch bản hoặc một hàm, thực hiện chọn menu File -> New -> MFile hoặc nhắp chuột vào biểu tượng New M-File trên thanh công cụ (Toolbar). Trên
màn hình sẽ hiển thị lên cửa sổ soạn thảo (Editor) có đầy đủ các chức năng soạn thảo
giống như bất cứ môi trường soạn thảo của ngôn ngữ lập trình nào khác. Để xem trợ
giúp về một lệnh hay một hàm có sẵn nào đó của MATLAB, gõ lệnh help kèm theo
tên của lệnh hoặc hàm từ cửa sổ lệnh của MATLAB, ví dụ: >> help fft trên cửa số
lệnh sẽ đưa ra nội dung về chức năng, cú pháp cho các tham số vào/ra cho hàm thực
hiện phép biến đổi Fourier nhanh được MATLAB đặt dưới tên fft.
2.2. Mô phỏng lọc âm thanh trên MATLAB.
Phần này đưa ra danh mục các lệnh các hàm của MATLAB có thể sử dụng
trong phần thí nghiệm này. Để biết cụ thể hơn về chức năng của hàm và cú pháp của
lệnh gọi hàm, gõ lệnh help kèm theo tên của hàm tại cửa số lệnh của MATLAB.
zeros: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 0.
ones: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 1.
rand: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên được phân bố
đều trong khoảng từ 0 đến 1.

randn: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên theo phân
bố Gauss có giá trị trung bình bằng 0, phương sai bằng 1.
min: trả về giá trị nhỏ nhất trong một ma trận.
max: trả về giá trị lớn nhất trong một ma trận. fliplr: lộn ngược lại thứ tự các
phần tử trong một ma trận theo hướng xuất phát từ phải qua trái trở thành từ trái qua
phải.
plot và stem: vẽ đồ thị của một dãy số, plot để thể hiện dạng liên tục, stem để

thể hiện dạng rời rạc, thường sử dụng hàm stem để vẽ tín hiệu ở miền n.
conv: trả về tích chập của 2 vector.
filter: trả về đáp ứng theo thời gian của hệ thống được mô tả bởi một phương
trình sai phân tuyến tính hệ số hằng. Ngoài ra, có thể một cách rất cẩn thận các phép
toán trên ma trận và vector trong phần trợ giúp (Help) của MATLAB bằng cách nhấn
F1 rồi vào mục MATLAB -> Getting Started -> Matrices and Arrays.
abs, angle: trả về các hàm thể hiện Mođun và Agumen của một số phức.
real, imag: trả về các hàm thể hiện phần thực và phần ảo của một số phức
residuez: trả về các điểm cực và các hệ số tương ứng với các điểm cực đó trong
phân tích một hàm phân thức hữu tỷ ở miền Z thành các thành phần là các hàm phân
thức đơn giản, ngược lại nếu đầu vào là danh sách các điểm cực và các hệ số, hàm
residuez sẽ trả về hàm phân thức hữu tỷ ở miền Z.
poly: xây dựng một đa thức từ danh sách các nghiệm của nó.
ztrans: trả về biến đổi Z của một hàm số được định nghĩa theo công thức của
một biểu tượng (symbol).
iztrans: hàm ngược lại của hàm ztrans.
zplane: thể hiển phân bố điểm cực và điểm không của một hàm phân thức hữu
tỷ lên mặt phẳng Z.
fft: thực hiện biến đổi Fourier rời rạc của một dãy số có độ dài hữu hạn theo
thuật toán biến đổi Fourier nhanh và trả về kết quả biến đổi Fourier rời rạc của dãy số
đó.
clock: trả về thời gian thực hiện tại.
etime: trả về thời gian tính bằng giây giữa 2 thời điểm.
freqz: trả về đáp ứng tần số của một hệ thống tại một số hữu hạn các điểm rời
rạc trên vòng tròn đơn vị khi biết hàm truyền đạt của nó.
sin, cos, sinc: trả về các hàm toán học thể hiện các công thức lượng giác.
boxcar, bartlett, hanning, hamming, blackman, kaiser: trả về các hàm cửa sổ
với chiều dài cho trước.
firpm: thực hiện công việc tìm ra dãy đáp ứng xung của bộ lọc tối ưu theo
nghĩa Chebyshev bằng thuật toán của Parks và McClellan.

Ngoài ra, bộ công cụ Signal Processing Toolbox của MATLAB đã cung cấp rất
nhiều hàm hữu ích để thiết kế bộ lọc như fir1, fir2, firls... Thêm vào nữa bộ công cụ
này cũng cung cấp một gói phần mềm thiết kế sẵn với tên FDATool giúp các kỹ sư
giảm thời gian rất nhiều trong thiết kế các hệ s ố c ủa bộ l ọc. Tuy nhiên bộ công cụ
Signal Processing Toolbox có thể không được cung cấp kèm theo phiên bản phần

mềm MATLAB dành cho sinh viên thực hành. Đồng thời, để giúp sinh viên hiểu rõ
thêm về bản chất toán học trong quá trình thiết kế bộ lọc, phần thực hành này yêu cầu
tiến hành từng bước thiết kế các bộ lọc rất cụ thể. Chỉ có một hàm thiết kế bộ lọc có
sẵn trong bộ công cụ nên được dùng là firpm bởi xây dựng lại một chương trình phần
mềm theo thuật toán của Parks và McClellan dùng thuật toán trao đổi Remez là khá
phức tạp.

CHƯƠNG III: MÔ PHỎNG PHƯƠNG PHÁP LỌC ÂM THANH TRÊN
MATLAB
3.1. Ví dụ về mô phỏng bước rời rạc âm thanh.
MatLab làm việc với file âm thanh có phần mở rộng là “wav”, mã hóa kiểu
PCM (Pulse Code Modulation). Để thực hành phần này, file âm thanh, chẳng hạn
example.wav, cần phải được copy vào thư mục hiện hành. Thư mục hiện hành thông
thường là thư mục WORK, hoặc thư mục MATLAB…(copy file vào thư mục Matlab
ở Document).
Khi phân tích phổ ta chỉ cần lấy một nửa số mẫu là: âm thanh (tiếng nói) là tín
hiệu thực nên phổ của chúng có tính đối xứng, do đó khi thực hiện phân tích phổ ta
chỉ cần lấy một nửa số mẫu là được.
Chẳng hạn thư mục hiện hành là MATLAB có chứa file âm thanh song
toan.wav, file này mang nội dung: “Tên tôi là ĐẶNG SONG TOÀN lớp ra đa 1 - Bài
tập xử lý tín hiệu số”.
Sử dụng lệnh wavread để đọc file:

>> [s,fs]= wavread(‘song toan.wav’); hoặc >> [s,fs]= wavread(‘song toan’);
(Lưu ý đặt dấu ; đằng sau lệnh!)
Sau khi thực hiện lệnh này, biến s chứa dữ liệu âm thanh, biến fs chứa tần số rời rạc
hóa. Để xem tần số rời rạc hóa, ta nhập vào:
>>fs
Fs=8000
Như vậy file âm thanh song toan.wav có tần số rời rạc hóa bằng 8Khz.
Bây giờ thực hiện phân tích phổ cho tín hiệu s:
Trên cửa sổ lệnh Matlab ta gõ các lệnh sau:
>> N=length(s);
>> M=round(N/2);
>> S=fft(s);
>> f=fs*(1:M)/N; % Lấy ra lưới tần số vật lý ( đo bằng Hz)
>> PhoBD=abs(S);
>> Pho=PhoBD(1:M);% Chỉ lấy một nửa số mẫu.
>> plot(f,Pho)
>> title('pho cua file am thanh Song toan.wav,DANG SONG TOAN M-T-A');

Ta nhận được : Đồ thị phổ âm thanh như sau:

Hình 3.1:Phổ pha âm thanh
* Nhận xét: Từ hình trên ta nhận thấy phổ của file âm thanh song toan.wav tập
trung chủ yếu ở khu vực 500-1000 Hz, tần số cực đại của phổ khoảng 4000 Hz.
3.2. Cách mô phỏng trên matlab:
[s, fs]=audioread('filename.wav');
N=length(s);
n=[1:N];
M=round(N/2);
S=fft(s);

f=fs*(1:M)/N
phobd=abs(S);
pho=phobd(1:M);
plot(f,pho);
v= 0.045*sin(2*pi*3600*n/fs);
p=s+v';
P=fft(p);
phobd1=abs(P);
pho1=phobd1(1:M);

plot(f,pho1);
b= fir1(60, 3000/4000,'low');
freqz(b,1,512);
y=filter(b,1,p);
soundsc(y,fs);
audiowrite(‘D:\locthongthap.wav’,y,fs);
Y=fft(y);
phobd2=abs(Y);
pho2=phobd2(1:M);
plot(f,pho2);
subplot(3,1,1); %3 hàng, 1 cột, góc phần tư thứ nhất
plot(f,pho);
title('pho cua file am thanh');
subplot(3,1,2); %3 hàng, 1 cột, góc phần tư thứ 2
plot(f, pho1);
title('pho cua file am thanh khi co nhieu');
subplot(3,1,3); %3 hàng, 1 cột, góc phần tư thứ 3
plot(f, pho2);
title('pho cua file am thanh khi da triet nhieu');

3. Giải thích cách mô phỏng.
- Dùng lệnh audioread để đọc file *.wav : cách dùng [s,fs]=audioread(‘filename’);
Trong đó :

s là dữ liệu của mẫu, s là 1 vector.
fs là tần số của mẫu đơn vị là Hz.
Filename là tên của file cần xử lý

>> [s, fs]=audioread('*.wav');
- Dùng lệnh soundsc(s,fs) để phát bản nhạc trong matlab.
- Tính chiều dài của vector s ta dùng lệnh length:
N=length(s);
Tạo chuỗi chạy n từ 1 đến hết chiều dài N của vector s:
n=[1:N];
- Khi phân tích phổ ta chỉ cần lấy một nửa số mẫu là: âm thanh (tiếng nói) là tín hiệu
thực nên phổ của chúng có tính đối xứng, do đó khi thực hiện phân tích phổ ta chỉ cần
lấy một nửa số mẫu là được. Do đó ta có:
M=round(N/2);
- Hàm phân tích phổ fft.
Cú pháp thường dùng: S=fft(s).
Với s là tín hiệu rời rạc có chiều dài N, S là DFT của s, số mẫu của S cũng bằng N.