Mimo что это за программа

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

Доброго времени суток, Хабр! Разбирая тему технологии MIMO (Multiple input-multiple output), которая сейчас используется повсеместно, я обнаружил насколько мало материала по этой тематике представлено в отечественной литературе. Хабр регулярно читаю около 3 лет и полного ликбеза по этому вопросу я здесь тоже не видел. Постараюсь исправить эту ситацию.

Как ЭТО работает и почему это актуально именно сегодня, а также история развития этой технологии. Кого заинтересовало прошу под кат.

Немножко истории

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

Основы WiFi: SISO, MIMO, MU-MIMO, beamforming, канал связи, расположение антенн на примерах

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

Принцип обработки был прост как лопата: в двух приемных ветках сравнивалось отношение сигнал/шум и в соответствии с оценкой этого значения каждой ветке обработки назначались весовые коэффициенты, играющие роль при принятии решения, грубо говоря, что было передано: 0 или 1. Эта нехитрая система так и была названа критерием оптимального весового сложения (MRC).

Дальше-больше. В 1997 году ирано-американец Аламоути предлагает новинку основанную на уже известных тезисах, назвав её пространственно-временным блоковым кодом (STBC). После этого год от года увеличивается вал публикаций на тему MIMO и тема стает очень актуальной на фоне того, что частотно-энергетическую эффективность систем связи повышать стало все сложнее и сложнее (уже продуманы максимально эффективные сигнально-кодовые конструкции). А дальше пошло-поехало: пространственно-временное решетчатое кодирование, пространственное мультиплексирование, а также большое количество алгоритмов декодирования от простейшего «максимального правдоподобия (ML- max likehood)» до сферического турбодекодирования на GPU и т.д.

Как это работает

И ещё немного теории

Радиоканалы

Вообще эта классификация огромна и её обзор достоен отдельной статьи, но мы остановимся лишь на нескольких моментах.

Проходя путь от передатчика (T) к приемника ( R) наша радиоволна затухает (теряет в энергетике), причем то насколько она потеряет зависит то, есть ли между нашими T и R прямая видимость. Если она есть, то основная вина за потери ложится на потери среды распространения (path loss), если прямой видимости нет, то начинается самое интересное. Сталкиваясь с различными препятствиями волна идет к пункту назначения несколькими путями (многолучевое распространение) и соответственно каждый луч проходит разное расстояние. На приеме все эти лучи могут складывать с противофазе, что дополнительно снижает интенсивность сигнала, что заставляет уровень сигнала постоянно «плавать». Поэтому в зоне неуверенного приема ваши мобильники никак не могут определиться сколько «палочек сигнала» показывать.

Преимущества MIMO-антенны. Что такое технология MIMO?

Все это безобразие назвали замираниями. Бывают они разными и могут описывать разными законами. При наличии постоянной компоненты (наличии прямой видимости) подойдет распределение Райса, а при её отсутствии — Релеевское (частный вариант). Формул не буду приводить умышленно, они большие и страшные.

MIMO вот ОНО

Разбор того, как ЭТО работает проведем на самом простом примере. У нас есть 2 антенны на передаче и одна на приеме.

Читайте также:
Программа 3cx что это

k — так называемая комплексная передаточная функция канала (определяющая его ФЧХ и АЧХ), причем различная для каждого момента времени для каждого из принятых сигналов. Главная изюминка как раз и заключается в том, что сигналы для каждой из приемных антенн проходят разные пути.

