Pull to refresh
26
0
Send message

MATLAB и быстрое преобразование Фурье

Reading time7 min
Views223K
По работе неоднократно сталкивался с необходимостью быстро определить наличие в сигнале гармонических составляющих. Часто для примерной оценки достаточно воспользоваться алгоритмом быстрого преобразования Фурье. Тем более, что его реализации есть практически во всех математических пакетах и библиотеках, да и собственноручно реализовать не составит особого труда. Между тем, опыт показывает, что, при всей своей простоте, метод начинает вызывать некоторые вопросы, когда возникает необходимость не просто посмотреть наличие дискреток в сигнале, но и выяснить их абсолютные значения, т.е. нормализовать полученный результат.

В этой статье я постараюсь объяснить, что же все-таки выдает в качестве результата fft (Fast Fourier transform) на примере MATLAB (и в качестве бонуса проведу небольшой ликбез по этому весьма полезному, на мой взгляд, языку).
Читать дальше →
Total votes 41: ↑33 and ↓8+25
Comments52

Детектирование округлостей на изображении средствами MATLAB

Reading time3 min
Views30K
image
В этом топике я приведу альтернативный подход к задаче, решенной товарищем VasG тут. Как заметили в комментариях, задачу обнаружения округлостей на изображении можно было решить при помощи MATLAB Image Processing Toolbox, что я и сделал. MATLAB радует меня очень сильной документацией с большим количеством наглядных примеров; а также удобством m-языка, за счет которого сильно сокращается время реализации вычислительных решений. Конечно, есть и минусы — в частности алгоритмы работают медленно, — но для данной задачи это не существенно. Отмечу только, что из m-языка довольно просто можно получить C-код, который будет работать гораздо быстрее.
Читать дальше →
Total votes 49: ↑47 and ↓2+45
Comments46

Matlab-бот, тёплый ламповый

Reading time8 min
Views6.4K
Мне, как и многим другим под новый год очень пришлась по душе Теплая, ламповая новогодняя игра, описанная здесь.

Но мне, как и многим другим, не удавалось достичь особых успехов в ней. Были жалобы на пропадающие призы (подтверждаю), проскальзывающее управление и просто лаги. Обычно я довольно равнодушен к таким вещам, но жесткий диссонанс между теплым и ламповым дизайном и кривой реализацией меня всерьез задел. К тому же, таблица рекордов там постоянно пополнялась, а мне не удавалось достичь и половины.

В итоге я решил измерить кривизну либо своих рук, либо самой игры.

К тому же я недавно заново открыл для себя Matlab. И если уж я в Matlab'e занимаюсь управлением шаговыми двигателями через LPT, то почему бы не попробовать в нем еще более дикую идею написания бота для игры.

И вот что получилось
Total votes 29: ↑28 and ↓1+27
Comments11

Предобучение ограниченными машинами Больцмана для распознавания реальных изображений

Reading time8 min
Views20K
image
Доброго времени суток. Этот топик рассчитан на тех, кто имеет представление об ограниченных машинах Больцмана (restricted Boltzmann machine, RBM) и их использовании для предобучения нейронных сетей. В нем мы рассмотрим особенности применения ограниченных машин Больцмана для работы с изображениями, взятыми из реального мира, поймем, почему стандартные типы нейронов плохо подходят для этой задачи и как их улучшить, а также немного пораспознаем выражения эмоций на человеческих лицах в качестве эксперимента. Те, кто представления o RBM не имеет, могут его получить, в частности, отсюда:

Реализация Restricted Boltzmann machine на c#,
Предобучение нейронной сети с использованием ограниченной машины Больцмана
Читать дальше →
Total votes 38: ↑38 and ↓0+38
Comments14

Корреляции для начинающих

Reading time6 min
Views218K
Апдейт для тех, кто сочтет статью полезной и занесет в избранное. Есть приличный шанс, что пост уйдет в минуса, и я буду вынужден унести его в черновики. Сохраняйте копию!

Краткий и несложный материал для неспециалистов, рассказывающий в наглядной форме о различных методах поиска регрессионных зависимостей. Это все и близко не академично, зато надеюсь что понятно. Прокатит как мини-методичка по обработке данных для студентов естественнонаучных специальностей, которые математику знают плохо, впрочем как и автор. Расчеты в Матлабе, подготовка данных в Экселе — так уж повелось в нашей местности


Введение


