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 (898.2 KB, 120 trang )
Hình 4.3
với k=100 sóng có dạng gần với dạng lý tởng hơn.
Hình 4.4
Nguyên tắc biến đổi chuỗi Fourier tính theo công thức :
V ( f ) = F [ v(t )] =
v (t ) e
2iift
dt
(4.2)
v (t ) = F
1
= V ( f )e 2ift dt
(4.3)
Dựa theo công thức Euler:
e i =cos +i sin
(4.4)
chúng ta viết lại chuỗi Fourier dới dạng khác. Ví dụ nó đợc viết dới dạng tổng
các hàm sine-cosin nh sau:
n =0
n=
1
x (t ) = n cos(2nf 0t ) + n sin( 2nf 0t )
a
b
trong đó
41
f 0 = frequence
f n =nth _ harmonic _ of _ f 0
Nh ta đã biết khai triển chuỗi Fourier có các hệ số đợc tính theo hàm thời
gian x(t). Các hệ số sine-cosin của bậc thứ nth đợc tính:
a0 =
1
T
T
0
x(t ) dt
2 T
x(t ) cos(2nf 0t )dt
0
T
2 T
bn = x(t ) sin( 2nf 0t ) dt
T 0
b0 =
Biểu diễn chuỗi Fourier dới dạng biên độ- pha. Kết quả này có đợc nhờ vào
công thức Euler:
x (t ) = c0 + n cos( 2 0t +n )
c
f
n=
1
1
c0 =
T
T
0
x (t ) dt
2
2
cn = an + bn
bn
an
n = tan 1
Nói chung việc chọn lựa dạng nào của chuỗi Fourier chỉ là sự chọn lựa
dạng nào mà ngời sử dụng a nhất, dễ dàng cho mình nhất, bởi vì tất cả các dạng
biểu diễn đều có giá trị nh nhau. Biến đổi Furier có một số đặc tính lý thú, và
mặc dù nằm ngoài phạm vi nghiên cứu của ta nếu bàn đến tất cả, tuy vậy chúng
ta sẽ đa ra một số các đặc tính đó.
Một sóng bất kì đợc biểu diễn bằng tổng của các thành phần sine-cosin nh
trong công thức 4.1. Một tín hiệu bất kì cho phổ liên tục và vô hạn, theo các
công thức 4.2 và 4.3. Điều này có nghĩa là những tín hiệu đợc giới hạn về thời
gian sẽ có băng thông là vô tận.
Băng thông của một tín hiệu đợc hiểu là độ rộng phổ, phần mà năng lợng
của tín hiệu tập trung hầu hết tại đó. Năng lợng trung bình trong một khoảng
thời gian đợc tính theo công thức:
P=
1
t1 t 2
t2
t1
| x(t ) |2
(4.5)
năng lợng trung bình trong một chu kì T:
P=
1
T
T
| x(t ) |
0
2
dt
(4.6)
PDS-mật độ phổ năng lợng (power spectral desity) là năng lợng tại một tần
số xác định S(f). Chuơng 5 sẽ đề cập tới cách tính toán PSD một cách chi tiết
hơn. Biến đổi Furier là rất quan trọng bởi nó cho phép ta tính toán trong miền
tần số cũng nh trong miền thời gian. Dới đây là một số các tính chất của biến đổi
Furier .
42
Nguyên tắc xếp chồng các tín hiệu trong miền thời gian đợc chuyển sang
miền tần số:
a1V1 ( f ) + [a1v1 (t) +
a2V2 ( f ) =a2v2 (t)]
F
(4.7)
Độ trễ thời gian là nguyên nhân gây sự dịch pha trong miền tần số:
V ( f )e
( v (t
= ))
F
t
2 iif
(4.8)
d
Phép tỉ lệ trong hai miền có quan hệ:
0
1
f
V = t )),
F
( v(
|a|
(4.9)
Nguyên tắc chuyển đổi phép nhân tín hiệu từ miền thời gian sang miền tần
số:
V * W ( f ) = F (v (t ) w(t ))
(4.10)
trong đó:
)d
V *W ( f ) )W ( f
V(
(4.11)
Lấy mẫu tín hiệu
Quá trình chuyển đổi tín hiệu tơng tự - số đợc bắt đầu với quá trình lấy mẫu.
Trên hình 4.5 là sơ đồ khối tổng quát, tuy việc lấy mẫu và xây dựng lại cấu trúc
của tín hiệu có thể không cần trong khi tiến hành số hoá tín hiệu, nhng điều này
là cần thiết để đa ra cách tổng hợp các sóng điều hoà tạo thành tín hiệu cấu trúc
lại.
v(t)
R Amplifier
Low-pass-fillter
out put
fs
Hình 4.5
Trên hình 4.5 tín hiệu đầu vào v(t) là tín hiệu liên tục, đợc lấy mẫu với tần số
fs sử dụng một chuyển mạch điện. Đầu ra của chuyển mạch đa vào bộ khuếch đại
với hệ số R. Về mặt toán học, hàm lấy mẫu đợc ấn định bằng cách nhân xung
Diracdelta với tín hiệu v(t) trong miền thời gian. Hàm xung Diracdelta (t) đợc
định nghĩa nh sau:
( t ) dt = 1
(4.12)
43
ở đây là một thay đổi nhỏ. Hàm Diracdelta là một thay đổi đột ngột xuất hiện
tại thời điểm t=0 và chúng ta có thể sử dụng hàm Diracdelta tại một thời điểm bất
kì dới dạng:
(4.13)
(t t d )
Hơn nữa chúng ta có thể xem hàm lấy mẫu là tổng của các hàm Diracdelta
tại các thời điểm khác nhau:
(t
s (t ) = n f s )
(4.14)
n=
Hàm chuyển mạch nhân với hàm tín hiệu v(t) cho ta tín hiệu đã đợc lấy mẫu:
vs (t ) = v (t ) s (t ) = v(t ) (t n / f s )
(4.15)
n =
Nhớ lại phép chuyển đổi tính nhân từ miền thời gian sang miền tần số
V ( f ) = F [ vs (t )] = V ( f ) * S ( f )
(4.16)
ta có biến đổi Furier của tín hiệu trong miền tần số nh sau:
Vs ( f ) = V ( F ) * f s ( f nf s )
n =
(4.17)
Cuối cùng, chúng ta xem một tín hiệu lấy mẫu với tần số lấy mẫu fs cho phổ:
V( f ) = fs
V ( f
n =
nf s )
(4.18)
4.2 - Các file Audio
Trong phần này chúng ta tìm hiểu cách đọc, chơi, hiện thị và ghi những file
tín hiệu âm thanh nh thế nào. Java API hiện nay cho phép mở và chơi các file âm
thanh nhng không cho phép giải mã chúng. Các lệnh mà chúng ta đa ra trong chơng trình đợc mở rộng và xây dựng trên cơ sở của Java API.
Gói Sun.audio
AudioData, AudioDataStream, AudioPlayer, AudioStreamSequence
và AudioDataStream là các lớp có kiểu public nằm trong gói sun.audio.
Một đoạn trích dữ liệu âm thanh đợc mã hoá theo luật à, 8 bits, tần số lấy
mẫu 8000 Hz. Dữ liệu này có thể đợc sử dụng làm một luồng vào cho
AudioDataStream. Phơng thức getAudioData nạp đoạn dữ liệu từ khay đệm
cache. AudioStream là luồng dữ liệu đa vào AudioData để chạy. Để tham khảo
thêm về gói sun.audio ta có thể liên hệ theo địa chỉ:
http://www.cdt.luth.se/java/doc/sun/shared/Package-sun.audio.html
44