У нашій інженерної лабораторії з'явилася нова російська плата для експериментів — налагоджувальний модуль Салют-ЭЛ24Д1 на багатоядерний сигнальному мікропроцесорі 1892ВМ14Я. Подивимося, на що він здатний.

Читати далі →

Програмування багатоядерних DSP-процесорів TMS320C66x з використанням OpenMP

В статті описано підхід до програмування багатоядерних сигнальних процесорів на основі OpenMP. Розглядаються директиви OpenMP, розбирається їх зміст і варіанти використання. Робиться акцент на цифрових сигнальних процесорах. Приклади застосування директив OpenMP обрані наближеними до задач цифрової обробки сигналів. Реалізація проводиться на процесорі TMS320C6678 фірми Texas Instruments, що включає 8 DSP-ядер. У частини I статті розглядаються основні директиви OpenMP. У II частині статті планується доповнити список директив, а також розглянути питання внутрішньої організації роботи OpenMP і питання оптимізації програмного забезпечення.

Дана стаття відображає лекційно-практичний матеріал, пропонований слухачам в рамках курсів підвищення кваліфікації за програмою «Багатоядерні процесори цифрової обробки сигналів C66x фірми Texas Instruments», які проводяться щорічно в Рязанському радіотехнічному університеті. Стаття планувалася до публікації в одному з науково-технічних журналів, але в силу специфіки розглянутих питань було прийнято рішення про накопичення матеріалу для навчального посібника з багатоядерним DSP-процесорів. А поки даний матеріал буде збільшуватись, він цілком може полежати на сторінках Інтернету у вільному доступі. Відгуки та побажання вітаються.

Читати далі →

Нарешті пристойний вітчизняний процесор ЦОС – 1967BH28

image

Незважаючи на стрімкий розвиток процесорів загального призначення (ARM, x86 і більш екзотичних), не втрачають своєї актуальності спеціалізовані процесори цифрової обробки сигналів (ЦОС). Одним з найпопулярніших процесорів ЦОС з плаваючою точкою в рідній вітчизні став процесор ADSP-TS201S фірми Analog Devices. В свій час (10-15 років тому) цей процесор не знав собі рівних у високопродуктивних системах ЦОС, що працюють в реальному часі. Його основні характеристики:

  • Частота процесора – 600 МГц
  • Об'єм внутрішньої пам'яті – 3 Мбайт
  • 4 високошвидкісних порту – 600 Мбайт/сек
  • Зовнішня шина – 100 МГц
  • Канали DMA – 12 каналів
Рішення на процесорі ADSP-TS201S добре себе зарекомендували в широкому класі апаратури як цивільного, так і не дуже цивільного призначення. Але всьому хорошому приходить самі знаєте що кінець.

Читати далі →

Програмування&Музика: Delay, Distortion і модуляція параметрів. Частина 4

Всім привіт! Ви читаєте четверту частину статті про створення VST-синтезатора на З#. У попередніх частинах ми генерували сигнал, застосовували до нього амплітудну обвідна і фільтр частот.
В цей раз ми розглянемо ефекти Distortion — спотворення сигналу, знайоме кожному электрогитаристу і Delay (воно ж відлуння).
Безліч різних цікавих звучань можна отримати, якщо міняти (модулювати) значення параметрів складових частин синтезатора (генератора, фільтра, ефектів) у часі. Розглянемо варіант, як це можна зробити.
Вихідний код написаного мною синтезатора доступний на GitHub'е.

Скріншот VST плагін GClip

Читати далі →

Програмування&Музика: Частотний фільтр Баттервота. Частина 3

Всім привіт!
Ви читаєте третю частину статті про створення VST-синтезатора на З#. У попередніх частинах було розглянуто SDK і бібліотеки для створення VST плагінів, розглянуто програмування осцилятора і ADSR-огинаючої для керування амплітудою сигналу.
У цій частині я розповім, як розрахувати і закодить фільтр частот, без якого не обходиться жоден синтезатор. А без еквалайзера немислима обробка звуку)
Буде розглянуто вихідний код і застосування еквалайзера з бібліотеки NAudio (бібліотека для роботи зі звуком .NET).
Увага — буде багато матана — будемо розраховувати формули для коефіцієнтів фільтра.
Вихідний код написаного мною синтезатора доступний на GitHub'е.

Скріншот VST плагін-еквалайзера Fab Filter Pro Q

Читати далі →

Програмування&Музика: ADSR-обвідна сигналу. Частина 2

Всім привіт!
Ви читаєте другу частину статті про створення VST-синтезатора на З#. першої частини був розглянутий SDK і бібліотеки для створення VST плагінів, розглянуто програмування осцилятора.
У цій частині я розповім про огинають сигналу, їх різновиди, застосування в обробці звуку. У статті буде розглянуто програмування ADSR-огинаючої для керування амплітудою сигналу, генерованого осцилятором.
Огинаючі є в будь-якому синтезаторі, застосовуються не тільки в синтезі, а повсюдно обробці звуку.
Вихідний код написаного мною синтезатора доступний на GitHub'е.


Читати далі →

Програмування&Музика: розуміємо і пишемо VSTi синтезатор на C# WPF. Частина 1

Займаючись музичною творчістю, я часто роблю аранжування і запис на комп'ютері, використовуючи купу всяких VST плагінів і інструментів. Соромно зізнатися — я ніколи не розумів, як "накручують" звуки в синтезаторах. Програмування дозволило мені написати свій синтезатор, "пропустити через себе" процес створення звуку.
Я планую кілька статей, в яких буде докладно розказано, як написати свій VST плагін/інструмент: програмування осцилятора, частотного фільтра, різних ефектів і модуляції параметрів. Упор буде зроблений на практику, пояснення програмісту простою мовою, як же все це працює. Теорію (суворі висновки і докази) обійдемо стороною (природно, будуть посилання на статті та книги).
Зазвичай плагіни пишуться на C++ (кросплатформеність, можливість ефективно реалізувати алгоритми), але я вирішив обрати більш підходящий для мене мова — C#; сфокусуватися на вивченні самого синтезатора, алгоритмів, а не технічних деталей програмування. Для створення гарного інтерфейсу я використовував WPF. Можливість використання архітектури .NET дала можливість бібліотека-обгортка VST. NET.
Нижче представлений оглядовий ролик мого простого синтезатора, отриманих цікавих звучань.

нелегкий шлях, якщо ви готові — ласкаво просимо під кат.

Читати далі →

DSP .Net під Windows. Джедайской Сили Пост

Всім привіт!
першої статті ми розповіли про нашу інфраструктуру в цілому. Тепер настав час зосередитися на конкретних продуктах. У цій статті мова піде про DSP. Як багато хто знає, DSP (Demand Side Platform) — автоматизована система купівлі реклами. Вимоги до системи жорсткі: вона повинна тримати високу навантаження (тисячі запитів в секунду), швидко відповідати (до 50 мс, а то і менше) і, саме головне, вибирати максимально відповідні оголошення. Найчастіше такі проекти розробляються під Linux, ми ж змогли створити по-справжньому потужний сервіс під Windows Server. Як цього добитися, і як нам це вдалося? Про це я і розповім.

image

Читати далі →

Виявлення сигналу в шумах


За родом своєї діяльності мені доводиться здійснювати контроль різних параметрів наземних імпульсно-фазових радіонавігаційних систем (ИФРНС) «Чайка» і Loran-C. У цій статті я хочу поділитися одним з методів виявлення часу приходу імпульсу ИФРНС при наявності шумів. Метод застосовується у багатьох задачах пошуку сигналу відомої форми.

Читати далі →