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à một trong các phương pháp phân tích một hàm số đã cho thành một 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à chuỗi Taylor. Trong trường hợp này, chúng ta khai triển hàm đã cho bởi tổng của các đa thức đơn giản có dạng x n . Khi đó hàm f(x) có dạng: f(x) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 + trong đó các hệ số có thể tìm được một cách khá dễ dàng. Biểu diễn một hàm theo phương pháp chuỗi Taylor là một phương pháp khác để mô tả hàm. Điều đó nghĩa là việc mô tả hàm f(x) và tập các hệ số của chuỗi Taylor là tương đương. Thí dụ, hàm exp(x) và tập {1, 1, , ! 4 1 , ! 3 1 , ! 2 1 } tương đương với nhau vì cả hai cùng biểu diễn hàm luỹ thừa. Một biểu diễn phổ khác sử dụng ý tưở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à cố gắng khai triển hàm số đã cho dưới dạng chuỗi Fourier như sau: f(x) = a 0 + a 1 cosx + a 2 cos2x + a 3 cos3x + + b 1 sinx + b 2 sin2x + b 3 sin3x + Vì 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 tuần hoàn với chu kì 2 . Như vậy hàm f(x) có thể biểu diễn bởi 2 dãy số thực {a k } và {b k }. Bằng cách sử dụng dạng Euler của số phức: e ix = cos x + i sin x và cos nx = 2 1 (e inx + e -inx ) và sin nx = i 2 1 (e inx - 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: c k = 2 1 (a k -ib k ) ta nhận được chuỗi Fourier dạng phức: f(x)=. ikx k k c e 246 Hãy chú ý quan hệ c k =c -k * . Dấu * dùng để chỉ phép tính lấy liên hợp của số phức. Quan hệ nà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ố {c k } đại diện cho một hàm f(x) cho trước. Quá trình này đượ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 dãy các hệ số Fourier của mỗi hàm f(x) đã cho và một công cụ để khôi phục hàm f(x) từ một dãy hệ số {c k } 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) {c k }; + Phép biến đổi ngược Fourier (ITF): {c k } 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 tính tích phân để tính các hệ số Fourier của một hàm. Để một hàm có thể biến đổi thành chuỗi Fourier được thì nó phải khả tích và hội tụ. Một lợi ích dễ thấy của việc thay một hàm số bởi một dãy hệ số 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 Lấy đạo hàm cả 2 vế theo x ta được: )(x dx df = ikx k k ikc e Từ đó ta thấy: f(x) {c k } )(x dx fd n n {(ik) n c k } Như vậy, việc lấy đạo hàm của một hàm số (đôi khi khá phiền 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 là độ phức tạp của việc tính các hệ số Fourier của một 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 hệ số Fourier đòi hỏi độ phức tạp tính toán là O(N 2 ), với N là cỡ của bài toán. Sự phụ thuộc bậc 2 này làm cho việc tính toán các hệ số Fourier khá chậm và vất vả. Đến năm 1965, Cooley và Tucker ở Trung tâm nghiên cứu IBM T.J. Watson, đã đưa ra một bài báo ngắn gợi ý một phương pháp tính các hệ số Fourier chỉ với một độ phức tạp tính toán là O(log 2 N). 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, biểu 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 vật lí và hệ thống dao động. - Âm thanh là sự kết hợp của các tần số cao và sự thật chúng có thể phân biệt khá rõ ràng về tín hiệu ( hãy xem mục "Thiết kế lọc tối ưu " ở sau). - Áp dụng lọc để quản lí dữ liệ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í. Việc á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 mức độ tương quan giữa 2 tín hiệu; - Thiết kế và ứng dụng 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 từ một thí nghiệm (thí dụ như nhiệt độ và áp suất của chất khí), có một câu hỏi thường đặt ra là liệu hai tín hiệu này có liên kết với nhau và liệu một tác động vào tín hiệu này có kích thích vào tín hiệu kia hay không? Bằng cách quan sát hai chuỗi thời gian h(t) và g(t) biểu diễn dưới đây, chúng ta sẽ phân tích được mối tươ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 bằng phương pháp kiểm duyệt hầu như 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) và g(t) được định nghĩa như sau: ( , , ) ( ) ( ) , Corr h g h t g t dt trong đó tham số là độ trễ của tín hiệu. Biểu tích trên là tích phân của 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 là . Nếu cả hai tín hiện h(t) và g(t+ ) cùng có giá trị lớ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ó tính, nhưng biểu diễn phổ của 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 tí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ố của 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 thứ hai. Đây là một phương pháp rất tiện lợi và hiệu quả để tính tương quan của 2 tín hiệu thời gian. Đầu tiên ta biến đổi Fourier chúng thành hai chuỗi thời gian, sau đó tính các tích * m m h g và biến đổi ngược tập hệ số kết quả để tìm được tương quan, đây là một hàm của thời gian trễ . Sơ đồ sau đây sẽ mô tả các cách tính: Dễ Khó Sử dụng 2 tín hiệu thời gian có tương quan khá rõ để tính toán và 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 hiện nhanh nhất đạt được khi vector x có 2 N entries. ifft(x) Hàm thực hiện phép biến đổi Fourier ngược nhanh của vector x gồm các hệ số Fourier được lưu trữ theo phương pháp chuẩn (text). Việc thực hiện nhanh nhất đạt được khi vector x có 2 N entries. Sau đây là chương trình tính toán: h m , g m 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)'); 250 TÀI LIỆU THAM KHẢO 1. Giải tích số, Phạm Kỳ Anh, ĐHQG Hà Nội ,1998. 2. Nhập môn tính toán khoa học, Nguyễn Đức Nghĩa,ĐHBK Hà Nội,2000. 3. Beginning scientific computing ,(Lecture notes for AMATH301), Peter J. Schmid, University of Washington. 4. Applied numerical methods using Matlab, W.Y.Yang, W.Cao, T.S. Chung, J.Morris,John Wiley & Sons, New Jersey, 2005. 5. Numerical analysis using Malab and spreadsheets,S.T. Karris, John Wiley & Sons, New Jersey, 2005. 6. Tính tích phân số với sự trợ giúp của máy tính, N .T. Toàn, N.N Quân, Tạp chí Nghiên cứu KH&CN Quân sự, 6 (2010). . 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 mức độ tương quan giữa 2 tín hiệu; - Thiết kế và ứng dụng lọc. 10. 2 TƯƠNG QUAN. một bài báo ngắn gợi ý một phương pháp tính các hệ số Fourier chỉ với một độ phức tạp tính toán là O(log 2 N). 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. của việc tính các hệ số Fourier của một 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 hệ số Fourier đòi hỏi độ phức tạp tính toán là O(N 2 ),