Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Модельно-ориентированное проектирование, или взятие Cortex M3 штурмом с помощью Matlab/Simulink

Программирование микроконтроллеров *Matlab *


Оправдание


Сразу же оговорюсь, что изучение микроконтроллеров я начал с КР580 в составе УМК с такими устрашающими характеристиками:
Тип применяемого МП — КР580ВМ80А.
Объем ОЗУ — 3 Кбайт.
Объем ПЗУ — 2 КБайт.
Возможность прерывания — 1 вектор.
Программное обеспечение — системная программа «Монитор».
Уровни входных и выходных сигналов совместимы с уровнями ТТЛ.

Масса изделия не более 9,6 кг!
Читать дальше →
Всего голосов 68: ↑63 и ↓5 +58
Просмотры 37K
Комментарии 19

Увеличиваем скорость вычислений в Matlab

Программирование *Matlab *
Из песочницы
Добрый день, уважаемые хабровчане!

Предлагаю вашему вниманию статью, на которую меня натолкнул недавний пост Matlab кластер своими руками. В свое время я столкнулся с теми же проблемами что и автор топика, однако для увеличения производительности я не стал уходить в дебри распределенных вычислений, а просто решил максимально оптимизировать свой код. Как это сделать в Matlab, прошу под кат за подробностями.

Статья является описанием жизненного опыта и вольным переводом англоязычной публикации.
Читать дальше →
Всего голосов 25: ↑21 и ↓4 +17
Просмотры 24K
Комментарии 17

MatLab и ООП, оптимизация

Программирование *Matlab *
Из песочницы
Данный пост предназначен для людей, имеющих практику программирования ООП (извините за тавтологию), волей судеб вынужденых писать на MatLab. Язык приятный, но граблей достаточно большое количество, и не обязательно каждому наступить на них все.

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

Итак…

История


В MatLab ООП долгое время вообще не было.
Году в 2005 появились первые, страшно выглядящие потуги: класс — папка, метод — отдельный файл, свойства — единый метод доступа с параметром «имя свойства».
«Прекрасное» начало, к счастью от него быстро отказались.

Ещё через несколько лет сделали ООП в более привычном виде — классы, наследование, всё как у людей. Кроме нескольких деталей.
Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Просмотры 17K
Комментарии 22

Интегрируем MATLAB в С#.NET

.NET *Matlab *
Из песочницы

Вступление


В этой статье я постараюсь максимально полно и пошагово рассказать, как связать MATLAB с С#.NET и сделать приложение с интерфейсом на примере построения 3D-плоскости.

Зачем это нужно?


