Pull to refresh
1
0
Send message

Основы обработки радиолокационных данных дистанционного зондирования Земли

Level of difficultyMedium
Reading time31 min
Views11K

В настоящее время все более востребованными становятся данные радиолокационного наблюдения (РЛН) с космических аппаратов дистанционного зондирования Земли. Наблюдая повышенный интерес к этой предметной области с одной стороны и явный недостаток информационных материалов по теме обработки радиолокационных данных ДЗЗ с другой, решили написать статью, которая, надеемся, будет полезна для всех интересующихся темой ДЗЗ.

Читать далее
Total votes 14: ↑14 and ↓0+14
Comments15

Редактор коннектома

Level of difficultyEasy
Reading time13 min
Views2.5K

Приветствую, дорогие друзья! Хочу рассказать о своём проекте. Моё хобби это исследование нервной системы и мозга в целом и попытки провести реверс‑инжиниринг этих систем. Этому собственно и посвящены мои статьи на habr. И сейчас я пришел к идеи, что мне нужно разработать некий инструмент который бы упростил работу над моими поисками и изысканиями, и сделал бы их более доступными. Да, существует множество фреймворков на эту тему, но мне всё это не подходит, во‑первых, у меня сложился несколько альтернативный взгляд на проблему, во‑вторых, мне кажется я смогу сделать лучше и доступней.)

Более шести лет назад я презентовал статьёй на habr свой проект OpenTadpole. Это был редактор коннектома некой спайковой нейронной сети которая управляла телом головастика лягушки в симуляции среды. Этот проект показывает возможность формировать с помощью достаточно простых нейронов сложное рефлекторное поведение. Тут речь идет конечно только о безусловных рефлексах, без какого либо обучения. Интересным моментом для меня стало, то что многие интересовались есть ли web версия (это же проект сделанный на unity) или есть ли версия для Mac, linux. По существу, даже людям которым тема проекта была интересна и были обладателями windows не спешили что‑то скачивать, распаковывать, пробовать. И это понятно, куда удобнее просто пройти по ссылке и получить нужный опыт работы с редактором. К сожалению, web версию я не мог представить, так как использовал для симуляции жидкости сторонние плагины которые конфликтовали с компилятором под WebGL unity, ну очень уж капризный этот компилятор. С того момента зародилось идея сделать подобный редактор и делать его еще более доступным.

Читать далее
Total votes 16: ↑15 and ↓1+17
Comments8

Солитоны. Модель Скирма

Level of difficultyHard
Reading time60 min
Views4.7K

В мире солитонов, где волны проявляют себя не только как простые колебания, но и как частицеподобные структуры с удивительной устойчивостью, модель Скирма выступает как одна из ключевых для понимания сложных волновых явлений в трехмерном пространстве. После нашего анализа модели Френкеля-Конторовой и знакомства с одномерным уравнением Синус-Гордона, стоит задаться вопросом: можно ли адаптировать эту модель к трехмерному миру, и какие сложности и открытия это может нам принести? Тони Скирм уже задавался подобными вопросами в 1958-1962 годах, пытаясь моделировать барионные частицы. В этой статье мы погрузимся в мир его исследований, затронем проблемы и особенности солитонов в трехмерном пространстве и попытаемся понять, как скирмионы могут изменить наше понимание физики частиц

Читать далее
Total votes 16: ↑15 and ↓1+22
Comments18

Стреляем в будущее

Level of difficultyMedium
Reading time11 min
Views8.4K

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

А андроидам полезно знать, как это упреждение вычислять. Хотя в этой статье и не рассматривается задача поиска упреждения в трех измерениях, на плоскости веселья будет не меньше.

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments8

Простой испытатель ферритов

Reading time7 min
Views20K

Реалии нашей жизни поменялись. Если раньше мы шли в магазин и покупали нужное ферритовое кольцо для трансформатора, то теперь порой приходится довольствоваться тем, что удалось найти. В ящике стола, в лампочке-экономке из ближайшей мусорки, у китайцев на Алиэкспрессе... Зачастую без маркировки, тип которого известен лишь приблизительно. И вопросы, вопросы... Действительно ли из Китая выслали то, что просили? Подойдет ли для двухтактного трансформатора это зеленое кольцо? А что будет, если намотать трансформатор на феррите с мю 10000? Каким выбрать число витков на вольт, когда формула из статьи в журнале "Радио" дает 0,4 витка на вольт, а популярная программа -- 1,2 витка?

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

Читать далее
Total votes 102: ↑102 and ↓0+102
Comments36

Радиосвязь в открытом море и “мёртвая специальность”. Судовая электроника — часть I

Level of difficultyEasy
Reading time20 min
Views32K

