Những hệ số tần số thời gian nào mà phép biến đổi Wavelet tính toán?


26

Các Fast Fourier Transform mất hoạt động, trong khi nhanh wavelet transform mất . Nhưng cụ thể, FWT tính toán cái gì?O ( N )O(NlogN)O(N)

Mặc dù chúng thường được so sánh, nhưng có vẻ như FFT và FWT là táo và cam. Theo tôi hiểu, sẽ phù hợp hơn khi so sánh STFT (FFT của các khối nhỏ theo thời gian) với Morlet WT phức tạp , vì cả hai đều là biểu diễn tần số thời gian dựa trên các hình sin phức tạp (vui lòng sửa cho tôi nếu tôi sai ). Điều này thường được hiển thị với một sơ đồ như thế này:

Các lưới hiển thị cách các hệ số của FFT và WT tương ứng với mặt phẳng tần số thời gian

( Một ví dụ khác )

Bên trái cho thấy STFT là một nhóm các FFT xếp chồng lên nhau khi thời gian trôi qua (đại diện này là nguồn gốc của phổ ), trong khi bên phải hiển thị WT dyadic, có độ phân giải thời gian tốt hơn ở tần số cao và tần số tốt hơn độ phân giải ở tần số thấp (đại diện này được gọi là scalogram ). Trong ví dụ này, N cho STFT là số cột dọc (6), và một đơn O(NlogN) hoạt động FFT tính toán một hàng duy nhất của N hệ số từ N mẫu. Tổng cộng là 8 FFT mỗi điểm 6 điểm, hoặc 48 mẫu trong miền thời gian.

Những gì tôi không hiểu:

  • Có bao nhiêu hệ số để một phép toán hoạt động FWT duy nhất và chúng nằm ở đâu trên biểu đồ tần suất thời gian ở trên? O(N)

  • Những hình chữ nhật nào được điền vào bởi một tính toán duy nhất?

  • Nếu chúng ta tính toán một khối các hệ số tần số thời gian bằng nhau bằng cả hai, chúng ta có nhận được cùng một lượng dữ liệu không?

  • FWT vẫn hiệu quả hơn FFT?

Ví dụ cụ thể bằng PyWavelets :

