2012-03-15 71 views
5

Tôi đã viết một dự án nghiên cứu trong MATLAB sử dụng một vài hàm mà tôi không muốn thực hiện lại trong C++, vì vậy tôi đang tìm thư viện để xử lý chúng cho tôi. Các chức năng tôi cần là: (theo thứ tự quan trọng)Thư viện C++ để xử lý tín hiệu

  1. Hilbert transform
  2. chức năng Matrix (yếu tố quyết định, ngược lại, nhân ...)
  3. rễ Tìm các đa thức (đối với độ lớn hơn 5)
  4. FFT
  5. nhiều nếp cuộn
  6. tương quan (xcorr trong matlab)
+0

Bạn đã thử tìm kiếm bất kỳ cái nào trong số này chưa? Bạn đã tìm thấy gì? –

+0

Đây là tất cả các thói quen số chuẩn, Google sẽ áp đảo bạn với các triển khai, mã nguồn mở, thương mại và mọi thứ ở giữa. Như @ Li-aung Yip hỏi - bạn đã tìm thấy gì? –

+0

'Numerical Recipes trong C' có thể chứa hầu hết những gì bạn muốn ... –

Trả lời

2

Một khi bạn đã có một FFT bạn có thể gõ tắt tất cả những gì lưu cho số 2. và 3.

Yêu cầu đại số tuyến tính có thể được đáp ứng với PETSc www.mcs.anl.gov/petsc/ mà hỗ trợ fftw.

Tôi không biết làm thế nào bạn sẽ đi về việc tìm kiếm gốc. Có thể bạn sẽ phải tự viết mã đó (bisection, phương pháp Newton, vv ..) nhưng đó là điều dễ nhất trong danh sách để thực hiện cho đến nay.

4

Tôi không biết nhiều nhất trong số đó, nhưng FFTW là 'biến đổi Fourier nhanh nhất ở phương Tây'. Nó được sử dụng trong việc thực hiện MATLAB của fft().

2

Tôi không chắc chắn về các thư viện có sẵn để sử dụng, nhưng nếu bạn đã có các hàm được viết trong MATLAB thì có một tùy chọn khác.

Nếu bạn biên dịch MATLAB functions to a dll, chúng có thể được gọi bằng chương trình C++. Điều này sẽ cho phép bạn truy cập các chức năng MATLAB mà bạn đã có mà không cần viết lại.

Các vấn đề liên quan