Всем привет! В этой статье речь пойдет о реализации быстрого преобразования Фурье в формате с плавающей точкой на ПЛИС. Будут показаны основные особенности разработки ядра от самой первой стадии до готового конфигурируемого IP-ядра. В частности, будет проведено сравнение с готовыми ядрами фирмы Xilinx, показаны преимущества и недостатки тех или иных вариантов реализации. В статье будет рассказано о главной особенности ядра БПФ и ОБПФ — об отсутствии необходимости переводить данные в натуральный порядок после БПФ и ОБПФ для их совместной связки. В этой статье я постараюсь отразить всё тонкости реализации проекта под названием FP23FFTK, приведу реальные примеры использования готового ядра. Проект написан на языке VHDL и заточен под FPGA фирмы Xilinx последних семейств.
Рубрика «Matlab» - 6
Реализация узла БПФ с плавающей точкой на ПЛИС
2017-02-27 в 15:11, admin, рубрики: c++, fft, fpga, Matlab, octave, open source, vhdl, vivado, xilinx, Алгоритмы, бпф, математика, ПЛИС, программирование микроконтроллеровПростая реализация FDTD на Java
2017-01-10 в 8:34, admin, рубрики: c++, fdtd, java, Matlab, высокая производительностьFDTD (Finite Difference Time Domain) — метод конечных разностей во временной области — самый «честный» метод решения задача электродинамики от низких частот до видимого диапазона. Суть — решение уравнений Максвелла «в лоб». Здесь неплохо расписано. Особенно посмотрите сетку.
Задача решалась в двумерном случае простой явной разностной схемой. Неявные схемы я не люблю, и они требуют много памяти. Расчет с нормальной точностью требует сеток малого шага, по сравнению с более простыми методами требуется очень много времени. Поэтому максимальный упор был сделан на производительность.
Представлена реализация алгоритма на Java и C++.
Оптимизация на примере. Муравьиный алгоритм (ACS) против Метода отжига. Часть 2
2016-10-31 в 14:49, admin, рубрики: acs, Matlab, simulated annealing, Алгоритмы, метод отжига, муравьиный алгоритмПродолжаю цикл статей «Оптимизация на примере». В данной статье сравниваются два эвристических алгоритма на избитой симметричной задаче коммивояжера. Сегодня чуть углубимся в данную тему и разберем определенную модификацию муравьиного алгоритма.

Тензорные разложения и их применения. Лекция в Яндексе
2016-10-30 в 14:39, admin, рубрики: Matlab, python, TensorFlow, Алгоритмы, Блог компании Яндекс, линейная алгебра, математика, матрицы, многомерный массив, ненормальное программирование, разложение, тензорыПредыдущая лекция с Data Fest была посвящена алгоритмам, необходимым для построения нового вида поиска. Сегодняшний доклад тоже в некотором смысле про разные алгоритмы, а точнее про математику, лежащую в основе множества из них. О матричных разложениях зрителям рассказал доктор наук и руководитель группы вычислительных методов «Сколтеха» Иван Оселедец.
Под катом — расшифровка и большинство слайдов.
Deep Learning: Сравнение фреймворков для символьного глубокого обучения
2016-10-25 в 7:10, admin, рубрики: android, AWS, c++, caffe, deep learning, framework, iOS, javascript, Julia, machine learning, Matlab, microsoft, mxnet, OS X, python, R, scala, TensorFlow, theano, Ubuntu, windows, Алгоритмы, Блог компании Microsoft, глубокое обучение, машинное обучение, нейронные сети, рекуррентная нейронная сеть, рекуррентная нейросеть, свёрточная нейросеть, фрейморкПредставляем вам перевод серии статей посвященных глубокому обучению. В первой части описан выбор фреймворка с отрытым кодом для символьного глубокого обучения, между MXNET, TensorFlow, Theano. Автор подробно сравнивает преимущества и недостатки каждого из них. В следующих частях вы узнаете о тонкой настройке глубоких сверточных сетей, а также о сочетании глубокой сверточной нейронной сети с рекуррентной нейронной сетью.
Анализ данных с электросчетчика Eastron SDM220 средствами ThingSpeak
2016-09-09 в 9:40, admin, рубрики: data mining, internet of things, IoT, Matlab, modbus, rs485, SDM220, ThingSpeak, визуализация данных, Разработка для интернета вещей, умный дом, электросчетчикВсем привет. В статье на geektimes я рассказывал, как подключиться к электросчетчику Eastron SDM220-Modbus и забрать с него данные по шине RS-485. Сегодня я хочу рассказать про сбор и анализ статистических данных о потреблении электричества в доме.
Не Персеидами едиными или Моделируем вспышки спутников своими руками
2016-08-22 в 11:08, admin, рубрики: Matlab, Алгоритмы, Занимательные задачки, иридиум, космос, математика, маяк, моделирование движенияПривет! После красочных метеорных потоков мы плавно движемся к астрономической осени. В этом году она предвещает нам лунное затмение, соединение Венеры и Юпитера, а также полеты ярких рукотворных спутников. Мой сегодняшний рассказ – о том, как моделировать отражение света от таких спутников, и насколько яркие вспышки ожидают нас в этом октябре.

