Библиотека C / C ++ или пример кода для DSP с использованием TI-MSP430 - PullRequest
5 голосов
/ 24 декабря 2010

Я работаю над небольшим проектом dsp, выполняющим обработку звука (например, выборку частоты Найквиста, избыточную и недостаточную выборку, реконструкцию), которая встраивается в реальном времени с использованием моей платы. Текущая плата / чип, который я использую, это серия msp430 от Texas Instruments.

MSP430F5438 Доска экспериментатора http://focus.ti.com/docs/toolsw/folders/print/msp-exp430f5438.html

Прежде всего, вы бы порекомендовали купить копию Matlab или Octave в качестве моего основного инструмента кодирования. Я использую CCS (Code Composer Studio) от Texas Instruments, которая пришла с моей платой.

Во-вторых, есть ли какая-нибудь библиотека DSP (с открытым исходным кодом) для c / c ++, которую я могу использовать для своего проекта.

Ответы [ 4 ]

1 голос
/ 24 декабря 2010

Ваша доска должна была прийти с примерами кода. Согласно странице, на которую вы ссылались выше, она поставляется с MSP430F54xx Примеры кода (Rev. O) (zip 525 КБ) . Вы пробовали какой-либо из этих примеров?

1 голос
/ 24 декабря 2010

Я думаю, что Matlab может быть полезен для написания алгоритмов "на бумаге", не беспокоясь об аппаратном обеспечении.Это также полезно для различных функций DSP, которые вы можете попробовать (которые поставляются с Matlab или доступны в виде пакета / набора инструментов).Тем не менее, функцию, которую вы получаете «бесплатно» в Matlab, нужно будет переписать, если она не существует в библиотеке C / C ++.

Также вам в конечном итоге понадобится получить код в MSP -Я использовал CCS в прошлом, а также IAR Systems , что меня очень порадовало.

Для вашего второго вопроса, проверьте ответы на этот вопрос SO , который задает то же самое.Одна из перспективных ссылок выглядит так: http://spuc.sourceforge.net/.

0 голосов
/ 25 декабря 2010

MSP430 не является специализированным процессором DSP. Однако это (не обязательно) означает, что вы не можете обрабатывать аудио с ним, но это может быть не просто.

Вероятно, я бы попытался установить прерывание по таймеру на необходимой частоте дискретизации звука, которая считывает сэмпл с АЦП, что-то с ним делает и выводит на аудио ЦАП.

У вас есть только 12-битный АЦП, поэтому не ожидайте чудес или звука с качеством CD.

void my12KHzTimer()
{
  writeDAC(readADC() / 2); // DSP loop to reduce volume by 6 dB
}

writeDAC и readADC должны делать то, что говорят на жестяной коробке ...

0 голосов
/ 24 декабря 2010

В общем, использование языка высокого уровня для алгоритмической разработки - отличная идея. Я слышал, хотя не знаю наверняка, что Code Composer Studio имеет интеграцию с MATLAB до такой степени, что вы можете запускать код MATLAB прямо на своей цели. Если

  • это правда,
  • у вас есть бюджет,
  • вы не пытаетесь выжать из чипа каждый последний грамм производительности,

тогда это определенно отличная особенность. В остальном, Octave - очень хорошая альтернатива. Иногда он медленнее, чем MATLAB, и не имеет некоторых более экзотических наборов инструментов, но для создания прототипов и обучения он идеально подходит и БЕСПЛАТНО.

Недавно я использовал Python с NumPy для создания прототипов, и я очень доволен этим. Вы можете рассмотреть это, а не MATLAB / Octave, особенно если вы работаете с C ++. С этим языком легко работать, в отличие от MATLAB, и библиотеки расширений NumPy (а иногда и SciPy) предоставляют множество одинаковых базовых функций. Также легко вызывать библиотеки C из Python, предоставляя простой способ итеративного переноса частей ваших высокоуровневых вещей в C.

Что касается библиотек, я также слышал хорошие новости о SPUC , который gary comtois рекомендовал. Некоторое время я не работал с микросхемой TI, но они использовали некоторые строительные блоки, такие как sin, cos, FFT и biquad, в различных примечаниях к приложениям или даже в виде связываемой библиотеки. .

...