Thực hiện bộ lọc IIR điểm cố định trong thời gian thực trong C


7

Tôi muốn triển khai bộ lọc IIR điểm thấp cố định thứ tư trong C (với số học Q15) và tôi sẽ chuẩn bị bộ lọc này bằng cách sử dụng hai giai đoạn ghép các bộ lọc bi-quad mẫu II trực tiếp.

Tôi đã tìm thấy vô số triển khai C và hệ số ví dụ trên các sách xử lý tín hiệu số, nhưng tôi thấy không phải chúng không đáng tin cậy trong quá trình xác minh (chúng tạo ra tràn, không làm giảm các thành phần tần số dự kiến, v.v.).

Mà thực hiện C là phù hợp cho vấn đề này? Và ngoài ra, có bất kỳ hệ số mẫu để xác minh việc thực hiện này?


1
Nếu bạn không tìm thấy bất kỳ triển khai nào phù hợp với mình, điều gì ngăn cản bạn tự lăn lộn? Bạn dường như hiểu được những nơi bạn đã tìm thấy bị thiếu, vì vậy chỉ cần tăng chúng để phù hợp với yêu cầu của bạn. Một IIR bậc bốn dựa trên các phần bậc hai không quá phức tạp để viết.
Jason R

Là vấn đề của bạn thực sự về thiết kế bộ lọc hay bạn đã có các đồng hiệu quả và muốn thực hiện nó?
Dipan Mehta

Tôi đã chuẩn bị bộ lọc và tôi có hệ số.
albin

Câu trả lời:


8

Mặc dù đây có vẻ là một câu hỏi đơn giản đáng chú ý, nhưng nó đòi hỏi một câu trả lời khá phức tạp.

Tôi không nghĩ có một "một kích cỡ" phù hợp với tất cả các giải pháp. Sự lựa chọn tốt nhất của thuật toán sẽ phụ thuộc vào độ ồn mà bạn có thể chịu đựng và loại thông thấp (độ dốc & tần số). Ví dụ, ở tốc độ mẫu 44,1 KHz, Butterworth bậc 4 ở 10 kHz khá thẳng về phía trước, trong khi đường thông thấp ở 100Hz là một nỗi đau của hoàng gia. Về bản chất, nó phụ thuộc vào mức độ cực của bạn với vòng tròn đơn vị.

Lỗi lượng tử hóa và làm tròn của các bộ lọc IIR thường được chuyển đến đầu ra được cân bằng chức năng truyền chỉ cực. Bộ lọc thông thấp Butterworth 10 kHz thứ 4 có mức khuếch đại nhiễu trường hợp xấu nhất chỉ 5dB, do đó không có vấn đề gì nhiều.

Tuy nhiên, ở mức thấp 100 Hz (lại là bậc 4 bậc 4), tiếng ồn được khuếch đại lên tới 75 dB. Nếu bạn sử dụng toán học Q15, mức tiếng ồn cơ bản của bạn có thể ở mức -100dB hoặc hơn. Sau khi bạn lọc, tín hiệu của bạn đối với khẩu phần nhiễu sẽ chỉ còn 25 dB.

Đó là một trong những lý do tại sao các bộ lọc IIR cố định khá phức tạp. NẾU bạn cần tần số cắt thấp và tín hiệu nửa chừng cho tỷ lệ nhiễu, hơn các thuật toán cơ bản sẽ không hoạt động. Bạn cần xem xét toán học chính xác kép và / hoặc định hình phổ lỗi hoặc các phương pháp liên quan.

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.