В соответствии с методом ПВБК, входной поток данных разбивается на пары [с1, с2], причем, на первом полутактовом интервале символ c1 передается через антенну Т1 и символ c2 передается через антенну Т2. На втором полутактовом интервале порядок передачи изменяется: через антенну Т1 передается инверсия символа c2 (на рисунке обозначен как (–c*2), а символ c1 передается через антенну Т2 (на рисунке обозначен как (c*1). Данный алгоритм удобно представить в виде матрицы, где номер строки будет соответствовать номеру передатчика, а номер столбца – номер полутакта (в общем случае – шаг такта) передачи. Символ «*» как уже многие догадались-комплексное сопряжение.

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

Почему это возможно? Потому что k разный для каждого луча, а матрица Аламоути (рисунок выше) является ортогональной.

Практика

А теперь проведем моделирование и посмотрим выигрыш MIMO перед SISO(single in single out).

Все свои расчеты и моделирование я провожу в Matlab’e потому, что это самая лучшая в мире очень удобная для таких экспериментов среда.

Вот собственно кусок для расчета кривой Аламоути:

numOfBlk = 1e6; % число блоков для передачи qampoz = 4; % выбираем позиционность сигнала КАМ SNRdB = 6:1:40; %пределы изменения отношения сигнал/шум linColor = ‘b’; % цвет 1 linSym = ‘o’; % цвет 2 errRate = zeros(size(SNRdB)); %пустышка % Аламоути for i = 1 : length(SNRdB) txData = randint(numOfBlk*2,1,qampoz);%формируем инф поток temp = reshape(txData,numOfBlk,2); %разбиваем на подпотоки temp = qammod(temp,qampoz); %модулируем H = 1/sqrt(2) * (randn(numOfBlk,2) + sqrt(-1)*randn(numOfBlk,2)); %задаем канал(он релеевский) txMod(:,1) = H(:,1).* 1/sqrt(2).*temp(:,1) + H(:,2).* 1/sqrt(2).*temp(:,2) ; %обработка на приеме txMod(:,2) = -H(:,1).*(1/sqrt(2).*temp(:,2)’).’ + H(:,2).*(1/sqrt(2).*temp(:,1)’).’ ; txMod = awgn(txMod,SNRdB(i),’measured’); temp(:,1) = sqrt(2)*(H(:,1)’.’ .* txMod(:,1) + H(:,2) .* txMod(:,2)’.’)./(abs(H(:,1)).^2 + abs(H(:,2)).^2); temp(:,2) = sqrt(2)*(H(:,2)’.’ .* txMod(:,1) — H(:,1) .* txMod(:,2)’.’)./(abs(H(:,1)).^2 + abs(H(:,2)).^2); rxData(:,1) = qamdemod(temp(:,1),qampoz); %демодуляция rxData(:,2) = qamdemod(temp(:,2),qampoz); [numErr errRate(i)] = symerr(rxData,reshape(txData,numOfBlk,2)); %считаем ошибки end

Эта часть для классической схемы:

%SISO for i = 1 : length(SNRdB) temp = qammod(txData,qampoz); H = 1/sqrt(2) * (randn(numOfBlk*2,1) + sqrt(-1)*randn(numOfBlk*2,1));%тот же канал txMod = H.*temp; txMod = awgn(txMod,SNRdB(i),’measured’); temp = txMod./H; rxData = qamdemod(temp,qampoz); [numErr errRate(i)] = symerr(rxData,txData); end

Из графика видно что выигрыш для вероятности ошибки Pош=10^(-3) примерно 12 [дБ]. И это просто огромная величина.

В качестве заключения
  • Одночастотный сигнал это хорошо, но в расчетах я принимал идеальный вариант когда точно известна КПФ канала на приеме, а как провести его оценку в реальности? Тут-то идеален OFDM сигнал в структуру которого можно встроить пилот-сигналы и по ним построить профиль канала (узнать КПФ для каждой поднесущей). Кстати они использовались ещё до MIMO (см. DVB-T например) для оценки помехоустойчивости
  • Модель канала выбрана самая легкая и от реального далековата
  • Модель сигнала выбрана самая простая, если брать сигнал OFDM, то его формирование само по себе непростое занятие + тогда должны быть другие условия к модели канала (канал-то частотно-селективный нужен)
  • ПВБК не единственный и не самый эффективный из методов применяемых в технологии MIMO, но самый простой и легко реализуемый
  • Выигрыш для КАМ-16,64 уменьшается с ростом позиционности, все дело в энергетике (причина — меньшее Евклидово расстояние между сигнальным точками)
  • Беспроводные технологии
  • Стандарты связи

Источник: habr.com

Обзор Mimo. Учимся программировать

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

Читайте также:
Microsoft office tools что это за программа

В большинстве обучающих курсов вам рассказывают об уже готовых монументальных правилах, тогда как какие-то базовые вещи никто не объясняет. У программы Mimo все наоборот — здесь на обучение самым простым вещам выделили тьму времени. Собственно, я сам попробовал, оценил, и теперь могу с вами поделиться своими впечатлениями. Учиться программировать на смартфоне очень даже интересно, особенно если вы давно хотели этим заняться, но боялись чего-то. Теперь просто достаете смартфон из кармана и запускаете курс.

Азы

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

Дальше нас обучают правильному составлению правил и логическим цепочкам. Чтобы войти в комнату вам нужно открыть дверь, войти, закрыть за собой дверь. Тоже самое и с кодом — нужно написать пошаговые действия, чтобы компьютер понимал что ему делать шаг за шагом.

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

Обучение

Постепенно сложность курсов будет повышаться — разработчики только в начале дают азы, потом идут сложные курсы с объяснением разнообразных примеров. Здесь уже лучше брать в руки блокнот с ручкой и записывать какие-то момент, так как запомнить весь этот код будет весьма проблематично.

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

Курсы

Программа предоставляет вам громадный набор возможностей для изучения программирования. Вы можете попробовать изучать код для написания web-сайтов, можете посмотреть уроки для создания игр или программ на Android и iOS, можно еще тьму всего выучить. Конечно, советую сконцентрироваться на чем-то одном и изучать только эту тему, так как курсы длинные, по несколько часов к ряду, и требуют от вас полной концентрации. Лучше не совмещать несколько вариантов курсов, иначе вы просто запутаетесь. Хотя, в любой момент вы можете переключиться на другой курс, это не запрещается.

Итог

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

Источник: megaobzor.com

Mimo что это за программа

Mimo: Learn to Code
Версия: 3.108

Последнее обновление программы в шапке: 20.12.2022

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Прикрепленное изображение

Краткое описание:
Изучение языков программирования.

Присоединитесь к сообществу из 2 миллионов пользователей, чтобы научиться писать коды, создавать приложения/игры/сайты, автоматизировать свою жизнь, продвинуться в карьере и мн.др. Приложение будет полезным даже опытным специалистам и тем, у кого мало времени на обучение! Mimo создает персонализированный учебный план со множеством интересных и эффективных упражнений, проектов и заданий, которые скрасят ваш день и помогут вам оставаться в тонусе.

Читайте также:
Что за программа caps lock

• «Вы сможете включить кодирование в вашу ежедневную рутину, уделяя ему всего несколько минут в день.» — TechCrunch

• «Эти крохотные уроки по кодированию легко впишутся даже в самый напряженный график.» — Нью-Йорк Таймс

Мы поможем Вам:
• Освоить азы программирования
• Научиться создавать приложения, игры и сайты
• Стать «этическим хакером»
• Автоматизировать вашу жизнь и мн. др.

Эти навыки включают в себя:
Python, Kotlin, Swift, HTML, CSS, JavaScript, SQL, PHP, Java, C#, C++, Ruby, Git, язык командной строки и другие языки программирования.

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

Возникли вопросы? Свяжитесь с нами по адресу [email protected]

Требуется Android: 6.0 и выше
Русский интерфейс: Нет

Источник: 4pda.to

Mimo — программирование на HTML, JavaScript, Python 3.69

Иконка

6 скриншотов для Mimo — программирование на HTML, JavaScript, Python

    Mimo - программирование на HTML, JavaScript, Python Скриншот 1Mimo - программирование на HTML, JavaScript, Python Скриншот 2Mimo - программирование на HTML, JavaScript, Python Скриншот 3Mimo - программирование на HTML, JavaScript, Python Скриншот 4Mimo - программирование на HTML, JavaScript, Python Скриншот 5Mimo - программирование на HTML, JavaScript, Python Скриншот 6

Mimo: программирование на HTML, JavaScript и Python. Коллекция коротких уроков по разработке программ, приложений и игр с нуля для Android. Программа обучения рассчитана на ежедневное освоение нового материала и повторение уже изученного. Подходит для начинающих разработчиков и тех, кто еще не определился с предпочтительным языком программирования. Интегрирована среда разработки, в которой можно самостоятельно написать код, запустить, исправить ошибки и опубликовать готовую программу.

Возможности Mimo

Образовательная платформа предоставляет подробные курсы, направленные на изучение Python, JavaScript, HTML, SQL, CSS и других популярных языков. Подача материала выполнена в виде кратких уроков с подробным описанием каждого этапа разработки и дополнительным повторением ключевых моментов для полного понимания.

Основные направления платформы

  • HTML для создания веб-страниц и веб-приложений;
  • JavaScript для веб-программирования;
  • Python в качестве универсального языка для многих направлений;
  • SQL для создания баз данных;
  • CSS для оформления внешнего вида веб-страниц.

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

Особенности программы

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

Преимущества Mimo

  • объемный комплекс материалов по популярным языкам программирования;
  • практические задачи основаны на реальных примерах;
  • возможность легкого написания кода прямо на телефоне;
  • отслеживание прогресса обучения;
  • удобная сортировка обучающих курсов по языкам и темам;
  • теория включает в себя реальные примеры использования современных инструментов такими компаниями, как Google и Netflix.

Источник: biblsoft.ru

Mimo – научитесь программировать 3.106

Mimo – научитесь программировать 3.106. Скриншот 2 Mimo – научитесь программировать 3.106. Скриншот 3 Mimo – научитесь программировать 3.106.</p><p> Скриншот 4 Mimo – научитесь программировать 3.106. Скриншот 5 Mimo – научитесь программировать 3.106. Скриншот 6 Mimo – научитесь программировать 3.106. Скриншот 7 Mimo – научитесь программировать 3.106. Скриншот 8

Mimo – приложение для обучения основам программирования. Установите приложение на свой смартфон и присоединяйтесь к 5 миллионам пользователей, приобретайте новые знания.

Лучший Telegram-канал про технологии (возможно)

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

Особенности приложения Mimo:

  • Возможность научиться программированию, уделяя занятиям всего несколько минут в день;
  • Обучение азам кодинга;
  • Обучение созданию приложений, игр и сайтов;
  • Персональные учебные планы;
  • Увлекательные задачи и упражнения;
  • Возможность отслеживать свои достижения;
  • Обучение основным языкам программирования.

Источник: trashbox.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru