Tại sao tôi nên sử dụng các bộ lọc kỹ thuật số để băng thông thay vì chỉ thao tác các tín hiệu trong miền tần số và sau đó khôi phục chúng thành miền thời gian?


15

Tôi khá là người mới để xử lý tín hiệu và tôi biết câu hỏi này có thể quá rộng. Nhưng tôi vẫn muốn nghe gợi ý từ các chuyên gia.

Tôi được dạy sử dụng butter(để thiết kế bộ lọc Butterworth hay còn gọi là bộ lọc cường độ phẳng tối đa) và filtfiltcác chức năng (Lọc kỹ thuật số không pha) để lọc băng thông của tín hiệu EEG (điện não đồ) trong MATLAB ngoại tuyến (tức là sau khi hoàn thành ghi). Bằng cách này, bạn có thể tránh được "độ trễ" không thể tránh khỏi do bộ lọc kỹ thuật số (nghĩa là lọc không pha).

Sau đó, một người nào đó đã hỏi tôi tại sao chúng ta không thể sử dụng fft(Biến đổi Fourier nhanh) để có được biểu diễn miền tần số của tín hiệu và sau đó đặt công suất của các tần số không mong muốn về 0, sau đó là ifft(Biến đổi Fourier nhanh) để khôi phục dữ liệu được lọc theo thời gian tên miền cho cùng một mục đích. Thao tác này trong miền tần số nghe có vẻ đơn giản và hợp lý với tôi và tôi thực sự không thể trả lời tại sao.

Những lợi thế và bất lợi của việc sử dụng fft/ifftphương pháp đơn giản để lọc băng thông là gì? Tại sao mọi người thích sử dụng bộ lọc kỹ thuật số FIR hoặc IIR?

Ví dụ, fft/ifftphương pháp có dễ bị rò rỉ quang phổ hoặc gợn sóng hơn so với các bộ lọc kỹ thuật số đã thiết lập không? Có phải phương pháp cũng bị trễ pha? Có cách nào để hình dung đáp ứng xung cho phương pháp lọc này để so sánh không?


Câu hỏi liên quan (nhưng không nhất thiết là trùng lặp): Electronics.stackexchange.com/questions/100348/why-use-a-filter/
Kẻ

Sử dụng FFT để lọc tín hiệu là hoàn toàn hợp lệ, nhưng có một vài điều cần chú ý. Xem câu hỏi / câu trả lời tương tự này để biết thêm thông tin: stackoverflow.com/a/2949227/565542
sbell

5
Các câu hỏi như thế này có thể phù hợp hơn cho trang Xử lý tín hiệu .
Jason R

2
Tôi nghĩ rằng Hướng dẫn của nhà khoa học và kỹ sư về xử lý tín hiệu số của Steven W. Smith đã có câu trả lời. Tôi nghĩ rằng anh ấy nói rằng mẫu trong - mẫu ra hiệu quả hơn nhiều với bộ lọc kỹ thuật số. Nhưng, có một chiều rộng tối thiểu của cửa sổ (64 mẫu trở lên, tôi không nhớ chính xác) khi thích hợp hơn để chuyển đổi chuyển đổi FFT nơi bạn có thể có bộ lọc gạch trong miền freq. Hiệu quả không phải là vấn đề duy nhất. Bộ lọc gạch ngụ ý rằng bạn cần sử dụng các mẫu từ tương lai, điều này là không thể trong thời gian thực.
Val

Cảm ơn, tôi đã tìm kiếm một cái gì đó giống như trang Xử lý tín hiệu, nhưng không thể tìm thấy nó.
Kouichi C. Nakamura

Câu trả lời:


9

