245
Chương 10
BIỂU DIỄN PH DỮ LIỆU VÀ LỌC
10.1 BIỂU DIỄN PHỔ DỮ LIỆU
Phân tích ph dữ liệu là mt trong các phương pháp phân tích một hàm s
đã cho thành mt chuỗi dãy các hàm đã biết. Một trong các phương pháp này rất
quen thuộc, đó là chui Taylor. Trong trường hợp này, chúng ta khai triển hàm
đã cho bởi tổng ca các đa thức đơn giản có dạng xn. Khi đó hàm f(x) có dạng:
f(x) = a0 + a1x + a2x2 + a3x3+...
trong đó các hs thể tìm được một cách khá ddàng. Biểu diễn một hàm
theo phương pháp chui Taylor là một phương pháp khác để mô tả hàm. Điều đó
nghĩa là việc tả hàm f(x) tp các h số của chuỗi Taylor ơng đương.
Thí dụ, hàm exp(x) tập {1, 1, ,...
!
4
1
,
!
3
1
,
!
2
1 } tương đương với nhau vì chai
cùng biểu diễn hàm lu thừa.
Một biểu diễn phổ khác sử dụng ý ởng tương tự nhưng với các hàm khai
triển khác. Người ta sử dụng các hàm lượng giác và cgắng khai triển hàm số đã
cho dưới dạng chuỗi Fourier như sau:
f(x) = a0 + a1cosx + a2cos2x + a3cos3x +...
+ b1sinx + b2sin2x + b3sin3x +...
tất cả các số hạng của chuỗi đều tuần hoàn với chu kì 2
, nên hàm f(x)
cũng tun hoàn với chu kì 2
. Như vậy hàm f(x) thbiểu diễn bởi 2 dãy s
thực {ak} và {bk}. Bằng cách sử dụng dạng Euler của số phức:
eix = cos x + i sin x cos nx =
2
1(einx+ e-inx) sin nx =
i
2
1(einx- e-inx),
Do đó ta có:
2 2
2 1 1 2
0
2 2
2 1 1 2
( ) ... ...
2 2 2 2
... ...
2 2 2 2
ix ix ix ix
ix ix ix ix
a a a a
f x e e a e e
b b b b
e e e e
Bằng cách kí hiệu: ck =
2
1(ak-ibk) ta nhận được chuỗi Fourier dng phức:
f(x)=.
ikx
k
k
c e

246
Hãy chú ý quan h ck=c-k*. Du * dùng đchỉ phép tính lấy liên hợp ca số
phc. Quan hnày luôn luôn đúng nếu hàm thực f(x)
R được khai triển thành
chuỗi Fourier.
Câu hỏi được dặt ra lúc này là làm sao tính được dãy hệ số {ck} đại diện cho
mt hàm f(x) cho trước. Quá trìnhy được gọi là phép biến đổi Fourier (bạn đọc
cần xem lại phần giải tích toán học). Matlab cho chúng ta một công cụ đtạo ra
y các hsố Fourier ca mỗi hàm f(x) đã cho mt công c đkhôi phục hàm
f(x) t một dãy hệ số {ck} cho trước (còn gọi là phép biến đổi ngược Fourier):
+ Phép biến đi Fourier (TF) : f(x) {ck};
+ Phép biến đổi ngược Fourier (ITF): {ck} f(x).
Cần chú ý rằng có một số hạn chế nhất định về toán học đối với phép biến
đổi Fourier. Điều đó liên quan đến phép nh tích phân đtính các hệ số Fourier
ca một hàm. Để một hàm thbiến đổi thành chui Fourier được thì phải
khtích và hội tụ.
Một lợi ích dthấy của việc thay một hàm sbởi một dãy hsố Fourier là
dễ lấy vi phân và tích phân.
Thí d 1. Giải sử:
f(x)= .
ikx
k
k
c e

