Всім привіт! У цій статті мова піде про реалізації швидкого перетворення Фур'є в форматі з плаваючою точкою на ПЛІС. Будуть показані основні особливості розробки ядра від першої стадії до готового конфигурируемого IP-ядра. Зокрема, буде проведено порівняння з готовими ядрами фірми Xilinx, показано переваги та недоліки тих чи інших варіантів реалізації. У статті буде розказано про головну особливості ядра ШПФ і ОБПФ — про відсутність необхідності переводити дані в натуральний порядок після ШПФ і ОБПФ для їх спільної зв'язки. У цій статті я постараюся відобразити всі тонкощі реалізації проекту під назвою FP23FFTK, наведу реальні приклади використання готового ядра. Проект написаний на мові VHDL і заточений під FPGA фірми Xilinx останніх колекцій.



Читати далі →

Аудіокодек своїми руками — це просто

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

Пора зняти завісу, відчинити дверцята та власні очі поглянути на таємничий алгоритм розбурхує уми і серця, ласкаво просимо на сеанс з викриттям!



Читати далі →

Машинне навчання - 4: Ковзне середнє

Прийнято вважати, що дві базові операції «машинного навчання» — це регресія і класифікація. Регресія — це не тільки інструмент для виявлення параметрів залежності y(x) між рядами даних x та y (чого я вже присвятивкілька статей), але і окремий випадок техніки їх згладжування. У цьому прикладі ми підемо трохи далі і розглянемо, як можна проводити згладжування, коли вид залежності y(x) наперед невідомий, а також, як можна відфільтрувати дані, які контролюються різними ефектами з істотно різними часовими характеристиками.

Один з найбільш популярних алгоритмів згладжування, що застосовується, зокрема, у біржовій торгівлі — це ковзне середнє (включаю його в цикл статей з машинного навчання з деякою натяжкою). Розглянемо ковзне усереднення на прикладі коливань курсу долара протягом кількох останніх тижнів (знову-таки в якості інструменту дослідження використовуючи Mathcad). Самі розрахунки лежать тут.




Читати далі →

Спектральний аналіз сигналів

image

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

Під катом короткий огляд методу виділення гармонік з довільного сигналу за допомогою цифрового гетеродинирования, і трохи особливою, Фур'є-магії.

Читати далі →

Перетворення Фур'є в дії: точне визначення частоти сигналу і виділення нот

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

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

image


Читати далі →