Biến đổi Fourier thưa thớt là gì?


46

MIT đã gây ồn ào gần đây về một thuật toán mới được quảng cáo là biến đổi Fourier nhanh hơn, hoạt động trên các loại tín hiệu cụ thể, ví dụ: "Biến đổi Frier Frier được đặt tên là một trong những công nghệ mới nổi quan trọng nhất của thế giới ". Tạp chí MIT Technology Review cho biết :

Với thuật toán mới, được gọi là biến đổi Fourier thưa thớt (SFT), các luồng dữ liệu có thể được xử lý nhanh hơn 10 đến 100 lần so với FFT. Việc tăng tốc có thể xảy ra vì thông tin chúng ta quan tâm nhất có cấu trúc rất lớn: âm nhạc không phải là tiếng ồn ngẫu nhiên. Các tín hiệu có ý nghĩa này thường chỉ có một phần giá trị có thể có mà tín hiệu có thể lấy; thuật ngữ kỹ thuật cho điều này là thông tin "thưa thớt". Vì thuật toán SFT không có ý định hoạt động với tất cả các luồng dữ liệu có thể, nên nó có thể sử dụng một số phím tắt nhất định không có sẵn. Về lý thuyết, một thuật toán chỉ có thể xử lý các tín hiệu thưa thớt bị hạn chế hơn nhiều so với FFT. Nhưng "sự thưa thớt ở khắp mọi nơi", chỉ ra đồng xu Katabi, giáo sư về kỹ thuật điện và khoa học máy tính. "Đó là trong tự nhiên; nó ' s trong tín hiệu video; đó là tín hiệu âm thanh. "

Ai đó ở đây có thể cung cấp một lời giải thích kỹ thuật hơn về thuật toán thực sự là gì, và nó có thể được áp dụng ở đâu?

EDIT: Một số liên kết:

Câu trả lời:


40

Ý tưởng của thuật toán là thế này: giả sử bạn có tín hiệu có độ dài thưa thớt trong miền tần số. Điều này có nghĩa là nếu bạn tính toán biến đổi Fourier rời rạc của nó , sẽ có một số lượng nhỏ đầu ra không khác; khác không đáng kể. Một cách để nhận được ở đầu ra mà bạn muốn là sử dụng FFT trên toàn bộ chuỗi, sau đó chọn các giá trị khác không.NkNNkkk

Thuật toán biến đổi Fourier thưa thớt được trình bày ở đây là một kỹ thuật để tính toán các đầu ra có độ phức tạp thấp hơn so với phương pháp dựa trên FFT. Về cơ bản, vì các đầu ra bằng 0, bạn có thể tiết kiệm một số nỗ lực bằng cách sử dụng các phím tắt bên trong thuật toán để thậm chí không tạo ra các giá trị kết quả đó. Trong khi FFT có độ phức tạp là , thuật toán thưa thớt có độ phức tạp thấp hơn tiềm năng của cho trường hợp phổ thưa.kNkO(nlogn)O(klogn)

Đối với trường hợp tổng quát hơn, nơi phổ là "loại thưa thớt" nhưng có hơn giá trị khác không (ví dụ như đối với một số tông màu nhúng trong tiếng ồn), họ thể hiện một biến thể của thuật toán ước tính các đầu ra lớn nhất, với độ phức tạp thời gian của , cũng có thể ít phức tạp hơn FFT.kkO(klognlognk)

Theo một biểu đồ kết quả của họ (được sao chép trong hình ảnh bên dưới), điểm giao nhau để cải thiện hiệu suất đối với FFTW (thư viện FFT được tối ưu hóa, được thực hiện bởi một số kẻ khác tại MIT) là khoảng điểm chỉ có -th to -th của các hệ số biến đổi đầu ra là khác không. Ngoài ra, trong phần trình bày này, họ chỉ ra rằng thuật toán thưa thớt cung cấp hiệu suất tốt hơn khi .12111210Nk[2000,106]

nhập mô tả hình ảnh ở đây

Các điều kiện này làm hạn chế khả năng ứng dụng của thuật toán vào các trường hợp mà bạn biết có khả năng sẽ có một vài đỉnh lớn đáng kể trong phổ của tín hiệu. Một ví dụ mà họ trích dẫn trên trang web của họ là trung bình, các khối pixel 8 x 8 thường được sử dụng trong nén hình ảnh và video hầu như thưa thớt 90% trong miền tần số và do đó có thể hưởng lợi từ thuật toán khai thác thuộc tính đó. Mức độ thưa thớt đó dường như không vuông với không gian ứng dụng cho thuật toán cụ thể này, vì vậy nó có thể chỉ là một ví dụ minh họa.