Очень часто перед программистом встает задача вычисления сложной математики. MATLAB в свою очередь является отличным средством для решения, но слаб в создании полноценного пользовательского приложения (можно воспользоваться инструментами GUI MATLAB'a, но это меня не устроило).
Читать дальше →
Всего голосов 40: ↑37 и ↓3 +34
Просмотры 50K
Комментарии 20

Модельно-ориентированное проектирование, или продолжаем приручение Cortex M3 с помощью Matlab/Simulink

Программирование микроконтроллеров *Matlab *

Изображение взято, и слегка отредактировано, из блога Антона Лопатина. Ну очень вдохновляет.

Добрый день, уважаемое сообщество!

В прошлом топике я постарался сделать вводной экскурс в модельно-ориентированное проектирование встраиваемых систем с использованием ARM микропроцессоров Cortex M3 и MATLAB/Simulink. Продолжаем погружение, усложняем задачу. Жаль до концепта на заглавной иллюстрации еще далеко, но процесс разработки одного из важнейших его узлов, а именно системы самонаведения турели, я попытаюсь показать.

Ниже довольно много изображений, но без них скучновато и не наглядно.
Кому интересно - прошу под кат!
Всего голосов 33: ↑32 и ↓1 +31
Просмотры 28K
Комментарии 14

Алгоритм скользящего среднего (Simple Moving Average)

Алгоритмы *Matlab *
Возникла задача реализовать на С++ алгоритм скользящего среднего, который находит широкое применение в обработке сигналов и статистике.
image
За основу была взята функция smooth в MATLAB.
Данную функцию можно использовать для фильтрации сигналов. В качестве входных параметров определяются массив данных и окно усреднения.
Кому интересно, прошу под кат
Читать дальше →
Всего голосов 29: ↑17 и ↓12 +5
Просмотры 87K
Комментарии 15

Рейтинг на основании истории

Программирование *Математика *Matlab *

Постановка задачи


Контекст: есть шахматный турнир с достаточно большим количеством игроков самого разного уровня.
Приняты решения: не разбивать игроков на чётко определённые группы (друг друга не знаем ещё, непонятно, кого куда помещать), не делать турнир «на вылет» (много новичков, им просто обидно будет вылететь после первой партии). Более-менее (вручную) справляемся с выбором партнёром примерно одинакового уровня.

Задача: сделать систему рейтинга по результатам турнира. Поскольку играем не «на вылет», финала нет. Учитывать количество очков несерьёзно из-за разношерстности игроков. То есть система рейтинга должна быть такой, что выигрыш у самого слабого игрока или проигрыш у самого сильного практически не должны влиять на наш рейтинг.
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Просмотры 2.3K
Комментарии 22

Почему мы создали Джулию, новый ЯП для технических вычислений

Программирование *Julia *Matlab *
Перевод
Если вкратце, потому что мы жадные.

Мы продвинутые пользователи Matlab. Некоторые из нас хакеры Lisp. Некоторые питонисты, другие рубисты, есть ещё Perl-хакеры. Среди нас есть такие, кто использовал Mathematica раньше, чем у него начали расти волосы на лице. Есть и такие, у кого до сих пор не выросли. Мы построили больше графиков на R, чем способен любой здравомыслящий человек. C — это язык, который мы бы взяли на необитаемый остров.

Мы любим все эти языки; они прекрасны и могучи. Для той работы, которую мы делаем — научные вычисления, машинное обучение, дата-майнинг, крупномасштабная линейная алгебра, распределённые и параллельные вычисления — каждый идеально подходит в определённом аспекте, но ужасен в других. Каждый из них — это компромисс.

Мы жадные: мы хотим больше.
Читать дальше →
Всего голосов 63: ↑54 и ↓9 +45
Просмотры 8.7K
Комментарии 19

Вебсервер nginx + fastcgi-wrapper + matlab

Ненормальное программирование *Matlab *

Сегодня я не в первый раз задался вопросами: какие языки программирования пригодны для веба, и имеет ли смысл решать какую-то узкую задачу способом, который на первый взгляд для этого не подходит? Мне захотелось попрактиковаться, сделав что-нибудь обычное необычным способом.


Читать дальше →
Всего голосов 35: ↑29 и ↓6 +23
Просмотры 5.4K
Комментарии 27

Как я дружил MatLab и C++ в Linux

C++ *Matlab *

Прошла пора дипломов и я хочу поделиться своим рецептом его выполнения. Итак: тема сложная, времени мало, писать все «с нуля» или искать готовые библиотеки — нет большого желания, тем более что мне важна скорость работы системы, а от левых самописных библиотек можно ждать любого подвоха.
Надо сказать что размышлял я недолго и пришел к следующим выводам:
  1. Операционная система — тут думать особо не пришлось: т.к. я являюсь поклонником Debian (к слову: мое решение можно перенести и на Windows).
  2. Интерфейс будущей программы — C++, Qt.
  3. Логика программы — MatLab.

О том, как я объединял этот зоопарк в одну систему - прошу под кат.
Всего голосов 44: ↑38 и ↓6 +32
Просмотры 40K
Комментарии 34

Биометрическая идентификация по рисунку вен ладони (mini How To)

Информационная безопасность *Matlab *
Из песочницы


Волею судеб поступил в один из Российских вузов. На дипломе было решено исследовать одно из направлений биометрической идентификации – идентификацию по рисунку вен ладони. На начальных стадиях было задумано предоставить к защите работающую модель устройства (но все оказалось не так просто).
Читать дальше →
Всего голосов 101: ↑98 и ↓3 +95
Просмотры 26K
Комментарии 59

Для тех у кого MIMO прошло мимо…

Беспроводные технологии *Стандарты связи
Из песочницы
Доброго времени суток, Хабр! Разбирая тему технологии MIMO (Multiple input-multiple output), которая сейчас используется повсеместно, я обнаружил насколько мало материала по этой тематике представлено в отечественной литературе. Хабр регулярно читаю около 3 лет и полного ликбеза по этому вопросу я здесь тоже не видел. Постараюсь исправить эту ситацию. Как ЭТО работает и почему это актуально именно сегодня, а также история развития этой технологии. Кого заинтересовало прошу под кат.
Читать дальше →
Всего голосов 30: ↑25 и ↓5 +20
Просмотры 110K
Комментарии 7

Программирование в Maxima

Open source *Lisp *Математика *
Из песочницы
Tutorial

Урок Maxima


Введение

Maxima — свободная система компьютерный алгебры (Computer algebra system — CAS), основанная на Common Lisp. В своих функциональных возможностях она едва уступает другим современным платным CAS, таким как Mathcad, Mathematica, Maple; может проводить аналитические (символьные) вычисления, численные расчеты, строить графики (при помощи gnuplot). Имеется возможность написания скриптов и даже трансляции их в код на Common Lisp с последующей компиляцией. В виду того, что maxima писалась из разрабатывалась программистами lisp, ее синтаксис может показаться несколько запутанным, поскольку язык является сразу и императивным и функциональным. Я попытаюсь разъяснить именно эти моменты и доступно изложить суть функционального подхода, и совсем не буду акцентировать внимания на конкретных математических функциях: их довольно легко освоить самостоятельно. В данной статье рассматривается именно особенности исчисления и синтаксических конструкций maxima.
Читать дальше →
Всего голосов 53: ↑50 и ↓3 +47
Просмотры 23K
Комментарии 24

Предварительная обработка речевых сигналов с помощью Matlab

Алгоритмы *Математика *Matlab *
Из песочницы
Tutorial
Результатом предварительной обработки речевых сигналов является получение множества спектральных векторов, характеризующих этот сигнал и используются для дальнейшего распознавания.

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

Типичная величина одного интервала — 25,6 мс. Соседние интервалы берутся со смещением относительно предыдущего интервала. Применяемая величина перекрытия интервалов равна 10 мс. В результате предварительной проработки каждого из указанных интервалов получаем вектор из нескольких десятков спектральных значений.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 23K
Комментарии 6

Взлом старой каптчи сайта Хабрахабр

Информационная безопасность *Обработка изображений *
Из песочницы

Введение



В данной статье кратко рассказывается о процессе взлома captcha используемой ранее при входе на сайт Хабрахабр.
Целью работы является применение знаний на практике и проверка сложности каптчи.
При разработке алгоритма использован Matlab.

Читать дальше →
Всего голосов 177: ↑173 и ↓4 +169
Просмотры 47K
Комментарии 118

Построение фрактальных фигур в Matlab

Математика *Matlab *
«Итерация от человека. Рекурсия — от Бога.» Л. Питер Дойч

Введение


Многие из нас слышали про фракталы, я думаю, что многие даже имеют довольно четкое представление об этих удивительных математических объектах и их тесной взаимосвязи с физическими природными структурами. Тем не менее, в этой статье я хотел бы затронуть исследовательский и философский аспекты данного вопроса. Сама по себе возможность генерировать сложнейшие узоры на комплексной плоскости с помощью простых математических выражений весьма заманчива, собственно это и натолкнуло на написание статьи. Написав пару строчек кода мы сможем упасть на самое дно разрядной сетки нашего ПК, изучая масштабируемые фрактальные узоры.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 26K
Комментарии 6

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

Программирование *Обработка изображений *
Из песочницы
Мне, как и многим другим под новый год очень пришлась по душе Теплая, ламповая новогодняя игра, описанная здесь.

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

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

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

И вот что получилось
Всего голосов 29: ↑28 и ↓1 +27
Просмотры 5.7K
Комментарии 11

Некоторые полезные средства настройки графиков (plot) в MATLAB

Учебный процесс в IT Matlab *
Из песочницы
Tutorial
Недавно, в очередной раз проверяя домашние работы своих студентов, я загорелся желанием автоматизировать этот процесс. Задание состояло в составлении рабочей таблицы девиации магнитного компаса и построения кривой девиации.

Входными данными служили показания магнитного компаса (МК), синхронно наблюдаемые показания гирокомпаса (ГК), поправка ГК и значение магнитного склонения для района, в котором проходили измерения.
Читать дальше →
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 44K
Комментарии 1

Использование .Net библиотек в MATLAB

.NET *Matlab *
Из песочницы
Tutorial
Привет Хабровчанам! На Хабре уже обсуждался вопрос интеграции .Net c Matlab'ом. Цель же этой статьи — показать, как можно быстро и удобно решить обратную задачу: вызывать управляемый код из произвольных .Net библиотек в Matlab.

Зачем это нужно?



Несмотря на богатый набор алгоритмов в функционале Matlab'а, основным сценарием, в котором это может понадобиться, является необходимость задействовать в вычислениях уже имеющиеся и обладающие известными показателями качества .Net библиотеки, в которых реализованы математические алгоритмы.
Читать дальше →
Всего голосов 21: ↑20 и ↓1 +19
Просмотры 5K
Комментарии 7

Выбор инструмента для расчётов с плавающей точкой — практические советы

Высокая производительность *GPGPU *
Из песочницы
Современному программисту, математику или аналитику часто приходится проектировать, а то и создавать программно-аппаратные комплексы для работы с большими массивами числовых данных. Построение имитационных моделей, прогнозирование, расчёт статистики, управление оперативными процессами, финансовый анализ, обработка экспериментальных данных — везде требуется получить максимальную скорость вычислений на единицу затрат.

При этом большинство ну хотя бы минимально сложных и функциональных систем (во всяком случае, из тех, что встречались лично мне за 8 лет работы в банковской сфере), как правило, гетерогенны — состоят из множества функциональных блоков, как пёстро сшитое лоскутное одеяло, где каждый лоскуток выполняется разным приложением, зачастую даже на различных аппаратных платформах. Почему? Да просто это рационально и удобно. Каждый продукт хорош в своей области. Например, экономисты любят использовать Ms Excel для анализа и визуализации данных. Но мало кому в голову придёт использовать эту программу для обучения серьёзных искусственных нейросетей или решения дифференциальных уравнений в реальном времени — для этого зачастую приобретаются (или уже приобретены компанией) мощные универсальные пакеты, предлагающие гибкий API, или под заказ пишутся отдельные модули. Вот и получается, что результат считать выгоднее в том же Matlab, хранить в таблицах СУБД Oracle (запущенной на кластере Linux), а отчёт показывать пользователям в приложении Excel, работающем как OLE server на Windows. Причём связаны все эти компоненты одним из универсальных языков программирования.

Как выбрать оптимальную среду реализации для конкретной задачи?
Читать дальше →
Всего голосов 40: ↑34 и ↓6 +28
Просмотры 5.6K
Комментарии 38