Làm thế nào tôi có thể thiết kế một bộ lọc rất hẹp?


15

Giả sử tôi đã lấy tín hiệu âm thanh được lấy mẫu ở Hz và tôi muốn thiết kế bộ lọc thông thấp cách ly mọi thứ dưới ~ 60 Hz. Trong thế giới kỹ thuật số, đây là bộ lọc thông thấp với băng thông ở [ - π4800060. Ngoài ra, dải chuyển tiếp cũng phải hợp lý. Xây dựng bộ lọc FIR cho việc này có thể có rất nhiều vòi mà về lâu dài ảnh hưởng đến độ chính xác. Bộ lọc IIR quá không lý tưởng vì âm thanh chịu phản hồi pha phi tuyến tính trong các bộ lọc, vì vậy trừ khi tín hiệu được lọc, sau đó đảo ngược và lọc lại, nó không thực sự là một tùy chọn.[-π400,π400]

Một biến đổi wavelet có thể tốt hơn ở đây so với lọc thông thường trong một lần?


Có một lý do bạn không muốn hủy bỏ?
Lorem Ipsum

Không, decimating là tốt miễn là tôi có được những gì tôi muốn.
Phonon

1
Một dải chuyển tiếp "hợp lý" là gì? Điều đó sẽ xác định thứ tự bộ lọc của bạn. Ví dụ, nếu dải dừng của bạn bắt đầu ở tần số 300 Hz, có lẽ bạn đang ở trong tình trạng khá tốt. Nếu bạn muốn mức suy giảm cao ở mức nào đó như 60,1 Hz, thì nó sẽ dài. Các bộ lọc FIR dài không hẳn là xấu,
Jason R

5
Bạn cần một đặc tả bộ lọc thực tế nếu không câu hỏi là vô nghĩa. Nêu rõ gợn băng thông chấp nhận được, từ chối băng chặn, độ rộng của dải chuyển tiếp, v.v.
Paul R

Có ý nghĩa. Sẽ làm.
Phonon

Câu trả lời:


20

Nếu bạn đang tối ưu hóa thời gian kỹ thuật và trên nền tảng hỗ trợ tốt các FFT lớn (tức là không phải điểm cố định), thì hãy tham khảo lời khuyên của hotpaw2 và sử dụng phép tích chập nhanh . Nó sẽ thực hiện tốt hơn nhiều so với triển khai FIR ngây thơ và nên tương đối dễ thực hiện.

Mặt khác, nếu bạn có một thời gian để dành về vấn đề này để có được thực hiện tốt nhất hoặc đang ở trên một nền tảng điểm cố định, bạn nên sử dụng một multirate xuống lọc-up-trừ cấu trúc. Nhưng nó khó hơn một chút để làm mọi thứ đúng.

Tôi đã có quyền truy cập vào các triển khai đáng tin cậy và được tối ưu hóa cao của cả hai công cụ lọc tích chập nhanh và đa biến. Sự tích chập nhanh mất khoảng 3 lần nữa để có được hiệu suất tín hiệu tương đương so với cấu trúc đa biến. Hơn nữa, đó là ngay cả trên một nền tảng điểm nổi. Khoảng cách sẽ mở rộng đáng kể trên một điểm dsp cố định.

Trong các điều khoản chung:

Chuyển đổi xuống:

Sử dụng 8 giai đoạn của nửa bộ lọc, bộ lọc decimate-by-2 để chuyển đổi tín hiệu 48kHz của bạn thành tín hiệu 187,5 Hz. Giai đoạn đầu tiên của việc lấy mẫu xuống này có thể có dải chuyển tiếp rất rộng, cho phép năng lượng thành bí danh miễn là nó không bí danh trở lại phạm vi phụ 60 Hz. Khi các giai đoạn tiến triển, số lượng vòi cần tăng lên, nhưng chúng sẽ được áp dụng với tốc độ lấy mẫu thấp dần, do đó chi phí chung của từng giai đoạn vẫn còn nhỏ.

Lọc:

Thực hiện bộ lọc chặt chẽ của bạn xung quanh 60 Hz bw để giữ năng lượng mà cuối cùng bạn sẽ muốn trừ đi. Có một lợi thế gấp đôi khi thực hiện bộ lọc chặt chẽ của bạn ở tốc độ thấp:

  1. 1Hz băng thông chuyển tiếp lớn hơn 256 lần về tần số kỹ thuật số ở tốc độ thấp so với tốc độ ban đầu. Vì vậy, mỗi lần nhấn bộ lọc của bạn mạnh gấp 256 lần.
  2. Bản thân tín hiệu ở tốc độ thấp hơn, vì vậy bộ lọc chỉ cần xử lý 1/256 dữ liệu.

Chuyển đổi lên:

Về cơ bản, đây là mặt trái của các giai đoạn decimation. Mỗi trong số 8 giai đoạn nội suy nhân đôi tỷ lệ bằng cách ước tính mẫu đi giữa các mẫu đầu vào liên tiếp. Dải chuyển tiếp trở nên rộng hơn khi tốc độ mẫu cao hơn.

Trừ đi:

Trừ tín hiệu được lọc tốc độ thấp đầy đủ của bạn khỏi tín hiệu gốc. Nếu bạn đã điều chỉnh cho tất cả các độ trễ của nhóm một cách chính xác, cấu trúc tổng thể sẽ là bộ lọc đường cao tốc với băng thông chuyển tiếp hẹp.


Đây là một câu trả lời tuyệt vời. Tôi có thể có ý kiến ​​của bạn về bài viết này? dsp.stackexchange.com/questions/29655/ Ấn
richieqianle

6

Hãy thử bộ lọc cộng / lưu chồng lấp với FFT / IFFT dài nhất phù hợp với các ràng buộc hiệu suất tính toán và độ trễ của bạn. Bạn có thể thiết kế các bộ lọc FIR cực dài khi sử dụng phương pháp này với các FFT dài hơn.

Nếu bạn có thể FFT toàn bộ bài hát hoặc toàn bộ tệp tín hiệu âm thanh của mình, trong một FFT + IFFT rất dài (có các thuật toán FFT đặc biệt cho các vectơ dài không phù hợp với dcache hoặc RAM), bạn sẽ không cần phải thực hiện bất kỳ chồng chéo thêm / lưu xử lý và bạn có thể có được một dải chuyển tiếp rất hẹp.


4

Rõ ràng có hai sự lựa chọn: FIR & IIR. Như đã nêu FIR yêu cầu đáp ứng xung RẤT dài (1000 vòi) và tốn kém về bộ nhớ, MIPS & độ trễ với thêm / lưu chồng lấp là lựa chọn hiệu quả nhất. Tuy nhiên, độ trễ có thể là một vấn đề thực sự. Nếu bạn muốn sử dụng nó như một đường truyền cao cho loa siêu trầm rạp hát tại nhà, độ trễ sẽ cao đến mức bạn sẽ mất đồng bộ môi với video.

IIR là một số đơn đặt hàng có cường độ ít tốn kém hơn và do đó thường được sử dụng. Nó thực sự có một phản ứng pha không phẳng nhưng trong nhiều trường hợp đây không phải là vấn đề hoặc có thể được giải quyết. Ví dụ: nếu bạn cần bộ lọc thông cao để bảo vệ các trình điều khiển trong hộp âm trầm, phản hồi pha không quan trọng lắm vì phản ứng pha hệ thống tổng thể bị chi phối bởi trình điều khiển, thùng loa và âm thanh trong phòng. Bộ lọc chỉ đóng một vai trò nhỏ ở đây. Trong nhiều trường hợp, bạn cũng cần duy trì pha "tương đối" chứ không phải pha tuyệt đối. Giả sử bạn muốn áp dụng đường cao tốc trên tín hiệu A nhưng không áp dụng tín hiệu B, bạn chỉ cần đặt một đường nối phù hợp vào tín hiệu B để pha tương đối của A và B giữ nguyên. Độ trễ tổng thể và độ trễ nhóm của phương pháp này vẫn ít hơn nhiều so với phương pháp FIR.

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.