Tôi cần đọc qua tài liệu nhiều hơn một chút để cảm nhận rõ hơn về cách sử dụng một kỹ thuật thực tế như vậy cho các vấn đề trong thế giới thực, nhưng đối với các lớp ứng dụng nhất định, nó có thể phù hợp.


2
Vì vậy, về cơ bản nó là một FFT mất mát? Giống như một bộ mã hóa MP3?
endolith

3
@endolith: Tôi không chắc chắn rằng tôi sẽ đặt nó theo cách đó. Có thể tương tự như thuật toán FFT được cắt tỉa chỉ tính toán một tập hợp con của các đầu ra. Khiếu nại là nếu tín hiệu đầu vào là thưa, thì đầu ra được tính toán chính xác. kk
Jason R

Tôi tự hỏi làm thế nào nó đi lên chống lại thuật toán goertzel (hoặc một gia đình của họ). Có vẻ như sự khác biệt duy nhất là trong goertzel bạn biết những gì bạn đang tìm kiếm để bắt đầu.
Spacey

5
@endolith: Nén MP3 bị mất vì các hệ số được lượng tử hóa; không phải vì chỉ có các hệ số k hàng đầu được giữ. SpFT thưa thớt = "biểu diễn hệ số k là gì để giảm thiểu chênh lệch với tín hiệu đầu vào". Mã hóa khung mp3 = "các hệ số lượng tử và mức độ lượng tử hóa là gì để giảm thiểu lỗi (nhận thức) được cung cấp ngân sách N bit để lưu trữ các hệ số và hệ số tỷ lệ".
pichenettes

1
Khi chúng bị ném đi, đây là tác dụng phụ của lượng tử hóa (giá trị được làm tròn thành 0)
pichenettes

7

Tôi chưa đọc bài báo về sFFT, nhưng cảm giác của tôi là ý tưởng buộc chặt FFT phía sau đang khai thác sự ưu tiên của k-sparsity. Do đó, người ta không phải tính tất cả các mục của hệ số FFT, thay vào đó, chỉ tính k của chúng. Vì vậy, đó là lý do tại sao đối với tín hiệu thưa thớt, độ phức tạp là O (klog n) thay vì O (nlog n) cho FFT thông thường.

Dù sao đi nữa, liên quan đến các bình luận của @rcmpton, bằng cách nói "Ý tưởng đằng sau cảm biến nén là bạn có thể khôi phục dữ liệu thưa thớt từ các mẫu ngẫu nhiên thưa thớt được vẽ từ một miền khác (ví dụ: khôi phục hình ảnh thưa thớt từ dữ liệu tần số thưa thớt ngẫu nhiên (ví dụ MRI)) . " Câu hỏi đặt ra là "mẫu ngẫu nhiên thưa thớt" là gì? Tôi nghĩ rằng nó có thể là các mẫu được thu thập bằng cách chiếu ngẫu nhiên dữ liệu thưa thớt đến một không gian con (đo lường) thấp hơn.

Và như tôi đã hiểu, khung lý thuyết của cảm biến nén chủ yếu bao gồm 3 vấn đề, độ thưa, đo lường và phục hồi. Bằng cách thưa thớt, nó liên quan đến việc tìm kiếm các biểu diễn thưa thớt cho một số loại tín hiệu nhất định, đó là nhiệm vụ của việc học từ điển. Bằng cách đo lường, nó liên quan đến việc tìm kiếm một cách hiệu quả (hiệu quả tính toán và có thể phục hồi) để đo dữ liệu (hoặc chiếu dữ liệu vào không gian đo thấp hơn), đó là nhiệm vụ của thiết kế ma trận đo lường, như ma trận Gauss ngẫu nhiên, ma trận ngẫu nhiên có cấu trúc ,. ... Và bằng cách phục hồi, là các vấn đề đảo ngược tuyến tính thường xuyên thưa thớt, l0, l1, l1-l2, lp, l-group, blabla ..., và các thuật toán kết quả là khác nhau, Theo đuổi phù hợp, ngưỡng mềm, ngưỡng cứng, theo đuổi cơ sở, bayesian, ....

Đúng là "cs là tối thiểu hóa định mức L1" và định mức L1 là nguyên tắc cơ bản cho cs, nhưng cs không chỉ tối thiểu hóa định mức L1. Bên cạnh 3 phần trên, cũng có một số phần mở rộng, như cảm biến nén có cấu trúc (nhóm hoặc mô hình), trong đó độ thưa có cấu trúc cũng được khai thác và được chứng minh là cải thiện phần lớn khả năng phục hồi.

