Рекомендація до книги - Написання коду DSP в C


12

Я шукаю хорошу книгу, яка просто показує, як ви насправді пишете код на C, щоб виконати всі основні методи DSP.

  1. FFT.
  2. Фільтри низького та високого пропускання.
  3. Автокореляція.
  4. Обробка шуму.

І всі основи DSP, від теорії до реального коду в C.

Наприклад, у мене 1000 зразків, тепер я хотів би обчислити його FFT, видалити шуми, а потім повернутись до часової осі.

Чи є щось хороше, що охоплює все це?


1
Приємне запитання! Я змінив тег на посилання-запит, оскільки він, здається, саме те, про що ви просите.
Пітер К.

2
DFF - друкарська помилка?
Жиль

Так, у DFF немає лише FFT
Brethlosze

Відповіді:


13

Я можу порекомендувати вам дві книги про DSP для мови С.

Вставити алгоритми мови PM - C для обробки цифрових сигналів

Він старий, і ви можете легко отримати його в секонд-хенді за гідну ціну. Він охоплює майже всі 4 теми, які ви описали.

Інший, який я рекомендую:

Malepati H. - Обробка цифрових медіа: алгоритми DSP з використанням C

Він охоплює багато інших тем (включаючи алгоритми виправлення помилок та алгоритми обробки зображень / відео). Приємно у тому, що тестові сигнали надаються для перевірки вашої реалізації.


Щойно я нагадав, що на моєму столі є ще одна книга, в якій є якийсь код C для DSP.

Преса WH - Числові рецепти: мистецтво наукових обчислень

Існує дві глави про перетворення Фур'є та його застосування.


Остання пропозиція - якщо ви можете, будь ласка, використовуйте наявну бібліотеку С замість того, щоб писати власні інструменти. Немає сенсу повторно винаходити колесо.


4
Як і будь-яку іншу здатність, винаходити найкраще, коли починати з найпростіших прикладів і достатньо практикувати. Тому завжди вигідно винаходити колесо не тому, що це додає цінності як досягнення, а тому, що це дозволяє винахіднику створити необхідне розуміння природи винаходів.
Fat32

3
Я з цим повністю згоден. Тим не менш, у 99% проектів, які я робив, не було часу на винахід колеса. З іншого боку, коли я займаюся власними речами вдома, то в 99% випадків я знову вигадую колесо, щоб навчитися та вдосконалити існуючі інструменти.
jojek

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

@Curnelious Eventhof ви певною мірою праві (і для деяких бібліотек), я не можу погодитися, що всі існуючі бібліотеки безлад. І ми повинні визнати, що ми всі ними користуємося. Сенс стосується філософії, а не реальності.
Fat32

Важливим плюсом використання відомих бібліотек є те, що користувач може бути більш-менш впевнений, що код насправді переглядається. Досить часто можуть траплятися деякі крайні випадки, про які люди не будуть думати, що може бути досить проблематичним у деяких дуже конкретних ситуаціях. Зараз я не можу припустити прикладів DSP, але один дуже показовий приклад загального типу проблеми намагається обчислити кількість хвилин від певної дати в минулому до теперішнього часу. Спочатку це може виглядати так просто, як просто отримання кількості днів, але коли час роботи годинника та зміни календаря починають грати, це стає дуже складним.
AndrejaKo

7

Я рекомендую ознайомлення з обробкою сигналу від SJ Orfanidis. Це чудова книга з хорошим поєднанням теорії та практики, а також має приклади коду в C та Matlab. Після того, як ви пропрацюєте це, ви знаєте достатньо, щоб продовжувати самостійно.


0

Вставити алгоритми мови PM - C для обробки цифрових сигналів

було корисно в моїй роботі MSC зі створення фільтрів ... хоча ви можете створювати заголовки за допомогою кодера Matlab .... У мене були лише проблеми з реалізацією його fft, який був зі складними числами, замість цього, якщо trig, який простіше реалізувати в реальному житті .


-1

Ви можете подивитися вихідний код джерел openSAL та Octave функцій обробки сигналів Matlab (не C, але корисно). Це я і зробив.


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