Ly đạo hàm cả 2 vế theo x ta được:
)(x
dx
df =
ikx
k
k
ikc e

Từ đó ta thấy:
f(x) {ck}
)(x
dx
fd
n
n {(ik)nck}
Như vậy, việc lấy đạo hàm của một hàm s ôi khi khá phin phức) tương
ứng với việc nhân các h số Fourier của nó với lu thừa của ik.
Một vấn đề được đặt ra độ phc tạp của việc tính các hsố Fourier của
mt hàm (và ngược lại) như thế nào ? Cho tới giữa những năm 60 của thế kỉ 20,
các thuật toán để tính dãy hsFourier đòi hi độ phức tạp nh toán là O(N2),
với N là cỡ của bài toán. Sphụ thuộc bậc 2 này làm cho việc tính toán các hệ số
Fourier khá chm và vất vả.
Đến năm 1965, Cooley Tucker Trung tâm nghiên cứu IBM T.J.
Watson, đã đưa ra mt bài báo ngắn gợi ý một phương pháp tính các hệ số
Fourier chvới một độ phức tạp tính toán là O(log2N). Bài báo này lập tức được
các nhà khoa học quan tâm. Cho tới bây giờ nó vẫn được phổ biến để sử dụng
247
làm kĩ thuật cho phép biến đổi Fourier trong nhiều lĩnh vực như : Các phương
pháp ph, các phương pháp giải bài toán Poisson nhanh, biu diễn hình ảnh, nén
ảnh, nhận dạng tiếng nói và phân tích sóng .v.v...
Lợi ích của biểu diễn phổ dữ liệu:
- Phân tích dạng sóng cho nhiều quá trình vt lí và h thống dao động.
- Âm thanh skết hợp của các tần số cao và s thật chúng có thể phân
bit khá rõ ràng vtín hiệu ( hãy xem mc "Thiết kế lc tối ưu " sau).
- Áp dụng lọc đquản dliệu được thực hiện với biểu diễn phổ dễ dàng
hơn với biểu diễn vật lí.
Vic áp dụng các phép biến đổi Fourier rất phổ bién trong khoa học và kĩ
thuật. Tuy nhiên, trong mục này chúng ta chỉ nghiên cứu 2 vấn đề:
- Tính toán mc độ tương quan giữa 2 tín hiệu;
- Thiết kế và ứng dng lọc.
10.2 TƯƠNG QUAN GIỮA HAI CHUỖI THỜI GIAN
Khi thu hai tín hiệu khác nhau tmột thí nghiệm (thí dụ như nhiệt độ và áp
suất của chất khí), một câu hỏi tờng đặt ra là liệu hai tín hiệu này liên
kết với nhau và liệu một tác động vào tín hiệu này ch thích vào tín hiệu kia
hay không? Bng cách quan sát hai chuỗi thời gian h(t) g(t) biểu diễn ới
đây, cng ta sẽ phân tích được mối ơng quan giữa hai tín hiệu. Tuy nhiên, với
những tín hiệu phức tạp hơn ( hoặc nhiều nhiễu hơn) việc nghiên cứu mối tương
quan giữa hai tín hiệu bng phương pháp kiểm duyệt hầu n không thể làm
được và cần rất nhiều công cụ toán học để đo mối tương quan giữa hai tín hiệu.
Tương quan giữa hai tín hiệu h(t) g(t) được định nghĩa như sau:
( , , ) ( ) ( ) ,
Corr h g h t g t dt


trong đó tham s
độ trễ của tín hiệu. Biểu tích trên tích phân ca tích hai
chuỗi thời gian, trong đó chuỗi thời gian thứ hai bị tịnh tiến một khoảng thời gian
. Nếu cả hai tín hiện h(t) và g(t+
) cùng có giá trlớn, nó chứng t rằng một
hành động h(t) xảy ra thì hành động g(t) sđáp lại sau
đơn vị thời gian. Tích
phân (tương quan) giữa các tín hiệu sẽ lớn hơn rất nhiều so với trường hợp mà
h(t) không kích thích phản ứng g(t).
Bản thân tích phân trên rất khó nh, nhưng biểu diễn phổ ca tín hiệu thời
gian của chúng rất có lợi cho việc tính toán. Ta có:
( )
ikt
k
k
h t h e
, ( )
ilt
l
l
g t g e
.
248
Thế vào biểu thức tính tương quan ta được:
( , , ) il t
ikt
k l
k l
Corr h g h g e e dt


.
Rút gọn biểu thức trên ta có:
( , , ) i k l t
il
k l
k l
Corr h g h g e e dt


.
Các tích phân trên có th được nh như sau:
1 khi 0
0 khi 0
i k l t
k l
e dt k l


.
Do đó:
m
im
mm
m
im
mm egheghghCorr
*
),,( .
Như vậy tương quan của hai tín hiệu được biểu diễn dưới dạng chuỗi
Fourier với các hệ số là tích của hệ số ca một chuỗi thời gian với số phức liên
hợp của hệ số của chuỗi thời gian thhai.
Đây một phương pháp rất tiện lợi và hiu quđể tính tương quan của 2
tín hiu thời gian. Đầu tiên ta biến đổi Fourier chúng thành hai chui thời gian,
sau đó tính các tích *
m m
h g
biến đổi ngược tập hệ số kết quả để tìm được tương
quan, đây là mt hàm của thời gian trễ
. Sơ đồ sau đây s tả các cách tính:
D
Khó
Sdụng 2 tín hiệu thời gian ơng quan khá rõ để tính toán vđồ thị.
Kết quả nhận được mô tả trong hình dưới đây.
Các hàm Matlab được sử dụng:
fft(x) Hàm thực hiện phép biến đổi Fourier nhanh. Việc thực hin nhanh
nhất đạt được khi vector x 2N entries.
ifft(x) Hàm thc hiện phép biến đi Fourier ngược nhanh của vector x gồm
các hsố Fourier được u trữ theo phương pháp chuẩn (text). Việc thc hiện
nhanh nhất đạt được khi vector x 2N entries.
Sau đây chương trình tính toán:
hm, gm mm gh*
h(t), g(t)
( ) ( )
h t g t dt
249
% Matlab code for computing the correlation between two signals
clear ;
load signal1.m ;
load signal2.m ;
sig1 = fft(signal1(:,2)) ;
sig2 = fft(signal2(:,2)) ;
corrfft = conj(sig1).*sig2 ;
corr = ifft(corrfft) ;
plot(signal1,corr) ;
grid on ;
xlablel(' Time Lag') ; ylabel(' Corr(g,h)');