Như một kết luận, cs là một bước tiến lớn trong lý thuyết lấy mẫu, cung cấp một cách hiệu quả cho các tín hiệu mẫu, với điều kiện là các tín hiệu này đủ thưa thớt . Vì vậy, cs là một lý thuyết lấy mẫu , bất cứ ai sẽ sử dụng nó như một số kỹ thuật để phân loại hoặc công nhận là sai lệch nguyên tắc. Và đôi khi, tôi tìm thấy một số bài báo có tiêu đề "dựa trên cảm biến nén ....." và tôi nghĩ rằng nguyên tắc của bài báo đó là khai thác tối thiểu hóa l1 thay vì cs và tốt hơn là sử dụng "dựa trên tối thiểu hóa l1 .... ".

Nếu tôi sai, xin vui lòng sửa cho tôi.


Chào mừng đến với DSP.SE Đây là một đóng góp lớn.
Phonon

6

Tôi đã xem qua bài báo và tôi nghĩ rằng tôi đã có ý tưởng chung về phương pháp này. "Souse bí mật" của phương thức là làm thế nào để có được sự biểu diễn thưa thớt của tín hiệu đầu vào trong miền tần số. Các thuật toán trước đây đã sử dụng loại lực lượng vũ phu cho vị trí của hệ số thưa thớt chiếm ưu thế. Phương pháp này sử dụng kỹ thuật thay vì kỹ thuật gọi là "phục hồi không gian" hoặc bài viết wiki "cảm biến nén" ở đây Phương pháp phục hồi thưa thớt được sử dụng ở đây trông tương tự như "ngưỡng cứng" - một trong những phương pháp phục hồi thưa thớt chi phối.

Kỹ thuật PS phục hồi / cảm biến nén thưa thớt và kết nối với nó Giảm thiểu L1 được sử dụng rất nhiều trong xử lý tín hiệu hiện đại và đặc biệt là liên quan đến biến đổi Fourier. Trong thực tế, đó là điều cần phải biết để xử lý tín hiệu hiện đại. Nhưng trước khi biến đổi Fourier được sử dụng như một trong những phương pháp cho giải pháp cho vấn đề phục hồi thưa thớt. Ở đây chúng ta thấy ngược lại - phục hồi thưa thớt cho biến đổi Fourier.

Trang web tốt cho tổng quan về cảm biến nén: nuit-blanche.blogspot.com/

Câu trả lời PPS cho nhận xét trước - nếu tín hiệu đầu vào không chính xác thưa thớt thì mất.

Hãy sửa tôi nếu tôi có phương pháp sai.


Giấy FFT không nén cảm biến. Ý tưởng đằng sau cảm biến nén là bạn có thể khôi phục dữ liệu thưa thớt từ các mẫu ngẫu nhiên thưa thớt được vẽ từ một miền khác (ví dụ: khôi phục hình ảnh thưa thớt từ dữ liệu tần số thưa ngẫu nhiên (ví dụ MRI)). Trong khi điều này có thể làm giảm thời gian mua lại, nó làm tăng chi phí tính toán. Bài báo FFT khác ở chỗ bạn có tất cả dữ liệu của mình trong cả hai miền và mục tiêu là làm cho việc tính toán diễn ra nhanh chóng.
dranxo

Bạn đã sai về cảm biến nén.
mirror2image

1
Bạn có thể xây dựng?
dranxo

Cảm biến nén là một khu vực rộng lớn với các cạnh mờ, bao gồm / được kết nối với không chỉ phục hồi mỗi se mà các khu vực tương tự quy hóa , theo đuổi độ phức tạp tối thiểu, v.v ... Ban đầu nó là một vấn đề hạn chế thưa thớt , x trong , R ^ n \ | x \ | _0 <k $, nhưng sau đó nó trở nên nhiều hơn nữa. Bắt đầu với việc đọc wikiLpAx=yRmyin,m>>nwithconstraint
mirror2image

Không. Cảm biến nén có nghĩa là bạn đang giải quyết theo . Có rất nhiều ứng dụng sâu rộng, nhưng nếu bạn không gọi định lý Candes-Romberg-Tao tại một số điểm, bạn sẽ nhầm lẫn mọi người nếu bạn gắn nhãn công việc của bạn với "cảm biến nén". Dưới đây là một tài liệu tham khảo: www-stat.stanford.edu/~candes/ con / spm -robustcsmin|x|1Ax=y
v05.pdf
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.