Lý do chính khiến việc xử lý miền tần số không được thực hiện trực tiếp là độ trễ liên quan. Để thực hiện, giả sử, một FFT trên tín hiệu, trước tiên bạn phải ghi lại toàn bộ tín hiệu miền thời gian, bắt đầu kết thúc, trước khi bạn có thể chuyển đổi nó thành miền tần số. Sau đó, bạn có thể thực hiện quá trình xử lý của mình, chuyển đổi nó trở lại miền thời gian và phát kết quả. Ngay cả khi hai chuyển đổi và xử lý tín hiệu ở giữa có hiệu quả tức thời, bạn không nhận được mẫu kết quả đầu tiên cho đến khi mẫu đầu vào cuối cùng được ghi lại. Nhưng bạn có thể nhận được kết quả miền tần số "lý tưởng" nếu bạn sẵn sàng chấp nhận điều này. Ví dụ: một bài hát dài 3 phút được ghi ở 44100 mẫu / giây sẽ yêu cầu bạn thực hiện 8 triệu điểm biến đổi, nhưng đó không phải là vấn đề lớn đối với CPU hiện đại.

Bạn có thể muốn chia tín hiệu miền thời gian thành các khối dữ liệu có kích thước cố định nhỏ hơn và xử lý chúng riêng lẻ, giảm độ trễ xuống độ dài của khối. Tuy nhiên, điều này không hoạt động vì "hiệu ứng cạnh" - các mẫu ở một trong hai khối nhất định sẽ không thẳng hàng với các mẫu tương ứng của các khối liền kề, tạo ra các kết quả có thể bị phản đối trong kết quả.

Điều này xảy ra do các giả định tiềm ẩn trong quá trình chuyển đổi giữa miền thời gian và miền tần số (và ngược lại). Ví dụ, FFT và IFFT "giả sử" rằng dữ liệu là tuần hoàn; nói cách khác, các khối dữ liệu miền thời gian giống hệt nhau đến trước và sau khi khối được xử lý. Vì điều này nói chung là không đúng sự thật, bạn nhận được các hiện vật.

Xử lý miền thời gian có thể có vấn đề của nó, nhưng thực tế là bạn có thể kiểm soát độ trễ và nó không tạo ra các tạo phẩm định kỳ làm cho nó trở thành người chiến thắng rõ ràng trong hầu hết các ứng dụng xử lý tín hiệu thời gian thực.

(Đây là phiên bản mở rộng của câu trả lời trước của tôi .)


1
Cảm ơn rất nhiều cho câu trả lời chi tiết bằng những từ đơn giản. Bây giờ tôi có thể thấy rằng trong câu hỏi của tôi, tôi nên đề cập rằng công việc của tôi chủ yếu là phân tích ngoại tuyến thay vì xử lý trực tuyến hoặc thời gian thực. Tôi sẽ chỉnh sửa câu hỏi. Quan điểm của bạn khá rõ ràng: Vì FFT yêu cầu toàn bộ thời lượng dữ liệu, bạn đã đợi cho đến khi ghi xong.
Kouichi C. Nakamura

1
Được rồi. Hãy để tôi chỉ ra một điều nữa về lọc miền tần số có thể là vấn đề đối với bạn: Các bộ lọc sẽ không phải là nguyên nhân trong miền thời gian. Nói cách khác, các phản ứng thúc đẩy của họ kéo dài cả thời gian tích cực và tiêu cực. Điều này có thể có một số hiệu ứng đáng ngạc nhiên nếu bạn không biết về nó.
Dave Tweed

Cảm ơn. Tôi đã tra cứu "Bộ lọc nhân quả" trên Wikipedia. Theo định nghĩa, boxcar FFT không quan tâm đến thời gian, vì vậy tôi có thể thấy nó không phải là nguyên nhân. Bản chất đó giải thích lý do tại sao bạn không thể sử dụng nó để lọc thời gian thực.
Kouichi C. Nakamura

3
@DaveTweed: Khẳng định của bạn về việc yêu cầu FFT 8 triệu điểm để lọc bài hát dài 3 phút được lấy mẫu ở 44,1 kHz là không chính xác. Các thuật toán tích chập dựa trên FFT trên thực tế được sử dụng rất nhiều trong thực tế. Các phương pháp như chồng chéo-tiết kiệmchồng chéo-add được sử dụng để kích thước FFT khiêm tốn hơn (và do đó chế biến độ trễ) là bắt buộc. Các kỹ thuật này thực hiện chính xác những gì đoạn thứ hai của bạn gợi ý: sử dụng các khối nhỏ hơn trong khi xử lý các "hiệu ứng cạnh" xảy ra giữa chúng.
Jason R