Доброго времени суток, уважаемые хабровчане.

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

 А пост, собственно, пойдёт о средствах радиосвязи и навигации и вообще электронике на современных морских судах, об использующихся технологиях, стандартах и даже о преждевременно “похороненной” специальности.

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

 Остальным советую ознакомиться со всей статьёй полностью: это не только дополнит повествование, но и, надеюсь, станет кому-то хорошим примером одной давно известной истины.

Читать далее
Total votes 162: ↑162 and ↓0+162
Comments138

Mapper — наш, или еще одна технология электронно-много-лучевой литографии

Reading time7 min
Views8.5K

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

Однако, примерно в то же самое время, когда в Австрии на IMS конструировали свою установку, в Нидерландах тоже решили попробовать силы в этом направлении.

Причем, поставили себе задачу достичь производительности не меньше 10 шт./час для пластин 300 мм.

MAPPER — акроним расшифровывается, как Multiple Aperture Pixel by Pixel Enhancement of Resolution, т. е. многоапертурное попиксельное улучшение разрешения. Название технологии почти никак не связанное с ее сущностью.

Что из этого получилось...
Total votes 25: ↑24 and ↓1+30
Comments0

Технология электронно-много-лучевой литографии

Reading time6 min
Views13K

Скорость засветки у электронно-лучевого литографа на порядки меньше скорости засветки у лазерного генератора фотошаблонов.

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

Учитывая стоимость электронно-лучевого литографа (порядка 15 млн. USD), становиться понятно, почему комплект масок для техпроцесса 130 нм может стоить 500 тыс. USD, а для продвинутого техпроцесса 7-14 нм может легко уйти за 10 млн. USD.

Может стоит ускориться?

Как это делают можно узнать под катом
Total votes 63: ↑63 and ↓0+63
Comments42

aztotmd: молекулярная динамика [+ непостоянное поле сил] [+ излучательный термостат]. CUDA-версия. Руководство

Reading time26 min
Views2.6K

Проект aztotmd основан на классической молекулярной динамике и содержит основной функционал для классических расчётов, но также и ряд экспериментальных особенностей: непостоянное поле сил и излучательный термостат. Программа распараллелена с помощью технологии CUDA. Здесь представлена инструкция по работе с программой.

 Возможности и ограничения

Требуется видеокарта NVidia с computational capability > 2.2. Программа основана на численном интегрировании уравнений движения скоростным алгоритмом Верле. Опции:

+ периодические граничные условия и только в форме прямоугольного параллелепипеда;

+ парные потенциалы: 6 обычных и 1 температуро-зависимый;

+ 3 способа учета электростатики: наивный, суммирование по Эвальду и метод Феннеля и Гецельтера;

+ 2 термостата: Нозе-Гувера и излучательный;

+ валентные связи;

+ валентны углы;

+ внешнее электрическое поле с постоянным градиентом;

+ возможность динамического образования/удаления валентных связей (включая водородные) и валентных углов;

Далее
Total votes 22: ↑22 and ↓0+22
Comments9

Облака атомных колебаний

Reading time22 min
Views7.1K

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

Читать далее
Total votes 36: ↑36 and ↓0+36
Comments13

Шахматы на C++

Reading time68 min
Views49K

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

Читать далее
Total votes 151: ↑150 and ↓1+188
Comments56

Виртуальные функции в C

Reading time4 min
Views29K
Недавно мне задали вопрос: как бы я реализовал механизм виртуальных функций на языке C?

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

Краткое пояснение для тех, кто не знает, что такое виртуальные функции:
Виртуальная функция — это функция, которая может быть переопределена классом-наследником, для того чтобы тот имел свою, отличающуюся, реализацию. В языке C++ используется такой механизм, как таблица виртуальных функций
(кратко vtable) для того, чтобы поддерживать связывание на этапе выполнения программы. Виртуальная таблица — статический массив, который хранит для каждой виртуальной функции указатель на ближайшую в иерархии наследования реализацию этой функции. Ближайшая в иерархии реализация определяется во время выполнения посредством извлечения адреса функции из таблицы методов объекта.


Давайте теперь посмотрим на простой пример использования виртуальных функций в C++
Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments54

Исследования: как мозг строит гипотезы об окружающем мире и подгоняет ощущения под гипотезы

Reading time13 min
Views8.7K

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

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

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments11

Эволюция игрового фреймворка. Сервер на Python. Часть 2 из 2. Слои логики

Reading time15 min
Views2.5K

В прошлый раз мы отделили логику от инфраструктуры и разбили последнюю на четыре слоя: Server → Parser → Application → Repository. Классы инфраструктуры составляют основной фреймворк, который берет на себя всю рутинную работу, а нам предоставляет писать одну только логику.

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

Если сильно обобщить, то контроллеры занимаются преобразованием одних команд в другие с сопутствующим изменением состояния приложения (Repository). В зависимости от команды и текущего состояния пользователя Application выбирает соответствующий контроллер и передает ему ссылку на Repository. Контроллер обрабатывает команду, изменяет состояние хранилища и возвращает другие команды, которые должны быть отправлены инфраструктурой по назначению. В общей схеме контроллеры занимают промежуточное место между движком и хранилищем:

