Як вирішити, на якій платформі найкраще реалізувати обробку аудіо в режимі реального часу?


15

При розробці продуктів я весь свій алгоритм проектую в Matlab. Зазвичай вони є досить базовими, фільтрами IIR або FIR або двома, парою FFT і т. Д. Коли настає час перенести його у вбудоване середовище, мені завжди важко вирішити, на якій платформі запустити його. Я зазвичай думаю про такі (широкі) платформи:

  • DSP ядро
  • FPGA
  • Мікроконтролер
  • ARM

Які фактори слід враховувати, намагаючись прийняти це рішення?


2
Чому ви відрізняєте "ARM" від "Microcontroller"? Намагаєтеся класифікувати частини DI + ARM TI? Ви намагаєтесь відокремити невеликі речі з великими мікропроцесорами? (У цьому останньому випадку вам, мабуть, слід включити MIPS та 32-розрядні ядра для конкретного виробника)
Кевін Вермер

Коли я думаю про мікроконтролер, я думаю про PIC, Atmel тощо, але я вважаю, що ARM може потрапити і під це. Я не намагався сказати, що це всі варіанти, просто запитував, які фактори слід враховувати.
Kellenjb

1
Що ви визначаєте "найкращим"? Ви обмежені владою? Вартість? Простота програмування? Гнучкість?
Олівер Чарльворт

@Oli Це все питання, які фактори слід враховувати, намагаючись вирішити.
Kellenjb

3
@Kellen: На даний момент це питання трохи схоже на "Як вирішити, який автомобіль найкращий?", Без додаткових обмежень.
Олівер Чарльворт

Відповіді:


13

Якщо ви дотримуєтесь "стандартних алгоритмів", таких як IIR, FIR, radix-2 або 4 FFT (тобто речі, які добре відповідають архітектурам DSP без особливого потоку управління), ви можете спробувати це:

Порахуйте, скільки вам потрібно «множити накопичує» за секунду у всіх ваших алгоритмах.

  • <10 мільйонів, ймовірно, ви можете отримати швидкий мікроконтролер, щоб виконувати цю роботу (або навіть повільний, якщо ви <1М)
  • <100М - це легка територія DSP
  • <1G, швидше за все, піддається швидкій території DSP
  • 1G-10G - це місце, де відбувається перехрестя між DSP і FPGA
  • > 10G - це кілька DSP або FPGA

2
Це насправді дуже приємний список для довідки!
Kellenjb

3
Просто пам’ятайте, що множте на 10 разів кожні пару років :)
Мартін Томпсон,

Чи можете ви навести приклад "швидкого мікроконтролера"?
ендоліт

1
@endolith: не маючи жодної ймовірності того, що він буде актуальним наступного разу, коли ми подивимось :) На початку 2014 року, можливо, щось на зразок LPC1768 (який працює на частоті 100 МГц - трохи підштовхує 10MMACS)
Мартін Томпсон,

@MartinThompson: Бібліотека DSP для LPC1700 каже, що Cortex-M3 робить "2-цикльний (32x32) +32 -> 32 підписані множини накопичуються", тож 50 MMAC?
ендоліт

11

Наскільки мені відомо, ARM слід вважати архітектурою, а не платформою. Однак питання досить актуальне, яку платформу використовувати для обробки RT-сигналів (в даному випадку аудіо).

Ви можете почати, задаючи наступні питання, не в чіткому порядку:

  • Скільки часу у мене на реалізацію?
  • Які мої обмеження влади?
  • Які математичні операції мені потрібні? Вам може знадобитися паралельно багато множників, а отже, обмежте свій вибір.
  • Скільки мені потрібно пам'яті? (більшість MCU обмежені)
  • [Важливо] Яка частота роботи? Скільки я можу втиснути протягом періоду вибірки, підтримуючи низьку робочу частоту?
  • Які бібліотеки доступні для мого вибору реалізації?

Я б почав з перегляду алгоритму в першу чергу. Якщо, наприклад, вам потрібно багато FFT та MAC-операцій, ви, ймовірно, можете виключити більшість мікроконтролерів і більше зосередитись на ядрах DSP. Майте на увазі, що є MCU з вбудованими ядрами DSP.

Ще одним важливим питанням буде ваша здатність та досвід у сфері впровадження. Більшість людей ухиляються від FPGA, оскільки для їх використання потрібно використовувати HDL. Ще одна причина ухилятися від FPGA - це потреба в потужності.


2

Маючи лише інформацію, яку ви надаєте, це, мабуть, ARM (прості IIR та FIR), але є й інші фактори, які слід врахувати, такі як вимоги до енергії, вимоги до вводу-виводу, додаткові функції, які ви очікуєте реалізувати: Скільки часу на розробку ви заощадите, якби цей пристрій було підключення до мережі та API для зміни параметрів DSP у полі?

Чи розглядали ви, як розширити спектр своїх можливостей на смартфони чи компактні комп'ютери, наприклад, на борту Beagle? Ви можете зрозуміти, що обробка сигналу - лише невелика частина всієї проблеми, яку ви вирішуєте.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.