2
@DaveTweed: Tôi không đồng ý. Các phương pháp tích chập nhanh như chồng chéo-lưu và thêm chồng chéo là tương đương (chính xác đến số) với tích chập tuyến tính trực tiếp (nghĩa là thực hiện bộ lọc trong miền thời gian). Không có sự thỏa hiệp về hiệu suất trong các điều kiện biên của bất kỳ loại nào so với xử lý miền thời gian và độ trễ giới hạn của chúng vẫn giúp chúng hữu ích cho nhiều ứng dụng thời gian thực. Tôi bảo đảm rằng việc lọc miền tần số yêu cầu một FFT lớn trên toàn bộ tín hiệu đầu vào là không đúng sự thật và tôi không chắc ý của bạn về xử lý miền tần số "thuần túy" trong ngữ cảnh này.
Jason R

2

Bạn chắc chắn có thể sử dụng các bộ lọc lý tưởng "boxcar" trong miền tần số. Duality nói rằng điều này tương đương với việc kết hợp với một hàm chân có độ dài vô hạn. Để giảm các tạo tác liên quan đến việc làm cho độ dài hữu hạn, hàm chân thường được nhân với một cửa sổ. Bạn có thể đã nghe nói về Hamming, Hanning (thực ra là von Hann), nâng cao cosin và các kỹ thuật cửa sổ khác. Phép tích chập có thể tính toán đơn giản hơn so với aproach fft / ifft, nhưng các câu trả lời là như nhau.

Mỗi phương pháp sẽ có kìm và minuses. Butterworth là IIR và boxcars là FIR. Butterworths có thể tâng bốc trong băng chuyền, nhưng có lẽ với độ dốc ít hơn, tùy thuộc vào thứ tự của IIR và chiều rộng của FIR. lọc sẽ khó thực hiện hơn trong thời gian thực.


1
Để được giải thích thực sự rõ ràng về cửa sổ và lọc khối, hãy xem cuốn sách, Bộ lọc kỹ thuật số của RW Hamming. Có sẵn từ Dover, vì vậy giá rất độc đáo. (Tình cờ, Scott, tôi nghĩ rằng đây là cửa sổ Hamming được đặt tên và von Hann là người đã đặt tên cho mình để đặt tên cho cửa sổ của mình)
The Photon

Ngoài ra, tôi khá chắc chắn rằng một chiếc xe chở hàng được triển khai với FFT, theo định nghĩa, hoàn toàn bằng phẳng trong dải thông. Khi chúng ta nói bộ lọc Butterworth "phẳng tối đa", tôi tin rằng chúng ta chỉ nói về nó trong bối cảnh của các bộ lọc nhân quả (và Wiki nói rằng thậm chí có thể tạo ra bộ lọc Chwardschev ngược phẳng hơn so với Butterworth).
Photon

1
Đồng ý cho chiều dài vô hạn lý tưởng, nhưng không chắc chắn sau khi cắt và cửa sổ
Scott Seidman

@ThePhoton Cảm ơn bạn đã chỉnh sửa Hamming / von Hann. Không thể hình dung chính xác kệ sách của tôi ở nhà.
Scott Seidman

@ Photon; Cảm ơn cuốn sách Bộ lọc kỹ thuật số của Hamming . Tôi nhìn vào nó và nó dường như được viết đặc biệt cho những người học tiểu học. Tôi đã mua nó với một hy vọng. :)
Kouichi C. Nakamura

0

Câu hỏi liên quan

Tại sao nó là một ý tưởng tồi để lọc bằng cách loại bỏ các thùng FFT? /signals/6220/why-is-it-a-bad-idea-to-filter-by-zeraging-out-fft-bins

Xóa giá trị khỏi kết quả FFT giống như lọc? /signals/11487/removing-values-from-fft-result-same-as-filtering?noredirect=1&lq=1

Tại sao chúng ta sử dụng cửa sổ trong miền thời gian thay vì FFT sửa đổi phổ và thay vì nghịch đảo FFT /signals/8911/why-do-we-use-window-in-time-domain-rather -than-do-fft-Sửa-phổ-và-t? noredirect = 1 & lq = 1

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.