Рубрика «бпф»

В этой заметке я не собираюсь причитать как старая бабка «всё разворовали, упыри!!», потому что не интересуюсь кто это делает и делает ли. Не интересует меня и излюбленная темка автомобилистов «задолбали эти ямки и колдобинки!», лично мне не на чем их объезжать: в вопросах выбора транспортных средств я предпочитаю ретранслировать мнение Андрея Рубанова из его книги «Йод» (э маст хэв ящитаю), в мирное же время есть велосипед и автобус. У меня нет и претензий к нашим ремонтным службам, кладущим, как о том пишут в этих ваших интернетиках, битумную смесь на дождик и снежок вопреки мнению этих самых интернетов. Я простой пешеход, и пока ещё меня устраивает сложившееся положение вещей.
Кстати, я и не математик вовсе, а всего-то студент а-ля математик-прикладник. Если кто не в курсе, это такие чуваки и чувихи (да простит меня офисный планктон), по долгу своих профессий вынужденные перерабатывать в алгоритмы математические формулы именитых и широко известных в узких кругах теоретиков. Эти наколенкеписаные алгоритмы в свою очередь работают сначала в прикладных исследованиях, а затем идут в прикладной софт, если вдруг по велению судьбы рынок возжелает закупить наработки математика-прикладника, погрязшего по уши в фортрано-матлабо-пропитоненных сорцах.
Так исторически повелось, что на студенческой скамье мне пришлось периодически решать задачи, за которые никакой другой более обеспеченный и, надо полагать, более разумный хомосапиенс не брался. И вот, по долгу своей студенческой стези познакомили меня с одной задачкой из области дорожно-строительных конструкций. Тема была «бесперспективняк». «О, чёт новенькое», — подумал я, и взялся за решение чисто в обмен на получение практических скиллов, бесплатно. Итоги работы меня немного удивили. Но обо всём по порядку, должным для гиктаймс стилем «научпоп для уставших за день сисадминов и начинающих лысеть погромиздов» ;)
Читать полностью »

Применение преобразования Фурье для создания гитарного тюнера на Android. Часть 1 - 1

В основе спектрального анализа звуковых данных лежит алгоритм, который носит название преобразование Фурье. При раскладывании исходного звукового сигнала на частотные составляющие, отдельные частоты называются гармониками. Основная гармоника определяет высоту звучания, а второстепенные гармоники определяют его тембр. Есть достаточно много мобильных приложений, которые используют преобразование Фурье для того, чтобы отобразить весь спектр частот (гармоник). Так же, есть мобильные приложения, которые служат для настройки гитар. Они работают по принципу: основная гармоника находится по самому высокому значению амплитуды в спектре. Такое утверждение не совсем верно, потому что основная гармоника определяется самой наименьшей из всех кратных этой гармонике, либо шагом между гармониками. Возникает необходимость найти способ, который позволит отобразить значение основной гармоники в спектре звукового сигнала.

В первой части статьи мы рассмотрим принцип работы дискретного преобразование Фурье, а также возможность записывать звуковые данные с Android устройства с помощью класса AudioRecord. Читать полностью »

Введение

Книги и публикации по цифровой обработке сигналов пишут авторы зачастую не догадывающиеся и не понимающие задач стоящих перед разработчиками. Особенно это касается систем, работающих в реальном времени. Эти авторы отводят себе скромную роль бога, существующего вне времени и пространства, что вызывает некоторое недоумение у читателей подобной литературы. Данная публикация имеет целью развеять недоумения, возникающие у большинства разработчиков, и помочь им преодолеть «порог вхождения», для этих целей в тексте сознательно используется аналогии и терминология сферы программирования.

Данный опус не претендует на полноту и связность изложения.
Читать полностью »

Всем привет! В этой статье речь пойдет о реализации быстрого преобразования Фурье в формате с плавающей точкой на ПЛИС. Будут показаны основные особенности разработки ядра от самой первой стадии до готового конфигурируемого IP-ядра. В частности, будет проведено сравнение с готовыми ядрами фирмы Xilinx, показаны преимущества и недостатки тех или иных вариантов реализации. В статье будет рассказано о главной особенности ядра БПФ и ОБПФ — об отсутствии необходимости переводить данные в натуральный порядок после БПФ и ОБПФ для их совместной связки. В этой статье я постараюсь отразить всё тонкости реализации проекта под названием FP23FFTK, приведу реальные примеры использования готового ядра. Проект написан на языке VHDL и заточен под FPGA фирмы Xilinx последних семейств.

Реализация узла БПФ с плавающей точкой на ПЛИС - 1
Читать полностью »

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

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

Машинное обучение — 4: Скользящее среднее - 1

Читать полностью »

image

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

Под катом краткий обзор метода выделения гармоник из произвольного сигнала с помощью цифрового гетеродинирования, и немного особой, Фурье-магии.
Читать полностью »