2011-07-12 42 views
7

Bạn có biết một số thư viện C++ triển khai bộ lọc IIR không? Tôi cần một cái gì đó tương tự như chức năng lọc của Matlab (B, A, X). Mặc dù không cần thiết, tôi muốn thực hiện mẫu trực tiếp IIR 2.Thư viện C++ cho bộ lọc IIR

Trả lời

12

Có quãng tám, một bản sao MatLab nguồn mở, bạn có thể sử dụng bản sao của nó (nhưng có thể bạn sẽ sử dụng loại ma trận đặc biệt của nó).

Đang tìm kiếm các "C++ IIR lọc" tìm thấy một loạt các dự án khác, chẳng hạn như:

Ngoài ra còn có rất nhiều cuốn sách về đề tài này, cho ví dụ:

Nói chung, việc triển khai bộ lọc IIR rất dễ dàng. Sử dụng phần cứng máy tính của bạn mạnh mẽ và hiệu quả hơn, nhưng chúng đòi hỏi kiến ​​thức về ứng dụng cụ thể của bạn (ví dụ: lấy lại mẫu, v.v.) vì vậy không thực sự phù hợp để triển khai thư viện.

+0

SPUC không được duy trì kể từ năm 2005, nhưng cảm ơn cho dspfilterscpp! –

0

Bạn có thể thử dự án SPUC trên sourceforge. Họ có một số chức năng DSP nhưng có rất ít tài liệu.

+0

Không được duy trì kể từ năm 2005 –

+2

@Andrejs: Nhưng tôi sẽ tưởng tượng rằng lọc IIR sử dụng C++ sẽ thay đổi rất ít. Có lẽ một vài tối ưu hóa ở đây và ở đó .. nhưng không có nhiều thay đổi về lý thuyết .. – Sriram

+0

@Sriram, Đúng vậy, nhưng C++ có một phiên bản mới với những thay đổi đáng kể đối với thuật toán thư viện chuẩn và vùng chứa. Ngoài ra, một số cấu trúc dữ liệu đệm tín hiệu có thể có lợi từ việc chuyển các nhà xây dựng. –

2

Bạn cũng có thể thử GNURadio (gnuradio.org), chứa tất cả các loại thành phần cho phần mềm được xác định radio (bao gồm bộ lọc iir). Nó ban đầu là tất cả C++, bây giờ nó là một loạt các mô-đun được viết bằng C++ với các ràng buộc python, nhưng bạn vẫn có thể sử dụng mã C++ trực tiếp.