Làm cách nào để quyết định nền tảng nào là tốt nhất để thực hiện xử lý âm thanh theo thời gian thực?


15

Khi phát triển sản phẩm, tôi thực hiện tất cả các thiết kế thuật toán của mình trong Matlab. Chúng thường khá cơ bản, bộ lọc IIR hoặc FIR hoặc hai, một vài FFT, v.v. Khi đến lúc chuyển nó sang môi trường nhúng, tôi luôn gặp khó khăn trong việc quyết định nên chạy nền tảng nào. Tôi thường nghĩ về những nền tảng (rộng) này:

  • Lõi DSP
  • Đồ họa
  • Vi điều khiển
  • CÁNH TAY

Những yếu tố nào tôi nên xem xét khi cố gắng đưa ra quyết định này?


2
Tại sao bạn phân biệt "ARM" với "Vi điều khiển"? Đang cố gắng phân loại các bộ phận DSP + ARM của TI? Bạn đang cố tách những thứ nhỏ năng lượng thấp ra khỏi bộ vi xử lý lớn hơn? (Trong trường hợp cuối cùng này, có lẽ bạn nên bao gồm MIPS và lõi 32 bit dành riêng cho nhà cung cấp)
Kevin Vermeer

Khi tôi nghĩ về Vi điều khiển, tôi nghĩ đến PIC, Atmel, v.v. nhưng tôi cho rằng ARM cũng có thể nằm trong số đó. Tôi đã không cố nói rằng đó là tất cả các lựa chọn, chỉ hỏi những yếu tố nào cần được xem xét.
Kellenjb

1
Bạn xác định "tốt nhất" là gì? Bạn có bị giới hạn bởi quyền lực? Giá cả? Dễ lập trình? Uyển chuyển?
Oliver Charlesworth

@Oli Đó là toàn bộ câu hỏi, những yếu tố nào cần được xem xét khi cố gắng quyết định.
Kellenjb

3
@Kellen: Hiện tại, câu hỏi này hơi giống như "Làm thế nào để quyết định chiếc xe nào là tốt nhất?", Không có ràng buộc nào nữa.
Oliver Charlesworth

Câu trả lời:


13

Nếu bạn đang giữ các "thuật toán tiêu chuẩn" như IIR, FIR, radix-2 hoặc 4 FFT (nghĩa là công cụ phù hợp với kiến ​​trúc DSP mà không cần nhiều luồng điều khiển), bạn có thể thử điều này:

Đếm số lượng "tích lũy nhân" mà bạn cần mỗi giây trong tất cả các thuật toán của bạn.

  • <10 triệu bạn có thể có được một bộ vi điều khiển nhanh để thực hiện công việc (hoặc thậm chí là một bộ điều khiển chậm nếu bạn <1M)
  • <100M là lãnh thổ DSP dễ dàng
  • <1G có khả năng là lãnh thổ DSP nhanh
  • 1G-10G là nơi giao thoa giữa DSP và FPGA
  • > 10G là nhiều DSP hoặc FPGA

2
Đây thực sự là một danh sách rất hay để tham khảo!
Kellenjb

3
Chỉ cần nhớ nhân lên gấp 10 lần mỗi vài năm hoặc lâu hơn :)
Martin Thompson

Bạn có thể cho một ví dụ về "vi điều khiển nhanh" không?
endolith

1
@endolith: không có khả năng nó sẽ trở thành hiện tại vào lần tới khi chúng ta nhìn vào đầu năm 2014, có thể là một cái gì đó giống như LPC1768 (có xung nhịp 100 MHz - đẩy nó một chút trong 10MMACS tôi đoán)
Martin Thompson

@MartinThndry: Thư viện DSP cho LPC1700 cho biết Cortex-M3 thực hiện "2 chu kỳ (32x32) +32 -> 32 tích lũy nhân có chữ ký", vậy 50 MMAC?
endolith

11

Theo tôi biết, ARM nên được coi là một kiến ​​trúc chứ không phải là một nền tảng. Tuy nhiên, câu hỏi khá liên quan đến việc sử dụng nền tảng nào để xử lý tín hiệu RT (trong trường hợp này là âm thanh).

Bạn có thể bắt đầu bằng cách đặt câu hỏi sau đây, không theo thứ tự nghiêm ngặt:

  • Tôi có bao nhiêu thời gian để thực hiện?
  • Hạn chế sức mạnh của tôi là gì?
  • Tôi cần những thao tác toán học nào? Cuối cùng, bạn có thể yêu cầu nhiều số nhân song song và do đó hạn chế lựa chọn của bạn.
  • Tôi cần bao nhiêu bộ nhớ? (hầu hết các MCU đều có giới hạn)
  • [Quan trọng] Tần suất hoạt động của tôi là gì? Tôi có thể vắt được bao nhiêu trong khoảng thời gian lấy mẫu giữ tần số hoạt động thấp?
  • Những thư viện nào có sẵn cho sự lựa chọn của tôi thực hiện?

Tôi sẽ bắt đầu bằng cách nhìn vào thuật toán đầu tiên và quan trọng nhất. Ví dụ, nếu bạn cần rất nhiều hoạt động FFT và MAC, có lẽ bạn có thể loại trừ hầu hết các bộ vi điều khiển và tập trung nhiều hơn vào lõi DSP. Hãy nhớ rằng có MCU với lõi DSP nhúng.

Một xem xét quan trọng khác sẽ là khả năng và chuyên môn của bạn trong lĩnh vực thực hiện. Hầu hết mọi người né tránh FPGA vì bạn phải sử dụng HDL để thực hiện. Một lý do khác để né tránh các GPU là yêu cầu năng lượng.


2

Chỉ với thông tin bạn cung cấp lựa chọn có lẽ là ARM, (IIR và FIR đơn giản) nhưng có các yếu tố khác cần xem xét như yêu cầu về năng lượng, yêu cầu IO, các tính năng bổ sung mà bạn mong muốn thực hiện: Bạn sẽ tiết kiệm được bao nhiêu thời gian phát triển nếu thiết bị này có kết nối mạng và API để sửa đổi các tham số DSP trong trường không?

Bạn đã xem xét mở rộng phạm vi tùy chọn của mình sang điện thoại thông minh hoặc máy tính nhỏ gọn như Beagle Board chưa? Bạn có thể nhận ra rằng việc xử lý tín hiệu chỉ là một phần nhỏ trong toàn bộ vấn đề bạn đang giải quyết.

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.