2009-11-19 8 views
12

Thư viện DSP nào trong C/C++ bạn sẽ giới thiệu? Tôi sẽ cần nó cho các hệ thống nhúng thời gian thực. Nó sẽ là tuyệt vời để có xử lý tín hiệu âm thanh đi kèm quá, nhưng không phải là bắt buộc. Nếu bạn có kiến ​​thức về bất kỳ thư viện DSP nào, vui lòng chia sẻ.Bất kỳ thư viện DSP C/C++ nào tốt?

+0

Nó có phải là nguồn mở, miễn phí hay không? Bạn sử dụng bộ vi xử lý nào? –

+0

Nguồn mở là không bắt buộc nhưng tốt để có. Chúng tôi đang nghĩ đến AVR, ARM và thậm chí một số chip tầm trung. Cảm ơn vì đã trả lời. – Viet

+0

Với các phần bạn đã đề cập, bạn có thể muốn gắn thẻ "nhúng" này nhưng bạn đã sử dụng hạn ngạch thẻ của mình, vì vậy tôi sẽ để lại cho bạn để gắn thẻ lại. Tôi khuyên bạn không cần "DSP" và "xử lý tín hiệu kỹ thuật số" – Clifford

Trả lời

8

Chúng tôi đang nghĩ đến việc AVR, ARM và thậm chí một số chip tầm trung

Cả được thiết kế đặc biệt cho DSP, nhưng nếu yêu cầu hiệu suất của bạn đủ khiêm tốn mà có thể không là một vấn đề. Bạn cần DSP để làm gì? Tôi khuyên bạn nên chọn nền tảng của mình trước tiên và sử dụng thư viện của nhà cung cấp vì nó sẽ được tối ưu hóa cho nền tảng này. Nếu nhà cung cấp không có thư viện DSP thì phần đó có thể không phải là một nền tảng DSP tốt. Ví dụ:

Ví dụ: thiết bị vi điều khiển với hệ thống phụ DSP mang lại hiệu suất tốt trên mỗi MHz cho các thuật toán DSP như FIR và FFT và Microchip cung cấp thư viện DSP được tối ưu hóa cho phần này.

ST cung cấp thư viện DSP cho các bộ phận STM32 của chúng. Đây là các thiết bị Cortex M3 chứ không phải DSP, nhưng kiến ​​trúc Harvard và hướng dẫn tích lũy nhân tạo làm cho chúng có đủ khả năng trong các ứng dụng cấp thấp như điều khiển động cơ hoặc xử lý âm thanh của băng thoại. Về mặt kỹ thuật kể từ khi thư viện DSP được cung cấp dưới dạng mã nguồn, nó có thể sẽ chuyển đến bất kỳ thiết bị lệnh hướng dẫn Thumb-2 nào, nhưng có thể không được cấp phép cho việc sử dụng đó. Trong khi ở cùng tần số hoạt động, chúng chậm hơn nhiều so với dsPIC tại các thuật toán DSP (khi sử dụng các thư viện lắp ráp tối ưu), chúng nhanh hơn nói chung khi thực thi mã C, nhưng số dặm của bạn có thể thay đổi tùy theo mã và ứng dụng.

Tương tự Atmel cung cấp thư viện DSP cho AVR32. Tôi không có kinh nghiệm trực tiếp về điều này, nhưng sẽ mong đợi hiệu suất tương đương với một thiết bị m3 Cortex. Đáng chú ý có lẽ, thư viện của Atmel là rộng rãi hơn nhiều, và tài liệu tốt hơn rằng ST's.

Nếu bạn muốn điều gì đó nhanh hơn không phải là DSP thuần túy, hãy xem xét Renesas's SH-2 thiết bị, với 2 MIPS đáng kinh ngạc trên mỗi MHz, trong nhiều ứng dụng không phải là một DSP chuyên dụng không phải là vấn đề và một số phần có phần mở rộng DSP trường hợp. Một lần nữa các nhà cung cấp cung cấp một thư viện DSP tối ưu hóa.

Khác với các thiết bị 'có mục đích chung-với-DSP-khả năng' này, tất nhiên bạn có thể chọn một DSP thực. TI sản xuất một loạt các thiết bị như vậy từ thấp đến cao. Tuy nhiên, theo kinh nghiệm của tôi, chi phí phát triển cao do chi phí cao của TI cho các công cụ dev của nó, và nhiều phần là một chút ánh sáng trên các thiết bị ngoại vi trên chip.

[CẬP NHẬT 23 Apri l2012] Các bộ phận STM32F4xx mới là Cortex-M4 dựa trên bao gồm phần cứng DSP và dấu phẩy động. Họ có cùng một API thư viện DSP như phần cơ sở Cortex-M3 STM32F1xx/F2xx nhưng tận dụng lõi DSP để có hiệu suất tốt hơn.

+0

Đây không phải là thư viện. Nhưng một bộ chức năng đáng thương. ARM DSP lib cũng quá tệ để sử dụng nó. Một ví dụ về lib tốt là http://aquila-dsp.org/ nhưng bạn cần một trình biên dịch mạnh mẽ và mạnh mẽ hiện đại để chạy nó. – kyb

+0

@kyb: Nếu bạn có đề xuất thì bạn nên đăng câu trả lời. Rõ ràng một thư viện là "một tập hợp các chức năng" (đáng thương hay cách khác), tôi không chắc rằng tuyên bố ý kiến ​​là hữu ích hay thích hợp. Hơn tám năm nữa, tôi chắc rằng tôi cũng sẽ đưa ra những lời khuyên khác nhau! Trang web bạn liên kết đến thậm chí không tồn tại khi câu hỏi được hỏi. Trong thực tế ngày nay câu hỏi gần như chắc chắn sẽ được đóng cửa như là chủ đề tắt. – Clifford

2

Vì Kirill cho biết điều đó phụ thuộc vào yêu cầu và nền tảng của bạn.

Đối với các máy dựa trên intel Intel's Performance Primitives thật tuyệt vời. Khá rẻ.

+0

IPP được hỗ trợ trên ARM XScale và x86 – Clifford

1

Bạn có thể sử dụng Aquila, nó nhỏ và dễ sử dụng.

Aquila DSP Library

+0

Đó là một thư viện nhỏ đẹp nhưng tiếc là nó hiện không có hỗ trợ FIR/IIR –