Зачем это вообще надо? В науке и около нее очень часто возникает задача предсказания какого-то неизвестного параметра объекта исходя из известных параметров этого объекта (предикторов) и большого набора похожих объектов, так называемой учебной выборки. Пример. Вот мы выбираем на базаре яблоко. Его можно описать такими предикторами: красность, вес, количество червяков. Но как потребителей нас интересует вкус, измеренный в попугаях по пятибалльной шкале. Из жизненного опыта нам известно, что вкус с приличной точностью равен 5*красность+2*вес-7*количество червяков. Вот про поиск такого рода зависимостей мы и побеседуем. Чтобы обучение пошло легче, попробуем предсказать вес девушки исходя из ее 90/60/90 и роста.
Читать дальше →
Total votes 204: ↑154 and ↓50+104
Comments47

Мой опыт введения в R или «I Love R»

Reading time8 min
Views35K
Я — ученый [здесь про это подробнее]. «Пролетарий умственного труда». По образованию физик. Тружусь на ниве обработки медицинской и биологической информации 30+ лет.
В R работаю ровно 10 лет, мигрировав на него после 15 лет плотного сотрудничества с Matlab. Первопричиной миграции на другую рабочую платформу послужила моя собственная физическая миграция на противоположный край Земли в Окланд, Новая Зеландия. Здесь жизнь с первых дней толкнула меня в объятия R, о чем мне еще не приходилось жалеть.

Все чаще наблюдаю вспышки интереса к R в профессиональном ру.нете. Ну вот и на этом уважаемом ресурсе появляются статьи про него. Далее под катом моя первая попытка русскоязычного введения в R — первая (словесная) часть презентации, которую я делал для коллег факультета Animal Science, Iova State University три года назад.
(в сторону: а как, оказывется, трудно себя переводить...)
Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments7

CCV: современная библиотека компьютерного зрения

Reading time1 min
Views15K
Спустя два года разработки состоялся релиз библиотеки ccv 0.1, которая использует ряд современных алгоритмов компьютерного зрения.

Библиотека ccv написана на C и позиционируется как компактная, лёгкая альтернатива OpenCV, поэтому из неё старательно изъяты все несущественные функции. Таким образом, ccv предназначена не для экспериментов с разными алгоритмами, а для практического использования в конкретных приложениях.
Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments13

Генератор Федеративного Фильтра Калмана с использованием Генетических Алгоритмов

Reading time18 min
Views25K
В рамках своей научной активности реализовал так называемый Федеративный Фильтр Калмана (Federated Kalman Filter). В этой статье рассказывается о том, что такое «Федеративный ФК», чем он отличается от обобщенного, а также описывается консольное приложение, реализующее данный фильтр и генетические алгоритмы для подбора параметров его математической модели. Приложение было реализовано с использованием TPL (Task Parallel Library), поэтому пост будет интересен не только специалистам по цифровой обработке сигналов.

UPD1: после прочтения двух недавних статей решил тоже присоединиться к эксперименту/исследованию/авантюре (называйте как хотите). В конце статьи добавил еще один опрос — "Стали бы Вы поощрать рублем такие узко специализированные статьи на Хабрахабре?".

Под катом описание и ссылка на сорцы
Total votes 60: ↑57 and ↓3+54
Comments11

Скрытые цепи Маркова, алгоритм Витерби

Reading time5 min
Views60K
Нам нужно реализовать детектор лжи, который по подрагиванию рук человека, определяет, говорит он правду или нет. Допустим, когда человек лжет, руки трясутся чуть больше. Сигнал может быть таким:

Исходный сигнал

Интересный метод, описан в статье «A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition» L.R. Rabiner, которая вводит модель скрытой цепи Маркова и описывает три ценных алгоритма: The Forward-Backward Procedure, Viterbi Algorithm и Baum-Welch reestimation. Несмотря на то, что эти алгоритмы представляют интерес только в совокупности, для большего понимания описывать их лучше по отдельности.
Читать дальше →
Total votes 74: ↑73 and ↓1+72
Comments25

Игра Жизнь и преобразование Фурье

Reading time5 min
Views62K
Многие слышали о великом и ужасном быстром преобразовании Фурье (БПФ / FFT — fast fourier transform) — но как его можно применять для решения практических задач за исключением JPEG/MPEG сжатия и разложения звука по частотам (эквалайзеры и проч.) — зачастую остается неясным вопросом.

Недавно я наткнулся на интересную реализацию игры «Жизнь» Конвея, использующую быстрое преобразование Фурье — и надеюсь, оно поможет вам понять применимость этого алгоритма в весьма неожиданных местах.
Читать дальше →
Total votes 80: ↑72 and ↓8+64
Comments76

Обзор моделей прогнозирования временных рядов: проба пера

Reading time4 min
Views100K
В рамках своей диссертации «Модель прогнозирования по выборке максимального подобия» мне нужно было делать обзор моделей прогнозирования. Кроме обзора, я сделала вариант классификации, который мне тогда не очень удался. Классификацию уже немного поправила, теперь хочется разобраться в существующих моделях прогнозирования временных рядов. Такие модели называют стохастическими моделями (stochastic models).

