Mục Lục
Mở đầu..........................................................................................3
Chương 1: Tổng quan về Tín hiệu số và hệ thống xử lý tín
hiệu số............................................................................................5
1.1. Tín hiệu và hệ thống xử lý tín hiệu số.............................................5
1.1.1. Tín hiệu rời rạc theo thời gian:....................................................5
1.1.2. Các hệ thống xử lý tín hiệu số...................................................14
1.2. Lấy mẫu và khôi phục tín hiệu......................................................19
1.2.1. Lấy mẫu.....................................................................................20
1.2.2. Khôi phục tín hiệu.....................................................................22
1.3. Xử lý tín hiệu trong miền thời gian và miền tần số....................25
1.3.1. Xử lý tín hiệu trong miền thời gian...........................................25
1.3.2. Xử lý tín hiệu trong miền tần số................................................32
Chương 2: Biến đổi Fourier rời rạc..........................................44
2.1. Lấy mẫu trong miền tần số: Biến đổi Fourier rời rạc.................44
2.1.1. Lấy mẫu trong miền tần số và khôi phục lại tín hiệu rời rạc theo
thời gian...............................................................................................44
2.1.2. Biến đổi Fourier rời rạc(DFT)...................................................48
2.2. Phân tích tín hiệu trong miền tần số bằng DFT..........................49
2.3. Trình ứng dụng của DFT...............................................................53
2.3.1. Phân tích phổ của tín hiệu.........................................................53
2.3.2. Đáp ứng của hệ thống trong miền tần số...................................54
2.3.3. Công thức tổng chập trong miền tần số.....................................56
Chương 3: thuật toán biến đổi nhanh Fourier( FFT ) - cấu
trúc file wave...............................................................................57
3.1. Tính toán nhanh DFT – các thuật toán FFT...............................57
3.1.1. Phương pháp tính trực tiếp của DFT.........................................57
3.1.2. Phương pháp chia nhỏ để tính DFT..........................................58
3.1.3. Thuật toán FFT cơ số 2 phân chia theo thời gian......................64
3.1.4.Ví dụ về tính toán fft cơ số hai với n=16...................................71
3.2. Cấu trúc file Wave..........................................................................78
3.2.1. Multimedia Windows................................................................78
3.2.2. Cấu trúc Wave file....................................................................80
CHƯƠNG 4: Thiết kế và xây dựng chương trình hiển thị phổ
tín hiệu file wave.........................................................................87
4.1. lưu đồ thuật giải và cấu trúc dữ liệu.............................................87
4.1.1. Sơ đồ khối.................................................................................87
4.1.2. Cấu trúc dữ liệu và định nghĩa..................................................88
4.2. Giao diện và thuyết minh chương trình.......................................91
Kết luận.......................................................................................94
Tài liệu tham khảo.....................................................................96
2
Mở đầu
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ưa từng thấy như hiện nay trên toàn thế giới thúc đẩy loài người
nhanh chóng bước sang một kỷ nguyên mới. Đó là kỷ nguyên của nền văn
minh dựa trên cơ sở công nghiệp trí tuệ. Mở đầu cho cho cuộc cách mạng
khoa học và công nghệ lần này có thể được đánh dấu bằng sự ra đời và phát
triển của máy tính cũng như các phương tiện xử lý thông tin khác, đặc biệt
là các hệ thống sử lý song song với tốc độ ngày càng cao. Cùng với sự phát
triển ngày càng nhanh chóng các công cụ sử lý tín hiệu số hiện đại. Đặc
biệt các phương pháp sử lý số này phải áp dụng có hiệu quả trong các lĩnh
vực thông tin liên lạc,phát thanh truyền hình,tự động điều khiển và các
nghành công nghệ khác. ở bất cứ nơi đâu bạn cũng sẽ gặp rất nhiều những
vật dụng trong cuộc sống được áp dụng kỹ thuật số, từ những vật dụng rất
đơn giản như những món đồ chơi trẻ em đến các vật dụng loại Hi – End đắt
tiền trong gia đình, ứng dụng trong truyền thông, các thiết bị chuyên dùng
trong truyền thông, phát thanh, truyền hình, các thiết bị của ngành khoa
học, y tế, giáo dục… đều được các nhà sản xuất tận dụng tối đa những ưu
thế của công nghệ số đưa vào trong sản phẩm của mình. Những chiếc máy
ảnh kỹ thuật số, máy tính số … với tốc độ phân giải cao nhưng kích thước
chỉ cỡ một bao thuốc lá, thậm chí là mỏng và nhỏ hơn, rất thời trang và rất
nhẹ đang dần thay thế những chiếc máy ảnh vận hành bằng cơ khí cổ điển
rất thịnh hành ở những năm cuối thế kỷ trước mà có lẽ bây giờ khi đi du
lịch, mang theo nó là một vấn đề cần phải cân nhắc, xem xét. Còn về các
dịch vụ viễn thông đa phương tiện, chắc chúng ta còn nhớ đến những chiếc
máy điện thoại để bàn quay tay, muốn thực hiện cuộc gọi thì phải đăng ký
với tổng đài, thì bây giờ tổng đài số đã được thay thế, các cuộc điện thoại
3
dùng cách gọi trực tiếp quay số IDD hết sức dễ dàng, tiện dụng. Sự phát
triển bùng nổ của công nghệ thông tin làm cho các dịch vụ Internet trở nên
gần gũi và giúp cho con người trên toàn thế giới có thể trao đổi và cập nhật
thông tin trực tuyến.
Đó chính là những thành quả thấy rất rõ của việc áp dụng kỹ thuật số
mà trong đó phân tích và xử lý tín hiệu số là vấn đề cốt lõi, căn bản của hệ
thống số. Đề tài: “ Nghiên cứu thuật toán FFT và xây dựng ứng
dụng phân tích phổ của tín hiệu” sẽ làm rõ hơn về vấn đề này.
Trong phạm vi của đề tài, em đã giải quyết được một số vấn đề sau:
Chương I: Tổng quan về tín hiệu và hệ thống xử lý tín hiệu số
Chương II: Biến đổi tín hiệu Fourier rời rạc
Chương III: Thuật toán biến đổi nhanh Fourier (FFT) và Cấu
trúc file Wave.
Chương IV: Thiết kế và xây dựng chương trình hiển thị phổ tín
hiệu file Wave.
Qua thời gian nghiên cứu, tìm hiểu ứng dụng. Đặc biệt được sự giúp
đỡ tận tình của Thầy giáo Tiến sỹ Dương Tử Cường, đề tài của em đã
được hoàn thành. Tuy vậy, không thể không có những thiếu sót vì đây là
một vấn đề còn mới, ít tài liệu đề cập đến hoặc có đề cập thì cũng chỉ sơ sài
chung chung, khó có thể thuật toán hoá, chương trình hoá. Em rất mong
được sự đóng góp chân thành của các thầy cô giáo và những người quan
tâm đến vấn đề này để đề tài của em được hoàn thiện hơn. Em xin chân
thành cảm ơn sự giúp đỡ nhiệt tình của bạn bè, thầy cô giáo đặc biệt là
Thầy giáo TS Dương Tử Cường đã hướng dẫn và quan sát quá trình thực
hiện đề tài của em.
4
Chương 1: Tổng quan về Tín hiệu và hệ thống xử lý tín hiệu
số
1.1. Tín hiệu và hệ thống xử lý tín hiệu số.
1.1.1. Tín hiệu rời rạc theo thời gian:
Định nghĩa tín hiệu: Tín hiệu là biểu diễn vật lý của thông tin.
Về mặt toán học, tín hiệu được biểu diễn bởi hàm của một hoặc nhiều
biến số độc lập. Nếu biến độc lập của sự biểu diễn toán học của một tín
hiệu là liên tục thì tín hiệu đó được gọi là tín hiệu liên tục. Còn nếu tín hiệu
được biểu diễn bởi hàm của các biến rời rạc, thì tín hiệu đó được gọi là tín
hiệu rời rạc( rời rạc ở đây được hiểu là rời rạc theo biến số). Hàm của tín
hiệu rời rạc là rời rạc thì tín hiệu đó được gọi là tín hiệu số.
Tín hiệu rời rạc theo thời gian là một chuỗi số có chỉ số( được định chỉ
số) các số thực hoặc số phức. Như vậy tín hiệu rời rạc theo thời gian là hàm
của biến độc lập có kiểu số nguyên n( biến nguyên n), ta kí hiệu là x(n).
Một điều quan trọng cần phải lưu ý là tín hiệu rời rạc theo thời gian không
được định nghĩa ở các thời điểm nằm giữa hai mẫu liên tiếp nhau. Cũng sẽ
không đúng nếu cho rằng x(n) sẽ có giá trị bằng 0 nếu giá trị của x(n)
không phải là số nguyên. Rất đơn giản, tín hiệu x(n) chỉ được định nghĩa
đối với các giá trị nguyên của n. Do vậy một tín hiệu có giá trị thực x(n) sẽ
được biểu diễn bằng đồ thị ở dạng giản đồ lollipop như được trình bày
trong hình 1.1.
5
3
2.5
2
1.8
1.8
1.3
0.5
4
-3
-5
-4
-2
-1
0
1
- 1.8
2
....
n
3
- 1.3
Hình 1.1. Biểu diễn đồ thị của tín hiệu rời rạc theo thời
gian
Trong nhiều bài toán cũng như trong nhiều ứng dụng, để thuận lợi ta
xem x(n) như là một vector. Các giá trị từ x(0) đến x(N-1) của chuỗi thường
được khảo sát như là các phần tử của một vector cột như sau:
x= [x(0), x(1), … , x(N-1)]T.
Trong khi nghiên cứu, chúng ta giả sử rằng tín hiệu rời rạc theo thời
gian được định nghĩa đối với giá trị nguyên của n thuộc khoảng - ∞ < n < +
∞. Theo qui ước chúng ta cũng sẽ xem x(n) như là “ mẫu thứ n” của tín
hiệu, thậm chí nếu tín hiệu này vốn đã là tín hiệu rời rạc( không phải là kết
quả của quá trình lấy mẫu tín hiệu rời rạc). Nếu cho rằng x(n) là tín hiệu
nhận được do quá trình lấy mẫu của tín hiệu tương tự xa(t) thì x(n) = x(nT),
trong đó T là chu kỳ lấy mẫu( thời gian giữa hai lần lấy mẫu liên tiếp nhau).
Chú ý: Chúng ta sẽ sử dụng x(n) như là cách viết đơn giản của x(nT)
hoặc hiểu là với T = 1.
Thông thường ta nhận được các tín hiệu rời rạc theo thời gian từ việc
lấy mẫu một tín hiệu thời gian liên tục( continuous-time signal) kết hợp với
bộ biến đổi tương tự – số ADC( analog to digital converter). Thí dụ như tín
hiệu liên tục xa(t) được lấy mẫu với tần số lấy mẫu là fs = 1/Ts( nghĩa là
6
trong 1 giây ta có fs mẫu) để tạo ra tín hiệu được lấy mẫu ( rời rạc theo thời
gian ) x(n), x(n) quan hệ với xa(t) như sau: x(n) = xa(nTs).
Tuy nhiên không phải tất cả các tín hiệu rời rạc theo thời gian đều có
được theo cách trên. Một số tín hiệu được khảo sát là các chuỗi xuất hiện
một cách tự nhiên rời rạc theo thời gian mà không cần đến bộ biến đổi
tương tự - số để biến đổi tín hiệu tương tự thành tín hiệu rời rạc theo thời
gian. Ví dụ cho tín hiệu loại này như giá cả hàng ngày trên thị trường cổ
phiếu, thống kê dân số, kiểm kê kho hàng và các số vệt đen ở bề mặt của
mặt trời.v.v…
Ngoài phương pháp sử dụng đồ thị như mô tả trên hình 1.1 còn có một
số phương pháp khác tương đối thuận tiện được dùng để biểu diễn tín hiệu(
hoặc dãy) rời rạc theo thời gian. Các phương pháp này bao gồm:
a. Biểu diễn bằng hàm
Ví dụ:
1, với n = 1, 4
3, với n = 2
0, với các giá trị n khác
x(n) =
(1.1.1)
b. Biểu diễn bằng bảng
Ví dụ:
n
...
-2
-1
0
1
2
3
4
5
6
...
0
0
0
1
3
0
1
0
0
...
x(n)
…
c. Biểu diễn qua dãy số
Ví dụ:
7
Tín hiệu hoặc dãy vô hạn được mô tả qua ví dụ dưới đây:
x(n) = {... 0, 0, 0, 1, 3, 0, 1, 0, 0, ...}
Trong đó kí hiệu
(1.1.2)
dùng để chỉ thời điểm gốc( n = 0).
Dãy x(n) có giá trị bằng 0 với n < 0 được biểu diễn bằng cách sau:
x(n) = {0, 1, 3, 0, 1, 0, 0, ...}
(1.1.3)
ở đây thời điểm gốc đối với dãy x(n) với giá trị bằng 0 nếu n < 0 được
hiểu như là điểm bên trái nhất của dãy.
Dãy hữu hạn có thể được biểu diễn bằng cách:
x(n) = {3, -1, -2, 5, 0, 1, 0, 9}
(1.1.4)
Nếu dãy hữu hạn thoả mãn điều kiện x(n) = 0 với n < 0 thì dãy có thể
được biểu diễn theo cách như sau:
x(n) = {0, 1, 3, 0, 1}
(1.1.5)
Tín hiệu trong (1.1.4) có chứa 8 giá trị mẫu hoặc tám điểm (theo thời
gian) và được gọi là dãy có tám điểm. Cũng tương tự như vậy, dãy biểu
diễn bởi (1.1.5) là dãy 5 điểm.
1. Tín hiệu phức
Một cách tổng quát, tín hiệu rời rạc theo thời gian có thể có giá trị
phức. Thật vậy, trong một số ứng dụng quan trong như thông tin số, các tín
hiệu phức phát sinh một cách tự nhiên. Tín hiệu phức có thể được biểu diễn
bằng các phần thực ( real part ) và phần ảo( imaginary part).
z(n) = a(n) + jb(n) = Re{z(n)} + jIm{z(n)}
hoặc được biểu diễn ở dạng cực( polar form) theo biên độ( amplitude) và
pha( phase)
z(n) = │z(n)│exp[jarg{z(n)}]
Biên độ có thể được suy ra từ các phần thực và phần ảo như sau:
│z(n)│2 = Re2{z(n)} + Im2{z(n)}
Trong khi đó pha được tính theo công thức
arg{z(n)} = tan-1Im{z(n)}/Re{z(n)}
8
Nếu z(n) là một chuỗi phức, liên hợp phức( complex conjugate) ký
hiệu là z*(n) được thành lập bằng cách thay đổi dấu trong phần ảo của z(n)
z*(n) = Re{z(n)} - jIm{z(n)} = │z(n)│exp[- jarg{z(n)}]
2. Một vài tín hiệu rời rạc cơ bản.
Mặc dù hầu hết các tín hiệu mang thông tin trong thực tế là các hàm
phức tạp theo thời gian( complicated functions of time ), nhưng dưới đây là
một số tín hiệu rời rạc theo thời gian tuy đơn gian nhưng rất quan trọng. Nó
rất hay xuất hiện và thường được sử dụng trong lý thuyết về tín hiệu và hệ
thống rời rạc theo thời gian để biểu diễn và mô tả các tín hiệu phức tạp hơn.
Các tín hiệu cơ bản này là: xung đơn vị( unit sample), nấc đơn vị( unit
step), tín hiệu dốc đơn vị và hàm mũ( exponential)
a. Dãy mẫu đơn vị
Tín hiệu này còn được gọi là dãy xung đơn vị và được định nghĩa như
sau:
(n) =
1, với n = 0
0, với n ≠ 0
(1.1.6)
Như vậy, dãy mẫu đơn vị là tín hiệu chỉ có một giá trị duy nhất bằng 1
đơn vị tại thời điểm n = 0 trong khi tất cả các giá trị còn lại đều bằng 0.
Khác với xung đơn vị (n) của tín hiệu tương tự, dãy mẫu đơn vị về mặt
toán học không vướng và phức tạp như tín hiệu này. Tín hiệu dãy xung đơn
vị đóng một vai trò hết sức quan trọng và được mô tả bằng đồ thị như trên
hình 1.2.
9
(n)
1
2 3
….
n
-3 -2 -1 0 1
Hình 1.2. Biểu diễn đồ thị của tín hiệu mẫu đơn vị
b. Dãy nhảy bậc đơn vị
Dãy này còn được gọi là tín hiệu nhảy bậc đơn vị hay hàm bậc thang
và được định nghĩa qua hàm sau:
1, với n ≥ 0
0, với n < 0
(n) =
(1.1.7)
Giữa tín hiệu nhẩy bậc đơn vị và tín hiệu xung đơn vị có mối quan hệ:
n
u ( n ) ( n k )
k 0
Tương tự, một xung đơn vị có thể được viết thành sai biệt của hai tín
hiệu nấc đơn vị:
(n) = u(n) – u(n - 1)
Tín hiệu nhảy bậc đơn vị được mô tả trên hình 1.3.
u(n)
1
2 3
…
n
-3 -2 -1 0 1
Hình 1.3. Biểu diễn bằng đồ thị tín hiệu nhẩy bậc đơn
vị
c. Tín hiệu dốc đơn vị
10
Tín hiệu này được ký hiệu bằng ur(n) và được định nghĩa qua công
thức:
ur(n) =
n, với n ≥ 0
0, với n < 0
(1.1.8)
Tín hiệu này được mô tả trên hình 1.4.
ur(n)
2 3
…
n
-3 -2 -1 0 1
Hình 1.4. Biểu diễn bằng đồ thị tín hiệu dốc đơn vị
d. Hàm mũ
Chuỗi hàm mũ được định nghĩa bởi x(n) = an trong đó a là số thực
hoặc số phức. Chuỗi hàm mũ có tầm quan trọng đặc biệt khi
a e j0 với
0 là một số thực. Trong trường hợp này, x(n) là một hàm mũ phức:
e j0 cos(n 0 ) j sin( n 0 ) .
Nghiên cứu các hàm mũ phức rất hữu ích trong việc phân rã
Fourier( Fourier decomposition) các tín hiệu.
3. Phân loại tín hiệu rời rạc
Các phương pháp toán học được dùng trong việc phân tích tín hiệu và
hệ thống rời rạc theo thời gian hoàn toàn phụ thuộc vào đặc thù của tín
11
hiệu. Dưới đây chúng ta sẽ phân loại các tín hiệu rời rạc theo thời gian tuỳ
theo các đặc thù này.
a. Tín hiệu năng lượng và tín hiệu công suất
Năng lượng E của tín hiệu x(n) được định nghĩa bằng công thức:
E | x ( n) | 2
n
(1.1.9)
Trong đó |x(n)| là modul của tín hiệu. Với cách định nghĩa này thì công
thức (1.1.9) có thể được sử dụng để tính năng lượng của tín hiệu phức
cũng như tín hiệu thực.
Năng lượng của tín hiệu có thể là hữu hạn hay vô hạn. Nếu E là hữu
hạn (0
- Xem thêm -