... → Application → Controller → Repository.

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

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

При такой организации кода отдельные игры — это лишь соответствующая настройка и использование классов из жанровой библиотеки. Идеальный проект тогда будет состоять вообще из одного main-скрипта в пару строк и yml-файла конфигурации.

О том, как писать классы такого уровня обобщения, чтобы исходный код проектов состоял всего из нескольких строк, как раз и пойдет речь в данной статье:

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments0

Эволюция игрового фреймворка. Постановка проблемы

Reading time6 min
Views6.4K

Скорость разработки и качество кода — вот, пожалуй, одно из главнейших противоречий IT-индустрии. Можно долго продумывать архитектуру приложения, потом ее совершенствовать, улучшать, а в итоге так ничего и не сделать. А можно быстро что-то сварганить, а потом и зарелизить, но из-за ошибок проектирования завести весь проект в тупик. На каждые два часа разработки, шесть часов будет уходить на поиск и исправление багов, в результате чего вся последующая разработка фактически застопорится.

Таким образом, вопрос: качество или скорость переходит в проблему: хороший, но вечно незаконченный проект или хоть как-то, но работающая программа. Любой менеджер как реалист, естественно, выберет второе.

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

Как тут быть, что поделать? Попробуем разобраться.

Читать далее
Total votes 5: ↑4 and ↓1+5
Comments24

Отладка драйвера Windows

Reading time16 min
Views20K

Работая со студентами я заметил, что нередко от изучения некоторой области отталкивает не столько сложность непосредственно разработки, сколько проблемы, связанные с настройкой рабочей среды и тестового окружения. Особенно остро эта проблема стоит при низкоуровневой разработке, в частности, драйверов ядра ОС Windows. Данная публикация содержит подробное описание процесса создания, запуска и отладки простейшего драйвера Windows.

Хочу ронять Windows в BSOD
Total votes 57: ↑57 and ↓0+57
Comments64

Электронные ценники— мертворожденный продукт или реальный инструмент?

Reading time5 min
Views19K

Про электронные ценники ЭЦ (в английской аббревиатуре ESL – electronic shelf labels) для розничных магазинов пишут и говорят уже с начала 2000-х годов. За четверть века технология удешевилась, усовершенствовалась и сейчас это зрелое решение, которое предлагают несколько поставщиков на рынке.

Читать далее
Total votes 22: ↑21 and ↓1+29
Comments188

Оптимизация угловых вычислений в ЦОС

Reading time5 min
Views5.1K

Всем привет, я работаю программистом DSP контроллеров в фирме, которая занимается разработкой и производством радаров. В начале моего пути, при решении задач по интеграции алгоритмов ЦОС, приходилось по долгу искать пути оптимизации вычислений.

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

Но довольно слов, давайте к делу.

Читать далее
Total votes 26: ↑22 and ↓4+25
Comments17

Измерение вакуума (часть 3). Термоэмиссионные манометрические датчики, какие они все разные

Reading time5 min
Views4K

Предыдущую статью я закончил описанием классического ионизационного манометрического датчика ( типа ПМИ-2 по советской классификации ) с описанием его недостатков. Впрочем, все эти недостатки были связаны с уровнем развития радиоэлектроники в первой половине 20-го столетия, когда данная классика изобреталась. Самое главное, что низкая чувствительность измерителей электрического тока тех лет требовала для достижения нижнего предела измерения давления 10-7 Торр делать коллектор ионов как можно более большой площади, что бы собрать ионов как можно больше ( хотя бы достичь электротока в 0,1 мкА ). Это неизбежно привело к отклонению измерительной характеристики от линейной при давлениях выше 10-3 Торр и практической невозможности в этом диапазоне применения для вычисления давления его стандартной пропорциональной связи с ионным током. Впрочем, уже примерно с 10-2 Торр сам вольфрамовый катод не позволяет сколько-нибудь длительное время работать при температуре, достаточной для электронной эмиссии в вакуум, окисляется и сгорает.

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

Читать далее
Total votes 22: ↑19 and ↓3+24
Comments17

Гетерогенный поиск в ассоциативных контейнерах на C++

Reading time3 min
Views10K

Ассоциативные контейнеры в C++ работают с конкретным типом ключа. Для поиска в них по ключу подобного типа (std::string, std::string_view, const char*) мы можем нести существенные потери в производительности. В этой статье я расскажу как этого избежать с помощью относительно недавно добавленной возможности гетерогенного поиска.

Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments24
1
23 ...

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Registered
Activity

Specialization

Specialist
From 200 ₽
Git
OOP
C++
C
Software development
Programming microcontrollers
Python