По оценке некто Тихонова в его «Прогнозировании в условиях рынка» на сегодняшний день (2006 год) существует около 100 методов и моделей прогнозирования. Эта оценка звучит бредово, я полно разбирала ее! Давайте теперь вместе разберемся, какие же модели прогнозирования временных рядов существуют на сегодняшний день.

  1. Регрессионные модели прогнозирования
  2. Авторегрессионные модели прогнозирования (ARIMAX, GARCH, ARDLM)
  3. Модели экспоненциального сглаживания (ES)
  4. Модель по выборке максимального подобия (MMSP)
  5. Модель на нейронных сетях (ANN)
  6. Модель на цепях Маркова (Markov chains)
  7. Модель на классификационно-регрессионных деревьях (CART)
  8. Модель на основе генетического алгоритма (GA)
  9. Модель на опорных векторах (SVM)
  10. Модель на основе передаточных функций (TF)
  11. Модель на нечеткой логике (FL)
  12. Что еще?...

Разберемся по очереди со всеми
Total votes 43: ↑35 and ↓8+27
Comments33

Жизнь на плоскости Лобачевского

Reading time10 min
Views87K
Различные реализации игры «Жизнь» описывались на Хабре уже неоднократно. В этой статье, в качестве продолжения этой темы, рассматривается ещё один её вариант: в качестве игрового поля используется регулярная решётка на плоскости Лобаческого. Описываются общие методы использования плоскости Лобачевского в программах и необходимые для этого математические приёмы.
Как возникла плоскость Лобачевского, достаточно известно. В позапрошлом веке господа Гаусс, Лобачевский и Бойяи, проживавшие примерно в одно время в разных странах тогдашней Европы, задумались, что будет, если отменить пятый постулат Евклида и заменить его на противоположную аксиому. Оказалось, что не случится ничего плохого, и никаких противоречий не возникнет. Заметная часть последующего изучения неевклидовой геометрии была посвящена выяснению того, кто из них у кого украл идею этой самой геометрии.
Менее известно, что несмотря на «отрицательный» способ определения неевклидовой геометрии (вместо того, чтобы сказать, что через точку проходит ровно одна прямая, не пересекающая данную, мы говорим, что таких прямых может быть сколько угодно), мы, тем не менее, получаем систему теорем и формул, не менее стройную, чем та, что есть в евклидовой геометрии. И одновременно, у нас есть гораздо большее разнообразие геометрических фигур, в том числе, разбиений плоскости на правильные многоугольники.

Осторожно, много математики!
Total votes 255: ↑253 and ↓2+251
Comments64

Вейвлет-сжатие «на пальцах»

Reading time10 min
Views177K


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

Попробуем на простых примерах разобраться, откуда же вообще берутся вейвлеты и как их можно использовать при сжатии. Предполагается, что читатель знаком с основами линейной алгебры, не боится слов вектор и матрица, а также умеет их перемножать. (А во второй части даже попробуем что-то запрограммировать.)

Читать дальше →
Total votes 169: ↑168 and ↓1+167
Comments58

Манга «Занимательная статистика», «Тайна катастроф» и другие похожие книги

Reading time5 min
Views53K
Речь идет о необычных учебниках, которые стоят посередине между вузовскими учебниками и чисто научно-популярными брошюрами. Тем не менее между научпопом и такими учебниками есть четкий водораздел — последние нацелены именно на обучение, развлекательные фишки — лишь форма подачи серьезного материала. Общее для всех таких книг, как мне представляется — подача материала в виде комикса и\или в виде диалога двух или больше людей. Обычно два собеседника — ученик и учитель, один постоянно задает вопросы, часто глупые или смешные, второй пытается объяснить в игровой форме.

В посте много скриншотов нескольких книг. Одну из них, которая про катастрофы я полностью переснял и выложил pdf. Прошу учесть, под хабракатом не один мегабайт картинок, текста много меньше. Заранее прошу прощения за качество некоторых кадров — ночная пересъемка не способствовала. Возможно, картинок больше, чем нужно, но я старался и показать основные принципы — графический, игровой способ подачи материала, сюжет и диалоги.

Я сделал что-то вроде ретроспективы: первая книга — свежий японский комикс-манга о матстатистики издания 2010 года, дальше — книга из 80-х о математике, теории катасроф. Последняя — учебник радиоэлектроники для начинающих, знакомый нескольким поколениям читателей по всему миру, начиная с 30-х годов.

В качестве иллюстрации поста приведу обложку другой манги из той же серии, что и книга о статистике:

image

Читать дальше →
Total votes 86: ↑75 and ↓11+64
Comments52
2

Information

Rating
Does not participate
Location
Россия
Registered
Activity