Вспышка Иридиума, первое фото своими руками – навелся не туда, затвор открыл поздно, горизонт завалил :)
Пример расчета робастного контроллера (H-infinity control)
2016-08-02 в 13:20, admin, рубрики: H-infinity controll, Matlab, PID, Simulink, математика, метки: H-infinity controll, PIDЧто такое робастный контроллер и зачем нам усложнять себе жизнь? Чем нас не устраивает стандартный, всеми узнаваемый, ПИД-регулятор?
Ответ кроется в самом названии, с англ. «robustness» — The quality of being strong and not easy to break (Свойство быть сильным и сложно сломать). В случае с контролером это означает, что он должен быть «жестким», неподатливым к изменениям объекта управления. Например: в мат. модели DC мотора есть 3 основных параметра: сопротивление и индуктивность обмотки, и постоянные Кт Ке, которые равны между собой. Для расчета классического ПИД регулятора, смотрят в даташит, берут те 3 параметра и рассчитывают коэффициенты ПИД, вроде все просто, что еще нужно. Но мотор — это реальная система, в которой эти 3 коэффициента не постоянные, например в следствии высокочастотной динамики, которую сложно описать или потребуется высокий порядок системы. Например: Rдаташит=1 Ом, а на самом деле R находиться в интервале [0.9,1.1] Ом. Так во показатели качества в случае с ПИД регулятором могут выходить за заданные, а робастный контроллер учитывает неопределенности и способен удержать показатели качества замкнутой системы в нужном интервале.
Читать полностью »
ATmega16 + DS18B20 + LED + Matlab-Simulink = AR
2016-03-02 в 0:30, admin, рубрики: Atmega, Augmented reality, avr, diy или сделай сам, DS18B20, Matlab, Simulink, дополненная реальность, обработка изображений, Программирование, программирование микроконтроллеров, схемотехника
Задумал я как-то поиграться с датчиками DS18B20. Да не просто получить значения температуры (что умеет каждый), но и как-то ее визуализировать. Возникла простая идея. Ставим вебкамеру. Зажигаем светик на четном кадре, на не четном — тушим. Вычитаем картинку — остается только вспышка. По ней и ищем местоположение датчика, который физически привязан к светодиоду в пространстве. А дальше математическая обработка. Ну и все это в симулинке. Под катом описано как получить красивые картиночки. А для тех кто разбираться не желает — предлагаю посмотреть эксперименты в конце статьи.
Читать полностью »
Генераторы хаоса на ПЛИС
2015-12-28 в 10:20, admin, рубрики: fpga, fpga/asic, github, Matlab, open source, RTL, vhdl, xilinx, Алгоритмы, Лоренц, математика, ПЛИС, программирование микроконтроллеров, хаосВсем привет!
Эта статья посвящается удивительным особенностям в мире хаоса. Я постараюсь рассказать о том, как обуздать такую странную и сложную вещь, как хаотический процесс и научиться создавать собственные простейшие генераторы хаоса. Вместе с вами мы пройдем путь от сухой теории до прекрасной визуализации хаотических процессов в пространстве. В частности, на примере известных хаотических аттракторов, я покажу как создавать динамические системы и использовать их в задачах, связанных с программируемыми логическими интегральными схемами (ПЛИС).