In [2]: dwt([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[2]:
(array([ 0.70710678,  0.        ,  0.        ,  0.        ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ]))

Nó tạo ra hai bộ 4 hệ số, do đó, nó giống như số lượng mẫu trong tín hiệu gốc. Nhưng mối quan hệ giữa 8 hệ số này và các ô trong sơ đồ là gì?

Cập nhật:

Trên thực tế, tôi có lẽ đã làm điều này sai, và nên sử dụng wavedec(), đó là một phân tách DWT đa cấp:

In [4]: wavedec([1, 0, 0, 0, 0, 0, 0, 0], 'haar')
Out[4]: 
[array([ 0.35355339]),
 array([ 0.35355339]),
 array([ 0.5,  0. ]),
 array([ 0.70710678,  0.        ,  0.        ,  0.        ])]

2
Để hiểu rõ hơn về cách thức hoạt động của quá trình phân tách sóng con này, một công cụ hữu ích là có thể thực hiện điều đó trên các tín hiệu thực tế: ví dụ tín hiệu âm thanh (tôi có một câu hỏi theo hướng này ở đây dsp.stackexchange.com/ câu hỏi / 12694 / stft-and-dwt-wavelets )
Basj

@endolith Câu hỏi của bạn vẫn được yêu cầu? Nếu vậy, tôi có thể thêm các gợi ý khác
Laurent Duval

@LaurentDuval Vâng, nó vẫn mở và tôi vẫn không hiểu. Tôi có thể bối rối vì CWT sử dụng những thứ như Morlet và DWT chỉ sử dụng những thứ như Haar hoặc Daubechies. Tôi không chắc chắn nếu FWT nhanh chỉ là Haar hoặc cũng có thể sử dụng các loại sóng con khác.
endolith

2
@ndolith Chỉ cần một nhận xét cho điều này: CWT liên tục thừa nhận một số lượng đáng kinh ngạc của các hình dạng sóng con tiềm năng. Chúng có thể được rời rạc chính xác chỉ với các mẫu lấy mẫu (theo thời gian hoặc tỷ lệ) tôn trọng một số bất đẳng thức "Heisenberg". Những mẫu này phụ thuộc vào wavelet. Trong phần lớn các trường hợp, các mẫu tạo ra một CWT rời rạc, dư thừa. Một số muốn nó không dư thừa, với một quy mô dyadic. Chỉ có rất ít wavelet cho phép điều đó. Nếu sau đó bạn áp dụng hỗ trợ wavelet là hữu hạn, thì Haar là một, gần như không thể có được w / "sóng con tự nhiên", đó là lý do tại sao những cái của Daubechies được chế tạo
Laurent Duval

Câu trả lời:


13

Bạn đúng là FWT được coi là "anh em họ" của STFT, hơn là FT. Trên thực tế, FWT chỉ là một mẫu riêng biệt của CWT (biến đổi sóng con liên tục), vì FFT / DFT là một mẫu riêng biệt của biến đổi Fourier. Điều này có vẻ như là một điểm tinh tế, nhưng nó có liên quan khi chọn cách bạn rời rạc biến đổi.

CWT và STFT đều là các phân tích dự phòng của tín hiệu. Nói cách khác, bạn có nhiều "hệ số" (trong trường hợp riêng biệt) hơn là bạn cần thể hiện đầy đủ tín hiệu. Tuy nhiên, một biến đổi Fourier (hay nói là biến đổi wavelet chỉ sử dụng một thang đo) tích hợp tín hiệu từ -infinite đến + vô cùng. Điều này không hữu ích lắm đối với các tín hiệu trong thế giới thực, vì vậy chúng tôi cắt ngắn (tức là cửa sổ) các phép biến đổi thành các độ dài ngắn hơn. Cửa sổ của tín hiệu thay đổi biến đổi - bạn nhân với cửa sổ theo thời gian / không gian, do đó, trong không gian biến đổi, bạn có tích chập biến đổi của cửa sổ với biến đổi tín hiệu.

Trong trường hợp của STFT, các cửa sổ (thường) có cùng độ dài (mức độ khác không) tại mọi thời điểm và không xác định tần số (cửa sổ của bạn có tín hiệu 10 Hz có cùng độ rộng với tín hiệu 10 kHz). Vì vậy, bạn có được phổ lưới hình chữ nhật như bạn đã vẽ.

CWT có cửa sổ này được xây dựng bởi thực tế là các sóng con sẽ ngắn hơn (theo thời gian hoặc không gian) khi tỷ lệ giảm (như tần số cao hơn). Do đó, đối với các tần số cao hơn, cửa sổ hiệu quả có thời lượng ngắn hơn và bạn kết thúc với một biểu đồ tỷ lệ trông giống như những gì bạn đã vẽ cho FWT.

Làm thế nào bạn phân biệt CWT là một phần tùy thuộc vào bạn, mặc dù tôi nghĩ rằng có các mẫu tối thiểu trong cả ca và tỷ lệ để thể hiện đầy đủ tín hiệu. Thông thường (ít nhất là cách tôi đã sử dụng chúng), ở quy mô thấp nhất (tần số cao nhất), bạn sẽ lấy mẫu ở tất cả các vị trí thay đổi (thời gian / không gian). Khi bạn tăng tỷ lệ cao hơn (tần số thấp hơn), bạn có thể lấy mẫu ít thường xuyên hơn. Lý do là tần số thấp không thay đổi nhanh chóng (nghĩ về sự cố cymbal so với guitar bass - sự cố cymbal có thời gian rất ngắn, trong khi guitar bass sẽ mất nhiều thời gian hơn để thay đổi). Trong thực tế, ở thang đo ngắn nhất (giả sử bạn lấy mẫu ở tất cả các vị trí thay đổi), bạn có biểu diễn đầy đủ của tín hiệu (bạn có thể tái tạo lại nó bằng cách chỉ sử dụng các hệ số ở thang đo này). Tôi không chắc lắm về lý do lấy mẫu thang đo. TÔI' đã thấy điều này được đề xuất là logarit, với (tôi nghĩ) khoảng cách gần hơn giữa các thang đo ngắn hơn. Tôi nghĩ điều này là do các sóng con ở quy mô dài hơn có biến đổi Fourier rộng hơn (do đó chúng "thu nhận" nhiều tần số hơn).

Tôi thừa nhận tôi không hiểu đầy đủ về FWT. Linh cảm của tôi là nó thực sự là mẫu tối thiểu theo ca / ​​tỷ lệ, và không phải là một đại diện dự phòng. Nhưng sau đó tôi nghĩ rằng bạn mất khả năng phân tích (và gây rối) một tín hiệu trong thời gian ngắn mà không đưa ra các tạo tác không mong muốn. Tôi sẽ đọc thêm về nó và, nếu tôi học được bất cứ điều gì hữu ích, hãy báo cáo lại. Hy vọng những người khác sẽ thích bình luận.


1
"nó thực sự là mẫu tối thiểu theo ca / ​​tỷ lệ, và không phải là đại diện dự phòng." À! Tôi nghĩ bạn đã đúng, và điều này sẽ giải thích tại sao nó luôn được so sánh với FFT, đây cũng là một đại diện tối thiểu.
endolith

3
FWT là một mẫu quan trọng của CWT. Tôi vẫn đang cố gắng để hiểu rõ hơn về nó, nhưng tôi đã học được rằng STFT và CWT đều là Khung. Lý thuyết khung đang vượt xa tôi, nhưng một khái niệm thú vị là công thức không chắc chắn, đối với STFT, dw * dt> C (dw là độ phân giải tần số và dt là độ phân giải thời gian). Nói cách khác, khi bạn cố gắng giải quyết tần số tốt hơn, bạn sẽ mất độ phân giải thời gian. CWT không có giới hạn này. Tôi sẽ tiếp tục đọc và thử và làm rõ câu trả lời của tôi ở trên một khi tôi làm rõ nó trong đầu.

1
Theo những gì tôi hiểu, CWT có cùng giới hạn, nhưng sử dụng sự đánh đổi tốt hơn.
endolith

1
"STFT là cả hai phân tích dư thừa của một tín hiệu". Tôi không nghĩ đó là sự thật. Nếu bạn có tín hiệu 100 điểm, chia nó thành nhiều phần 10 điểm, sau đó thực hiện FFT 10 điểm cho mỗi điểm, bạn vẫn có cùng thông tin được lưu trữ trong cùng một lượng mẫu.
endolith

11

Hãy xem xét trường hợp Haar wavelet. Biến đổi Wavelet nhanh chia nhỏ đệ quy tín hiệu của bạn và tính tổng và hiệu của hai nửa mỗi lần. Sự khác biệt là độ lớn của biến đổi cho wavelet hiện tại và tổng được trả về cho người gọi để tính độ lớn của biến đổi cho một wavelet giãn với một nửa tần số. Do đó, FWT bao phủ mặt phẳng tần số thời gian bằng cách sử dụng mẫu được mô tả trong sơ đồ bạn đã đưa ra.

Lưu ý rằng sơ đồ bạn đưa ra là một chút sai lệch. Điều họ thực sự đang cố nói với bạn là bạn lấy một mẫu ở tần số thấp nhất, hai mẫu với tần số gấp đôi, bốn mẫu với tần số gấp bốn lần, v.v. Các thuộc tính tần số thời gian của mỗi wavelet không phải là chúng bao phủ gạch của chúng. Trong thực tế, mỗi wavelet sẽ bao phủ một vùng vô hạn bởi vì chúng có hỗ trợ nhỏ gọn và do đó, phải được tối ưu hóa hoàn toàn về tần số. Vì vậy, bạn chỉ nên nghĩ về trung tâm của những viên gạch.

Hơn nữa, FWT yêu cầu một wavelet rời rạc phải tuân thủ một tiêu chí chấp nhận hạn chế hơn nhiều so với các wavelet liên tục cho CWT. Do đó, các thuộc tính tần số thời gian của các bước sóng rời rạc nói chung là khủng khiếp (ví dụ: các bước sóng Daubechies có đầy đủ các tính năng sắc nét hoặc có tần số thay đổi) và tiện ích của mặt phẳng tần số thời gian bị giảm đi rất nhiều trong bối cảnh của FWT. Tuy nhiên, các bước sóng liên tục được sử dụng để tính toán biểu diễn tần số thời gian của tín hiệu.


Vâng, tôi hiểu nội địa hóa của các hệ số. Điều đó giống như FFT. Khi bạn nói "phải tuân thủ", bạn có ý gì? Có phải đó chỉ là một yêu cầu nếu bạn đang cố gắng để có được sự biểu diễn tối thiểu / không dư thừa của tín hiệu? Điều gì xảy ra nếu bạn chỉ đang cố gắng phân tích / hình dung nó? Tôi sẽ thêm một ví dụ cụ thể hơn cho câu hỏi.
endolith

1
Tuân thủ tiêu chí chấp nhận đảm bảo rằng độ phân giải của danh tính tồn tại, tức là tất cả các tín hiệu có thể được phục hồi từ các biến đổi wavelet của chúng. Nếu bạn không tuân thủ nó thì bạn không thể khôi phục tín hiệu từ biến đổi của nó, tại thời điểm đó bạn phải đặt câu hỏi chính xác bạn đang phân tích cái gì (thậm chí nó có phản ánh bất kỳ thông tin nào có trong tín hiệu không?!). Nếu bạn không yêu cầu một đại diện tối thiểu / không dư thừa thì bạn có thể sử dụng tiêu chí chấp nhận lỏng lẻo hơn từ CWT (cho phép bạn xác định các bước sóng "lý tưởng" hơn).

1
Tôi nghĩ rằng bạn sẽ tìm thấy luận án tiến sĩ của tôi thực sự hữu ích. Tôi sẽ đặt nó trực tuyến cho bạn ...

Bạn đã đặt nó trực tuyến? :)
endolith

2
Tôi chắc chắn đã làm: Flyingfrogblog.blogspot.com/2010/02/ Kẻ

3

Tài liệu tham khảo của bạn có nó:

Một chuỗi các hệ số dựa trên cơ sở trực giao của sóng hữu hạn nhỏ hoặc sóng nhỏ.

Để biết thêm, bạn có thể thích trang DWT . Ở đó, nó giới thiệu Haar wavelet, Daubechies wavelet và những người khác. Nó chỉ ra làm thế nào

  • Wavelets có vị trí - sóng con (1,1, HP1, HP1) tương ứng với bên trái, so với bên phải, bên phải, trong khi hai sóng con cuối cùng có hỗ trợ ở bên trái hoặc bên phải và một là dịch của những thứ còn lại.
  • Sóng hình sin không có vị trí - chúng lan truyền khắp toàn bộ không gian - nhưng có pha - sóng thứ hai và thứ ba là bản dịch của nhau, tương ứng với việc lệch pha 90 °, như cosine và sin, trong đó đây là các phiên bản rời rạc .

Nếu, thay vì các wavelet rời rạc, bây giờ bạn muốn về các wavelet liên tục hoặc các wavelet phức tạp, bạn có thể bắt đầu với loạt wavelet .

Ngoài wikipedia, một cuốn sách giáo khoa và một khóa học có thể làm tốt cho bạn.


Tôi không hiểu câu trả lời này. Nó có trả lời câu hỏi của tôi không? Bên trái và bên phải của những gì? Điều này có liên quan gì đến biểu diễn tần số thời gian?
endolith

Mô tả "bên trái so với bên phải" là bản xem trước trích dẫn của trang DWT, cho thấy trang đó bao gồm một ví dụ đơn giản để giải thích giá trị tương đối của cơ sở hình sin và cơ sở sóng con Haar. Bạn đã hỏi về bản chất của các hệ số trong một biến đổi wavelet. Nghe có vẻ như bạn đang tìm kiếm trực giác. Tôi nghĩ rằng bạn có thể thấy ví dụ đó (trong bối cảnh ban đầu của nó) hữu ích.

Có, tôi đã đọc các bài viết Wikipedia nhiều lần trước khi đăng câu hỏi này. Tôi không biết câu trả lời của bạn có liên quan gì đến câu hỏi của tôi về biểu diễn tần suất thời gian hay không. Nếu có, bạn có thể kết nối các dấu chấm? Một FFT gồm n mẫu sẽ tạo ra n hệ số, tạo thành một cột duy nhất của phổ STFT. Có một mối quan hệ tương ứng giữa các hệ số được tạo ra bởi WT và scalogram không? Nếu vậy, nó là cái gì? Những ô nào trong biểu đồ phía dưới bên phải được điền vào bằng một lần chạy qua FWT?
endolith

1
Hầu hết mọi thứ trên các trang Wikipedia liên quan đến wavelet hiện đều sai.

3

O(N2)

O(N)O(Nlog(N))O()

Bắt đầu từ STFT cửa sổ chung (dạng liên tục). Nếu bạn cắm vào một cửa sổ vô hạn về chiều cao đơn vị, bạn sẽ phục hồi biến đổi Fourier như một trường hợp đặc biệt. Mà bạn có thể rời rạc (và lấy DFT) và làm cho nó nhanh (và lấy FFT).

Bắt đầu từ một CWT (hình thức liên tục). CWT liên tục thừa nhận một số lượng đáng kinh ngạc của các hình dạng sóng con tiềm năng. Chúng có thể được rời rạc chính xác chỉ với các mẫu lấy mẫu (theo thời gian hoặc tỷ lệ) tôn trọng một số bất đẳng thức "Heisenberg": một mẫu trên mỗi đơn vị bề mặt. Những mẫu này phụ thuộc vào wavelet. Trong phần lớn các trường hợp, các mẫu tạo ra một CWT rời rạc, dư thừa và tạo ra một khung sóng con.

Một số người muốn nó không dư thừa, với thang đo dyadic (DWT). Chỉ có rất ít sóng con (vẫn là một số vô hạn, nhưng bạn không thể tìm thấy chúng một cách tình cờ) cho phép điều đó. Trong số những người đầu tiên là các sóng nhỏ Haar, Franklin và Meyer. Nếu sau đó bạn áp dụng hỗ trợ wavelet là hữu hạn, thì Haar là người duy nhất trong một thời gian dài. Hầu như không thể có được một sóng con trực giao từ "các bước sóng liên tục tự nhiên", đó là lý do tại sao các sóng của Daubechies được tạo ra, và sau đó là SymmletsCoiflets . Những wavelet có hình dạng kỳ lạ đó không có công thức đơn giản và đẹp mắt như wavelet Morlet.

O(N)

Trên thực tế, FWT chỉ là một mẫu riêng biệt của CWT

DWT (hoặc FWT) là chính xác, như DFT / FFT. Hầu hết các CWT rời rạc khác (với bất kỳ wavelet nào) chỉ xấp xỉ như vậy (không gây hại nhiều nếu bạn có đủ dự phòng).

Vì thế:

  • kkk804T2×424[ω/2,ω]42×22[ω/8,ω/4][1,1,2,4]
  • k
  • +×O(N)

Những hình ảnh sau đây cho thấy một phiên bản liên tục của sóng con Haar sóng con Haar liên tục

có thể được lấy mẫu thành một wavelet rời rạc, trực giao: Haar wavelet rời rạc

Lưu ý rằng một số bước sóng rời rạc, đặc biệt là các bước sóng dài (như spline), đôi khi được tính bằng FFT :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.