intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình tính toán khoa học - Chương 10

Chia sẻ: Nguyen Thanhvan | Ngày: | Loại File: PDF | Số trang:6

161
lượt xem
40
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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 xn. Khi đó hàm f(x) có dạng: f(x) = a0 + a1x + a2x2 + a3x3+... trong đó các hệ số có thể tìm được một cách khá dễ dàng. ...

Chủ đề:
Lưu

Nội dung Text: Giáo trình tính toán khoa học - Chương 10

  1. 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 xn. Khi đó hàm f(x) có d ạng: f(x) = a0 + a1x + a2x2 + a3x3+... 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. 111 Thí dụ, hàm exp(x) và tập {1, 1, , , ,... } tương đương với nhau vì cả hai 2! 3! 4! 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) = a0 + a 1cosx + a 2cos2x + a3cos3x +... + b 1sinx + b2sin2x + b3sin3x +... 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 {ak} và {b k}. Bằng cách sử dụng dạng Euler của số phức: 1 1 inx -inx eix = cos x + i sin x và cos nx = (einx+ e-inx) và sin nx = (e - e ), 2 2i Do đó ta có: a2 2ix a1  ix a a e  e  a0  1 eix  2 e 2ix  ... f ( x )  ...  2 2 2 2 b b b b ...  2 e 2ix  1 e  ix  1 eix  2 e 2ix  ... 2 2 2 2 1 Bằng cách kí hiệu: ck = (a k-ibk) ta nhận đư ợc chuỗi Fourier dạng phức: 2  f(x)=.  ck e ikx k  245
  2. Hãy chú ý quan h ệ ck=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ố {ck} đ ạ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ố {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 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)= .  ck e ikx k  Lấy đạo hàm cả 2 vế theo x ta đ ược:  df ikx ( x) =  ikck e dx k  Từ đó ta thấy: f(x)  {ck} dn f ( x)  {(ik)nck} n dx 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(N2), 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(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 246
  3. 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 b iể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ó: h(t )   hk eikt , g (t )   gl eilt . k l 247
  4. Thế vào biểu thức tính tương quan ta được:  il  t   Corr ( h, g , )     hk g l eikt e dt .  k l Rút gọn biểu thức trên ta có:  Corr (h, g ,  )    hk g l eil  e  i k  l t dt . k l  Các tích phân trên có th ể được tính như sau: 1 khi k  l  0  i k l t  dt   e . 0 khi k  l  0   Do đó: Corr (h, g ,  )   hm g m e im   hm g m e im . * m m 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 hm g m 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ễ hm, gm * hm g m Khó  h(t), g(t) h (t ) g (t   )d t   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ó 2N 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ó 2N entries. Sau đây là chương trình tính toán: 248
  5. % 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)'); 249
  6. 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). 250
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2